Comment faire <div> fill <td> hauteur
Cette question de répondre à des besoins de mise à jour, depuis que les navigateurs ont changé
Question d'origine
J'ai regardé à travers plusieurs postes sur StackOverflow, mais n'ont pas été en mesure de trouver une réponse à cette simple question.
J'ai un HTML comme ceci:
<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 que j'ai besoin est pour la div
pour remplir la hauteur de la td
, afin que je puisse être en mesure de position de la div à l'arrière-plan (l'icône) dans le coin inférieur droit de la td
.
Comment me conseillez-vous aller à ce sujet?
- Connexes: stackoverflow.com/questions/8344850/...
Vous devez vous connecter pour publier un commentaire.
Si vous donnez à votre TD une hauteur de 1px, alors l'enfant div aurait du pic du parent pour calculer le % de. Parce que votre contenu devrait être de plus de 1px, le td automatiquement croître, tout comme la div. Un peu une poubelle hack, mais je parie qu'il serait de travailler.
min-height: 1px;
au lieu deheight: 1px;
CSS height: 100% ne fonctionne que si l'élément parent a expressément une hauteur. Par exemple, ce serait comme prévu:
Car il semble être votre
<td>
va être à hauteur variable, que si vous avez ajouté en bas à droite de l'icône avec une position absolue de l'image comme ceci:Avec la cellule du tableau de balisage comme suit:
Edit: à l'aide de jQuery pour définir div hauteur
Si vous gardez le
<div>
comme un enfant de la<td>
, cet extrait de jQuery va bien définir sa hauteur:<div>
hauteur: 100% de travail, la<td>
(qui est le<div>
s parent) doit avoir une hauteur spécifiée. Et vous avez également le droit de jQuery serait-il le faire assez facilement pour vous - voir mes mises à jour par exemple.position: relative
sur un<td>
est buggé dans Firefox.Vous pouvez essayer de faire votre div float:
Alternativelly, utiliser inline-block:
Exemple de travail de l'inline-block méthode:
CSS:
HTML:
Cette question est déjà répondu ici. Vient de mettre
height: 100%
dans les deuxdiv
et le conteneurtd
.Vraiment avoir à faire avec JS. Voici une solution. Je n'ai pas utiliser vos noms de classe, mais j'ai appelé la div à l'intérieur de la td class nom de "pleine hauteur" 🙂 Utilisé jQuery, évidemment. Notez que c'était appelée à partir de jQuery(document).ready(function(){ setFullHeights();});
Notez également que si vous avez des images, vous allez avoir à parcourir dans un premier temps par quelque chose comme:
}
Et vous souhaitez appeler le loadedFullHeights() à partir de docReady à la place. C'est effectivement ce que j'ai fini par utiliser juste au cas où. Arrivés à penser à l'avenir, vous le savez!
}
Modifier l'image de fond de la <td> lui-même.
Ou appliquer un peu de css de la div: