Главная Статьи Резиновая шапка сайта: CSS-трюк: IE, таблица и "резиновые" изображения

Резиновая шапка сайта: CSS-трюк: IE, таблица и "резиновые" изображения

Рассмотрим пример. Суть заключается в следующем:
У нас имеется “резиновая” страница, которая растягивается на всю ширину окна браузера.
Имеем таблицу с шириной 100%.
В таблице имеем ряд из 5-ти изображений (в нашем примере их реальная ширина – 250 пикселей), и необходимо, чтобы при изменении ширины окна браузера эти изображения растягивались или сужались пропорционально, заполняя всю ширину таблицы. Реализуется это следующим простым способом:
HTML:

<table>
<tr>
<td><img src="/1.jpg" alt="" /></td>
<td><img src="/2.jpg" alt="" /></td>
<td><img src="/3.jpg" alt="" /></td>
<td><img src="/4.jpg" alt="" /></td>
<td><img src="/5.jpg" alt="" /></td>
</tr>
</table>

CSS:

table {
width: 100%; /* растягиваем таблицу на всю ширину контента */
border-collapse: collapse; /* схлопываем границы ячеек */
}
table td {
padding: 0 10px; /* для красоты добавляем отступы в ячейках */
}
table img {
width: 100%; /* растягиваем изображение на всю ширину ячейки */
}

Все замечательно, за исключением одного “но” – если смотреть этот пример в браузере IE6 или IE7, вы заметите, что при сужении окна браузера ширина изображений в определенный момент “застревает” и не они не сужаются дальше, в результате чего таблица вылазит за пределы контента.
Это не что иное, как очередной баг всеми “любимого” браузера – изображения не сужаются дальше их фактического размера. В нашем случае это 250 пикселей.
Ну а трюк, который позволяет исправить это недоразумение, заключается всего в одной строчке CSS-кода, который нужно применить к таблице, в которой расположены наши изображения:

table {
width: 100%;
border-collapse: collapse;
table-layout: fixed; /* вот оно, лекарство от недуга IE6 и IE7 */
}

 

Интересное

В современных тенденциях веб-дизайна прослеживается много нововведений, но не все они хороши если использовать их необдуманно, например, UI тенденция в веб-дизайне с одной стороны неплоха, так как направлена на адаптивность современных сайтов, но в то же время это производит эффект похожести сайтов друг на друга. Тенденция использования звука на сайте, которая стала довольно модной в 2016 году не совсем понятна, а если человек сидит на работе и колонки у него случайно включены и посредь рабочего дня у него птички запоют? Использование бесконечного скроллинга также не всегда уместно - ведь это утомительно для пользователя. Ну и стоит помнить что тенденция использовать анимацию была всегда, но теперь для этого не используется неудобная Flash технология, которая требует постоянного обновления плеера, теперь все чаще используется анимация средствами css и html5, а также javascript, но и тут стоит быть внимательными и не перегружать свой сайт громоздкими jQuery библиотеками.