Mam następujący kod:
<td style="position: relative; min-height: 60px; vertical-align: top;">
Contents of table cell, variable height, could be more than 60px;
<div style="position: absolute; bottom: 0px;">
Notice
</div>
</td>
To w ogóle nie działa. Z jakiegoś powodu polecenie position: Relative nie jest odczytywane w TD, a informacja DIV jest umieszczana poza kontenerem treści na dole mojej strony. Próbowałem umieścić całą zawartość TD w DIV, na przykład:
<td>
<div style="position: relative; min-height: 60px; vertical-align: top;">
Contents of table cell, variable height, could be more than 60px;
<div style="position: absolute; bottom: 0px;">
Notice
</div>
</div>
</td>
Stwarza to jednak nowy problem. Ponieważ wysokość zawartości komórki tabeli jest zmienna, informacja DIV nie zawsze znajduje się na dole komórki. Jeśli komórka tabeli rozciąga się poza znacznik 60 pikseli, ale żadna z pozostałych komórek nie rozciąga się, to w innych komórkach informacja DIV jest o 60 pikseli niższa, a nie u dołu.
html
position
html-table
Jason Axelrod
źródło
źródło
Odpowiedzi:
Dzieje się tak, ponieważ zgodnie z CSS 2.1 wpływ
position: relative
na elementy tabeli jest niezdefiniowany. Ilustrując to,position: relative
ma pożądany wpływ na Chrome 13, ale nie na Firefox 4. Twoim rozwiązaniem jest tutaj dodanie znakudiv
wokół treści i umieszczenieposition: relative
na nimdiv
zamiasttd
. Poniższy rysunek ilustruje wyniki, które uzyskasz zposition: relative
(1) nadiv
dobrym), (2) natd
(niedobrym) i wreszcie (3) nadiv
wewnętrznym atd
(znowu dobry).źródło
td
wewnątrz adiv
, ustaw nawidth: 100%
iheight: 100%
, zastosuj wypełnienie od td do div i ustaw je narelative
? Pomysł polega na utworzeniu cienkiej warstwy zawierającej tuż nad elementemtd
, który zachowuje się jaktd
sam, ale jest plikiemdiv
. U mnie to zadziałało.position:relative
na wewnętrzne części tabeli był niezdefiniowany, oznaczało to zachowanie samych części tabeli (na przykład nie było jasne, jak powinnytd
zachowywać się granice jeśli jest przesuwany przezposition:relative
w przypadkuborder-collapse:collapse
). Nie wykluczało ich to z możliwych bloków absolutnie pozycjonowanych potomków. Tak więc zachowanie Firefoksa okazało się tylko błędem, który został naprawiony w 2014 roku.Ta sztuczka jest również odpowiednia, ale w tym przypadku właściwości wyrównania (środek, dół itp.) Nie będą działać.
źródło
Zawartość komórki tabeli o zmiennej wysokości może być większa niż 60 pikseli;
źródło
Jeśli chodzi o twoją drugą próbę, czy próbowałeś użyć wyrównania w pionie? Zarówno
lub z css
źródło
działa również, jeśli wykonasz polecenie "display: block;" w td, niszcząc tożsamość td, ale działa!
źródło