Max-height: x% не работает в Chrome
Мне нужно использовать стиль css, например max-width: 90% и max-height: 90%, чтобы определить размер изображения, а не переполнять окна. Однако это хорошо работает на Safari, но не работает в Chrome. Вот демо, которое я пишу на jsfiddle: http://jsfiddle.net/hello2pig/rdxuk7kj/
<style>
div{
padding: 0;
margin: 0;
}
.slide{
text-align:center;
background-size: 100% 100%;
}
.user-img{
max-height: 80%;
max-width: 90%;
}
</style>
<body>
<div class="slide">
<div id="container0" class="container slideDown front">
<div class="image-container">
<img src="http://people.cs.clemson.edu/~bli2/hiOne/image/userImage/1.jpg" class="user-img" ></img>
</div>
</div>
</div>
</body>
Если вы откроете эту демонстрацию в сафари, можно отобразить изображение целиком, но изображение переполнит окно в Chrome. Любой метод решения проблемы? Спасибо за вашу помощь!
Ответы
Ответ 1
Несколько раз использование процентов для текучести в макетах сложно, потому что вам приходится иметь дело с контейнерами и вещами пограничного типа.
Возможно, вы захотите использовать единицы просмотра. Вы можете узнать о них на css-tricks и caniuse покажет вам, насколько хорошо он поддерживается.
По существу вы можете сказать:
<div style="height: 55vh;">Hi</div>
означает элемент div с высотой 55vh, где 1vh определяется как значение 1% высоты видового экрана. То, что составляет 100vh, будет составлять 100% высоты просмотра.
Ответ 2
Вам нужно указать явное значение для контейнера. Это будет работать:
.image-container {
width: 500px;
height: 300px;
}
В вашем случае% берется из элемента <html>
в скрипте.
Из MDN:
Процент
Процент рассчитывается по высоте содержащий блок. Если высота содержащего блока не является явно указано, процентное значение рассматривается как none.