Мне просто интересно, является ли это проблемой рендеринга браузера или неправильным css. Хороший способ масштабировать div с заданным соотношением сторон — использовать прозрачное изображение в качестве дочернего элемента. У меня есть небольшая демонстрация здесь. При необходимости этот вопрос.
Но почему это не работает хорошо, если я хочу высоту 100%.
Я тестировал это в FF10, Safari 5.1.2, IE8 и IE9. (только ie8, кажется, отображается правильно...)
Надеюсь, кто-то может объяснить проблему и, возможно, придумать решение.
С уважением, Рик
<!DOCTYPE html>
<html lang="uk">
<head>
<title>test</title>
<style>
html
, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
background: green;
}
/* AUTO WIDTH - doesnt render correct when scaling the browser window to a smaller size */
.holder1 {
position: relative;
display: inline-block;
height: 100%;
width: auto;
background: yellow;
border-right: 1px solid red;
}
.holder1 .ratio {
display: block;
height: 100%;
width: auto;
}
/* AUTO HEIGHT - works fine */
.holder2 {
position: relative;
display: inline-block;
height: auto;
width: 100%;
background: yellow;
border-right: 1px solid red;
}
.holder2 .ratio {
display: block;
height: auto;
width: 100%;
}
</style>
</head>
<body>
<span class="holder1">
<img src="/images/empty_image.png" class="ratio" alt="Ratio image">
</span>
</body>
</html>
width
не имеет смысла для<span>
(поскольку у него естьdisplay: inline
), поэтому оно просто ничего не делает для .holder2. - person Alexander Pavlov   schedule 21.02.2012