J'ai le code suivant:
<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>
Cela ne fonctionne pas du tout. Pour une raison quelconque, la commande position: relative n'est pas lue sur le TD et l'avis DIV est placé en dehors du conteneur de contenu au bas de ma page. J'ai essayé de mettre tout le contenu du TD dans un DIV tel que:
<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>
Cependant, cela crée un nouveau problème. Puisque la hauteur du contenu de la cellule du tableau est variable, l'avis DIV n'est pas toujours au bas de la cellule. Si une cellule de tableau s'étend au-delà du marqueur 60px, mais qu'aucune des autres cellules ne le fait, alors dans les autres cellules, la notification DIV est à 60px vers le bas, au lieu d'en bas.
html
position
html-table
Jason Axelrod
la source
la source
Réponses:
En effet, selon CSS 2.1 , l'effet de
position: relative
sur les éléments du tableau n'est pas défini. À titre d'illustration, celaposition: relative
a l'effet souhaité sur Chrome 13, mais pas sur Firefox 4. Votre solution ici est d'ajouter undiv
autour de votre contenu et de mettre leposition: relative
sur celui-cidiv
au lieu dutd
. Ce qui suit illustre les résultats que vous obtenez avec leposition: relative
(1) sur undiv
bon), (2) sur untd
(pas bon), et enfin (3) sur undiv
intérieur atd
(bon encore).la source
td
intérieur adiv
, défini surwidth: 100%
etheight: 100%
, appliquer le remplissage du td au div et le définir surrelative
? L'idée est de créer une fine couche contenant juste au-dessus detd
, qui agit commetd
elle - même, mais c'est undiv
. Cela a fonctionné pour moi.position:relative
sur les parties internes de la table n'était pas défini, cela signifiait le comportement des parties de la table elles-mêmes (par exemple, on ne savait pas comment les bordures de la table devaienttd
se comporter s'il est déplacé viaposition:relative
en cas deborder-collapse:collapse
). Cela ne les excluait pas de possibles blocs contenant des descendants absolument positionnés. Le comportement de Firefox s'est donc avéré être juste un bogue, qui a été corrigé en 2014.Cette astuce convient également, mais dans ce cas, les propriétés d'alignement (milieu, bas, etc.) ne fonctionneront pas.
la source
Le contenu de la cellule du tableau, hauteur variable, peut être supérieur à 60 px;
la source
En ce qui concerne votre deuxième tentative, avez-vous essayé d'utiliser l'alignement vertical? Soit
ou avec css
la source
fonctionne aussi si vous faites un "display: block;" sur le td, détruisant l'identité td, mais ça marche!
la source