Eu li várias postagens no StackOverflow, mas não consegui encontrar uma resposta para esta pergunta bastante simples.
Eu tenho uma construção 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>
O que eu preciso é que o div
preencha a altura do td
, para que possa posicionar o plano de fundo do div (o ícone) no canto inferior direito do td
.
Como você sugere que eu faça isso?
Respostas:
Se você der ao seu DT uma altura de 1px, o div filho terá um pai elevado para calcular sua%. Como seu conteúdo seria maior que 1px, o td aumentaria automaticamente, assim como o div. Um hack meio sem sentido, mas aposto que funcionaria.
fonte
min-height: 1px;
vez deheight: 1px;
Altura CSS: 100% só funciona se o pai do elemento tiver uma altura explicitamente definida. Por exemplo, isso funcionaria conforme o esperado:
Já que parece que sua
<td>
altura será variável, o que aconteceria se você adicionasse o ícone inferior direito com uma imagem absolutamente posicionada assim:Com a marcação de célula da tabela assim:
Editar: usando jQuery para definir a altura do div
Se você mantiver o
<div>
como filho de<td>
, este snippet de jQuery definirá corretamente sua altura:fonte
Você pode tentar fazer seu div flutuar:
Alternativamente, use inline-block:
Exemplo prático do método inline-block:
fonte
Realmente tenho que fazer isso com JS. Aqui está uma solução. Eu não usei seus nomes de classe, mas chamei a div dentro do nome de classe td de "full-height" :-) Usei jQuery, obviamente. Observe que isso foi chamado de jQuery (document) .ready (function () {setFullHeights ();}); Observe também que, se você tiver imagens, terá que iterá-las primeiro com algo como:
}
E você gostaria de chamar o carregadoFullHeights () de docReady ao invés. Isso é realmente o que acabei usando apenas no caso. Tenho que pensar à frente, você sabe!
}
fonte
Esta questão já foi respondida aqui . Basta colocar
height: 100%
odiv
e o recipientetd
.fonte
Modifique a imagem de fundo do próprio <td>.
Ou aplique algum css ao div:
fonte