Ответ 1
Когда он работает
У вас может быть контейнер, в котором содержится некоторый контент, такой как два <div>
, которые имеют ширину 50% каждый, сидя рядом друг с другом. В этом примере мы можем проиллюстрировать только один дочерний элемент контейнера:
Мы будем называть внешний прямоугольник .container
, внутренний прямоугольник .content
и изображение img
. Эта компоновка прекрасна, пока .content
всегда шире, чем img
.
Когда он прерывается
Поскольку мы имеем дело с процентами и, вероятно, работаем с отзывчивым дизайном, это может быть не всегда так. Если .content
всегда тоньше, чем img
, произойдет обрезка:
Проблема
Если самая интересная часть img
находится в центре, нам нужно заставить браузер обрезать оба края равномерно - оставив большую часть его видимой, независимо от ширины .content
.
Решение
К счастью, решение возможно. Более того, дополнительная разметка не требуется.
.content {
width: 90%; /* or whatever is required */
text-align: center; /* ensures the image is always in the h-middle */
overflow: hidden; /* hide the cropped portion */
}
img {
position: relative; /* allows repositioning */
left: 100%; /* move the whole width of the image to the right */
margin-left: -200%; /* magic! */
}