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: relativesobre los elementos de la tabla no está definido. Ilustrativo de esto,position: relativetiene el efecto deseado en Chrome 13, pero no en Firefox 4. Su solución aquí es agregar undivalrededor de su contenido y ponerloposition: relativeendivlugar detd. A continuación se ilustran los resultados que obtiene conposition: relative(1) en undivbien), (2) en untd(nada bueno) y finalmente (3) en undivinterior atd(bueno de nuevo).fuente
tdinterior 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 eltdmismo, pero es undiv. Funcionó para mí.position:relativeen 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íantdcomportarse los bordes del si se cambia a travésposition:relativeen 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