coder_bro
coder_bro

Reputation: 10773

Div height:0px does not work?

<div style="height:0px;max-height:0px">
</div>

Setting a div height to 0px does not seem to work.

The div expands to show its contents, how do we prevent this from happening?

Upvotes: 42

Views: 78527

Answers (11)

Michael Johansen
Michael Johansen

Reputation: 5106

The other answers cover this well. Just want to add that if you have tried everything else and the <div> still is visible, then there may be a min-height: that is the culprit.

Upvotes: 0

Digital angel
Digital angel

Reputation: 105

For me, on Windows 10, Firefox 58.0.1, it wouldn't hide completely unless using this:

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

Upvotes: 7

Eddy
Eddy

Reputation: 3723

This works for me:

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

Thanks.

Upvotes: 0

Rosy
Rosy

Reputation: 11

#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

Upvotes: 0

John Bellone
John Bellone

Reputation: 1371

Not quite sure what you're trying to do, out of context, but try this:

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

Upvotes: 2

Eystein
Eystein

Reputation: 736

You haven't said which browser you're using, but I'm assuming IE, as it's the only browser I know of which mistakes height for min-height . Like everyone else has already said, overflow:hidden; will work, or line-height: 0;, but you only need one of them.

Setting height: 0; will have allready triggered IEs hasLayout, so no need for zoom:1; in this case.

Upvotes: 2

Gabriel Hurley
Gabriel Hurley

Reputation: 40062

If you really want to be sure it's gonna be have no height you could use something like this:

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

If you're still having problems on IE, you could also add

zoom: 1;

to it in a stylesheet targeted at IE with a conditional comment. That'll trigger the hasLayout property in IE.

And display:none isn't the same as setting it to zero height. Just look at the various clearfix solutions for a case where not removing it from the flow is crucial.

Upvotes: 77

Philippe Gerber
Philippe Gerber

Reputation: 17836

Try to also set line-height: 0;

And if you want to hide your div completely, use display: none;

Upvotes: 9

Philippe Leybaert
Philippe Leybaert

Reputation: 171814

You could try adding "overflow:hidden" to the style

Upvotes: 2

Roman
Roman

Reputation: 66166

Try overflow:hidden

Upvotes: 2

Gumbo
Gumbo

Reputation: 655319

Set overflow:hidden. Otherwise the content will expand the wrapping element.

Upvotes: 32

Related Questions