Maison > Questions et réponses > le corps du texte
P粉7998853112023-08-22 14:22:28
Ajoutez height: 1px
dans le conteneur parent. Fonctionne dans Chrome, FF et Safari.
P粉9030525562023-08-22 09:01:41
Il s'agit d'un bug du webkit (chrome/safari) signalé où les éléments enfants d'un élément parent avec une hauteur minimale ne peuvent pas hériter de l'attribut height : https://bugs.webkit.org/show_bug.cgi?id=26559
Apparemment, Firefox est également affecté (impossible de tester dans IE pour le moment)
Solutions possibles :
Le bug n'apparaît pas lorsque l'élément interne a un positionnement absolu.
Voir http://jsfiddle.net/xrebB/
Modifié le 10 avril 2014
Comme je travaille actuellement sur un projet qui doit vraiment avoir min-height
des éléments parent et enfant héritant de la hauteur du conteneur, j'ai fait quelques recherches supplémentaires.
Tout d'abord : Je ne sais plus si le comportement actuel du navigateur est réellement un bug. La spécification CSS2.1 dit :
Si je définis la hauteur minimale sur le conteneur, je ne précise pas explicitement sa hauteur - donc mon élément devrait avoir une auto
hauteur. C'est exactement ce que font Webkit - et tous les autres navigateurs.
Deuxièmement, la solution que j'ai trouvée :
Si je définis l'élément conteneur sur display:table
et que j'utilise height:inherit
, il se comporte exactement de la même manière que si je lui donnais un display:table
并使用height:inherit
,它的行为与给它一个min-height
为100%完全相同。而且 - 更重要的是 - 如果我将子元素设置为display:table-cell
de 100 %. Et - plus important encore - si je définis l'élément enfant sur display:table-cell
, il héritera parfaitement de la hauteur de l'élément conteneur - qu'elle soit de 100 % ou plus.
CSS complet :
html, body { height: 100%; margin: 0; } #container { background: green; display: table; height: inherit; width: 100%; } #content { background: red; display: table-cell; }
Étiquette :
<div id="container"> <div id="content"> <p>content</p> </div> </div>
Voir http://jsfiddle.net/xrebB/54/.