Tengo el siguiente código:
<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>
Esto no funciona en absoluto. Por alguna razón, la posición: el comando relativo no se lee en el TD y el aviso DIV se coloca fuera del contenedor de contenido en la parte inferior de mi página. He intentado poner todo el contenido del TD en un DIV como:
<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>
Sin embargo, esto crea un nuevo problema. Dado que la altura del contenido de la celda de la tabla es variable, el aviso DIV no siempre está en la parte inferior de la celda. Si una celda de la tabla se extiende más allá del marcador de 60px, pero ninguna de las otras celdas lo hace, entonces, en las otras celdas, el aviso DIV está en 60px hacia abajo, en lugar de hacia abajo.
html
position
html-table
Jason Axelrod
fuente
fuente
Respuestas:
Esto se debe a que, según CSS 2.1 , el efecto de
position: relative
sobre los elementos de la tabla no está definido. Ilustrativo de esto,position: relative
tiene el efecto deseado en Chrome 13, pero no en Firefox 4. Su solución aquí es agregar undiv
alrededor de su contenido y ponerloposition: relative
endiv
lugar detd
. A continuación se ilustran los resultados que obtiene conposition: relative
(1) en undiv
bien), (2) en untd
(nada bueno) y finalmente (3) en undiv
interior atd
(bueno de nuevo).fuente
td
interior adiv
, establece enwidth: 100%
yheight: 100%
, aplica cualquier relleno del td al div, y configúralo enrelative
? La idea es crear una capa de contención delgada justo encima deltd
, que actúa como eltd
mismo, pero es undiv
. Funcionó para mí.position:relative
en las partes internas de la tabla no estaba definido, significaba el comportamiento de las partes de la tabla en sí mismas (por ejemplo, no estaba claro cómo deberíantd
comportarse los bordes del si se cambia a travésposition:relative
en caso deborder-collapse:collapse
). No los excluyó de los posibles bloques contenedores de los descendientes absolutamente posicionados. Entonces, el comportamiento de Firefox resultó ser solo un error, que se corrigió en 2014.Este truco también es adecuado, pero en este caso las propiedades de alineación (centro, fondo, etc.) no funcionarán.
fuente
El contenido de la celda de la tabla, altura variable, puede ser superior a 60 px;
fuente
Con respecto a su segundo intento, ¿intentó usar la alineación vertical? Ya sea
o con css
fuente
también funciona si haces un "display: block;" en el td, destruyendo la identidad del td, ¡pero funciona!
fuente