Img {max-height: 100%; } заставляет img превышать границы
Является ли это ошибкой Chrome?
Здесь HTML:
<div><img src="test.png"></div>
Здесь CSS:
* { box-sizing: border-box; }
div { height: 200px; padding: 75px 0 60px; }
img { max-height: 100%; }
Ожидаемый результат: img
должен иметь высоту 65 пикселей.
Результат в Chrome (версия 27.0.1453.116) в Mac OS (версия 10.6.8): img
имеет высоту 135 пикселей и "истекает кровью" в родительский отступ div
, Если я изменил padding
на div
на 50px 0
, странно он корректно отобразится.
Играйте с этим в кодеге: http://codepen.io/anon/pen/jhbKz
Скриншоты
Первый блок имеет padding
of 50px 0
. Второй блок имеет padding
of 75px 0 60px
.
Firefox (правильный результат)
![Firefox]()
Chrome (неправильно?)
![Chrome]()
Ответы
Ответ 1
Попробуйте добавить контейнер к своему изображению с шириной и высотой 100%. Это даст вам тот же результат на хром и FF.
<div class="b">
<div style='height:100%;width:100%;'>
<img src="some image url">
</div>
</div>
Я не могу объяснить, почему это исправление работает в настоящее время, но я сам пытаюсь рассуждать с ним.
Ответ 2
Спустя годы эта проблема, похоже, распространилась на Firefox. Обходной путь Pav не работал для меня, возможно, потому что у меня есть "a", а не "div". Единственным способом в моем случае было отображение в виде таблицы:
<div style="display: table;">
<a style="height: 100px; display: table-cell;" href="#">
<img style="max-height: 100%; width: auto;" src="some image url">
</a></div>
Дополнительным преимуществом "таблицы" является то, что выровнять по вертикали: середина; может использоваться для центрирования изображения (или другого содержимого) по вертикали.