2009-06-04 10 views
23
<div style="height:0px;max-height:0px"> 
</div> 

La définition d'une hauteur div à 0px ne semble pas fonctionner.Div hauteur: 0px ne fonctionne pas?

La div se développe pour montrer son contenu, comment pouvons-nous empêcher cela de se produire?

Répondre

44

Si vous vraiment voulez être sûr que ce sera sans hauteur, vous pouvez utiliser quelque chose comme ceci:

display: block; 
line-height:0; 
height: 0; 
overflow: hidden; 

Si vous rencontrez toujours des problèmes sur IE, vous pouvez également ajouter

zoom: 1; 

à dans une feuille de style à IE ciblé un commentaire conditionnel. Cela déclenchera la propriété hasLayout dans IE.

Et l'affichage: aucun n'est pas la même chose que le réglage à zéro hauteur. Il suffit de regarder les différentes solutions clearfix pour un cas où pas le retirer du flux est crucial.

+5

vous voudriez également assurer rembourrage: 0; Honnêtement, la façon la plus facile de gérer les problèmes de ce genre est de toujours commencer par une réinitialisation.css - rend plus facile le débogage de ces choses pour la conformité avec le navigateur x – knight0323

+2

vous pourriez vouloir ajouter une position: relative; aussi. il semble que cela soit également nécessaire dans certains cas. – OpaCitiZen

+0

Merci, cela a fonctionné pour moi. –

20

Définissez overflow:hidden. Sinon, le contenu étendra l'élément d'enveloppe.

+3

Non, le contenu va déborder l'élément d'emballage et être visible à l'extérieur. Le conteneur ne se développera pas (sauf dans certains navigateurs Microsoft (mais pas dans certains modes de rendu)). – Quentin

2

débordement Essayez: caché

2

Vous pourriez essayer d'ajouter "overflow: hidden" au style

9

Essayez aussi mis line-height: 0;

Et si vous voulez cacher votre div complètement, utilisez display: none;

+2

On dirait que ce que l'OP veut vraiment, c'est "display: none;". –

+0

J'ai la même exigence, le 'display: none' fait que cela fonctionne pour moi –

1

Vous n'avez pas dit quel navigateur vous utilisez, mais je suppose IE, car c'est le seul navigateur que je connais dont height pour min-height. Comme tout le monde a déjà dit, overflow:hidden; fonctionnera, ou line-height: 0;, mais vous avez seulement besoin d'un d'entre eux.

Le paramètre height: 0; aura déjà déclenché des IE hasLayout, donc pas besoin de zoom:1; dans ce cas.

2

Pas tout à fait sûr de ce que vous essayez de faire, hors contexte, mais essayez ceci:

display:none; 
overflow:hidden: 
height:0; 
line-height:0; 
border:0; 
margin:0; 
+3

avec 'display: none' aucune des autres propriétés ne doit être indiquée –

0
#yiv1734505183 .yiv1734505183portrait{ 
    display:none; 
    font-size:0; 
    max-height:0; 
    line-height:0; 
    padding:0; 
    overflow:hidden; 
} 

@media (min-width:481px){ 
    #yiv1734505183 .yiv1734505183mobile-hide{ 
     display:block; 
     overflow:visible; 
     width:auto !important; 
     max-height:inherit !important; 
     min-height:auto !important; 
    } 
} 
@media (min-width:481px){ 
    #yiv1734505183 .yiv1734505183portrait{ 
     display:none; 
     font-size:0; 
     line-height:0; 
     min-height:0; 
     overflow 
0

Cela fonctionne pour moi:

.zippy{ 
    padding: 0; 
    height: 0; 
    overflow: hidden; 
} 

Merci.

0

Pour moi, sur Windows 10, Firefox 58.0.1, il ne serait pas cacher complètement à moins d'utiliser ceci:

display: block !important; 
line-height: 0 !important; 
height: 0 !important; 
overflow: hidden !important; 
zoom: 1 !important; 
padding: 0 !important; 
margin-bottom: 0; 
border: none; 
Questions connexes