Revisé varias publicaciones en StackOverflow, pero no he podido encontrar una respuesta a esta pregunta bastante simple.
Tengo una construcción HTML como esta:
<table>
<tr>
<td class="thatSetsABackground">
<div class="thatSetsABackgroundWithAnIcon">
<dl>
<dt>yada
</dt>
<dd>yada
</dd>
</dl>
<div>
</td>
<td class="thatSetsABackground">
<div class="thatSetsABackgroundWithAnIcon">
<dl>
<dt>yada
</dt>
<dd>yada
</dd>
</dl>
<div>
</td>
</tr>
</table>
Lo que necesito es div
que llene la altura del td
, para poder colocar el fondo del div (el icono) en la esquina inferior derecha del td
.
¿Cómo sugieres que haga eso?
Respuestas:
Si le da a su TD una altura de 1px, entonces el div hijo tendría un padre alto para calcular su%. Debido a que su contenido sería más grande que 1px, el td crecería automáticamente, al igual que el div. Un poco como un truco de basura, pero apuesto a que funcionaría.
fuente
min-height: 1px;
lugar deheight: 1px;
Altura CSS: 100% solo funciona si el elemento principal del elemento tiene una altura definida explícitamente. Por ejemplo, esto funcionaría como se esperaba:
Como parece que su
<td>
altura será variable, ¿qué pasa si agrega el ícono de la parte inferior derecha con una imagen absolutamente posicionada así:Con el marcado de celda de tabla así:
Editar: usando jQuery para establecer la altura de div
Si mantiene
<div>
como hijo de<td>
, este fragmento de jQuery establecerá correctamente su altura:fuente
Podrías intentar hacer que tu div flote:
Alternativamente, use bloque en línea:
Ejemplo de trabajo del método de bloques en línea:
fuente
Realmente tengo que hacer esto con JS. He aquí una solución. No usé sus nombres de clase, pero llamé al div dentro del nombre de clase td de "full-height" :-) Usé jQuery, obviamente. Tenga en cuenta que esto fue llamado desde jQuery (documento) .ready (function () {setFullHeights ();}); También tenga en cuenta que si tiene imágenes, primero tendrá que recorrerlas con algo como:
}
Y en su lugar, querrá llamar aloadedFullHeights () desde docReady. Esto es en realidad lo que terminé usando por si acaso. ¡Tienes que pensar en el futuro, sabes!
}
fuente
Esta pregunta ya está respondida aquí . Simplemente coloque
height: 100%
eldiv
y el recipientetd
.fuente
Modifique la imagen de fondo del <td> en sí.
O aplique un poco de CSS al div:
fuente