开发者

Max height % not working in IE8?

[CONFIRMED: IE9 suffers the same bug! :'( ]

I have a div that is like a photo-frame style thing, which contains an img, and two divs. This outer div has a max-width (80%) that works beautifully.

Problem is, if I set a max-height, I get the following behaviour:

  • 80px - works as expected.
  • 80em - works as expected.
  • 80% - same as height:auto and no max-height.

Any advice? Doc-type is <!doctype html>, which is entirely valid, and normally works perfectly. I even added <meta http-equiv="X-UA-Compatible" content="IE=9"> out of frustration.

EDIT:

This here is the html/css that I believe is relevant:

<!doctype>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9"> 
<script type="text/javascript" src="https://getfirebug.com/firebug-lite-beta.js"></script>
<style type="text/css">
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:befor开发者_运维问答e, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
body
{
    background-color:black;
    color:black;
    font-size:80%;
    font-family:'Merriweather',georgia,serif;   
    max-width:1600px;
    min-width:780px;
    text-align:center;
    margin:0 auto;
    line-height:1.1;
}
div#container
{
    text-align:left;
    padding:1em 15px;
    margin:2em 5px;
    position:relative;
    background:#FFE4BE;
}


div.image
{
    background:white;
    max-width:80%;
    max-height:20%; <--- HAS NO EFFECT!
    overflow:hidden;
    margin:0 auto;
    display:block;
    padding:2em 2% 1em 2%;
}
div.image img { width:100%; margin:0 auto; display:block; }
div.image div.title { font-size:160%; font-weight:bold; text-align:center; margin-top:0.25em;  }
div.image div.caption { font-style:italic; text-align:center; }
</style>
</head>
<body>
<div id="container">
<div id="body">
<div class="image">
<img src="construction.jpg">
<div class="title">Construction</div>
<div class="caption">
<p>Turns out, we're not ready for beta users yet.</p>
<p>We'll have a mailing list available soon. Check back periodically!</p>
</div>
</div>
</div>
</div>
</body>
</html>


You need to take a new approach to this - using max-height to scale an image is simply the wrong way to go about it, and you will most likely never get to a point where you like the solution.

If I was you, I'd go back to the drawing board and rethink the layout (not the design, just the markup & css) and try to reach the design goal another way.


Use * html for ie.

* html .whatever{
height:100%;
}


For what you're doing, it'd be easier to just set the image container to have a nice margin and set the max width to 100%. You probably don't want to force the max-height to be smaller than the viewport anyways since people are accustomed to scrolling vertically to see large/long images.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜