J'ai parcouru plusieurs articles sur StackOverflow, mais je n'ai pas été en mesure de trouver une réponse à cette question plutôt simple.
J'ai une construction HTML comme celle-ci:
<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>
Ce dont j'ai besoin est que le div
remplisse la hauteur du td
, afin que je puisse positionner l'arrière-plan du div (l'icône) dans le coin inférieur droit du td
.
Comment me proposez-vous de m'y prendre?
Réponses:
Si vous donnez à votre TD une hauteur de 1px, alors le div enfant aura un parent surélevé pour calculer son%. Parce que votre contenu serait plus grand que 1px, le td augmenterait automatiquement, tout comme le div. Un peu un hack poubelle, mais je parie que ça marcherait.
la source
min-height: 1px;
place deheight: 1px;
Hauteur CSS: 100% ne fonctionne que si le parent de l'élément a une hauteur explicitement définie. Par exemple, cela fonctionnerait comme prévu:
Puisqu'il semble que votre
<td>
hauteur soit variable, que se passe-t-il si vous avez ajouté l'icône en bas à droite avec une image positionnée de manière absolue comme ceci:Avec le balisage de cellule de tableau comme ceci:
Edit: utiliser jQuery pour définir la hauteur de div
Si vous conservez le en
<div>
tant qu'enfant de<td>
, cet extrait de jQuery définira correctement sa hauteur:la source
Vous pouvez essayer de faire flotter votre div:
Alternativement, utilisez le bloc en ligne:
Exemple de travail de la méthode de bloc en ligne:
la source
Vraiment à faire avec JS. Voici une solution. Je n'ai pas utilisé vos noms de classe, mais j'ai appelé le div dans le nom de classe td "full-height" :-) J'ai utilisé jQuery, évidemment. Notez que cela a été appelé depuis jQuery (document) .ready (function () {setFullHeights ();}); Notez également que si vous avez des images, vous devrez d'abord les parcourir avec quelque chose comme:
}
Et vous voudrez plutôt appeler le sharedFullHeights () de docReady. C'est en fait ce que j'ai fini par utiliser au cas où. Vous devez penser à l'avance, vous savez!
}
la source
Cette question est déjà répondue ici . Il suffit de mettre
height: 100%
à la fois lediv
et le contenanttd
.la source
Modifiez l'image d'arrière-plan du <td> lui-même.
Ou appliquez du CSS au div:
la source