Колонки одинаковой высоты через CSS3 - «CSS3» » Новости мира Интернет
Алиса AI: что нового в апреле - «Новости мира Интернет»
Алиса AI: что нового в апреле - «Новости мира Интернет»
Heroes of Might & Magic: Olden Era вышла в раннем доступе Steam — фанаты ждали этого 11 лет - «Новости сети»
Heroes of Might & Magic: Olden Era вышла в раннем доступе Steam — фанаты ждали этого 11 лет - «Новости сети»
Epic Games Store устроил раздачу Hogwarts Legacy в честь 25-летия кинофраншизы «Гарри Поттер» — россиян оставили без подарка - «Новости сети»
Epic Games Store устроил раздачу Hogwarts Legacy в честь 25-летия кинофраншизы «Гарри Поттер» — россиян оставили без подарка - «Новости сети»
«Сделано в Германии»: Volla представила защищённый смартфон Phone Plinius со съёмной батареей и парой ОС на выбор - «Новости сети»
«Сделано в Германии»: Volla представила защищённый смартфон Phone Plinius со съёмной батареей и парой ОС на выбор - «Новости сети»
Noctua объяснила, почему чёрные вентиляторы выходят позже стандартных бежево-коричневых - «Новости сети»
Noctua объяснила, почему чёрные вентиляторы выходят позже стандартных бежево-коричневых - «Новости сети»
Учёные близки к разгадке тайны «маленьких красных точек» в глубинах Вселенной — «Уэбб» засёк у одной из них признаки чёрной дыры - «Новости сети»
Учёные близки к разгадке тайны «маленьких красных точек» в глубинах Вселенной — «Уэбб» засёк у одной из них признаки чёрной дыры - «Новости сети»
Подтверждение прав в Яндекс Вебмастере стало ещё проще: теперь через Яндекс Тег Менеджер и GTM — «Блог для вебмастеров»
Подтверждение прав в Яндекс Вебмастере стало ещё проще: теперь через Яндекс Тег Менеджер и GTM — «Блог для вебмастеров»
Сбер представил Kandinsky 6.0 Image: флагманскую модель, которая умеет профессионально редактировать фото - «Новости мира Интернет»
Сбер представил Kandinsky 6.0 Image: флагманскую модель, которая умеет профессионально редактировать фото - «Новости мира Интернет»
Resident Evil Requiem продаётся так хорошо, что Capcom пришлось повысить прогноз по выручке за год - «Новости сети»
Resident Evil Requiem продаётся так хорошо, что Capcom пришлось повысить прогноз по выручке за год - «Новости сети»
Microsoft запускает K2 — экстренный план по спасению репутации Windows 11 - «Новости сети»
Microsoft запускает K2 — экстренный план по спасению репутации Windows 11 - «Новости сети»
Новости мира Интернет » Самоучитель CSS » CSS3 » Колонки одинаковой высоты через CSS3 - «CSS3»

Существует несколько методов создания колонок равной высоты. Один из самых популярных и простых заключается в имитации колонок с помощью фонового рисунка. Код HTML при этом остаётся исходным, а в стилях добавляется только свойство background. Естественно, колонки будут иметь разную высоту, которая зависит от их содержимого, но за счёт одного фона создаётся иллюзия одинаковых по высоте колонок.

Легче всего работать с фиксированным макетом, когда заранее известна ширина всех колонок. Например, для макета шириной 900 пикселов готовим картинку размером 900х50 пикселов. Высота рисунка особой роли не играет и начинается от 20-30 пикселов, меньше делать нет смысла, иначе браузеру предстоит дополнительная работа, которая может быть визуально заметна. Пример подобной картинки продемонстрирован на рис..;1. Правая часть показана не полностью, её ширина равна ширине колонки.

Рис. 1. Фоновая картинка для создания колонок

Картинка добавляется к контейнеру, внутри которого располагаются колонки и повторяется по вертикали (пример 1).

Пример 1. Использование картинки

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Колонки</title>
  <style>
   .layer {
    background: url(images/faux-cols.png) repeat-y;  /* Параметры фона */
    width: 600px; /* Ширина макета */
    margin: auto; /* Выравниваем по центру */
    min-height: 200px; /* Минимальная высота */
    color: #fff; /* Цвет текста */
   
   .left_col {
    width: 160px; /* Ширина левой колонки */
    float: left; 
   
   .right_col {
    margin-left: 160px;  /* Отступ на ширину колонки */
   
  </style>
 </head>
 <body>
  <div class="layer">
   <div class="left_col">Левая колонка</div>
   <div class="right_col">Правая колонка</div>
  </div>
 </body>
</html>

Для резинового макета, в котором ширина левой колонки имеет заданные размеры, а ширина правой колонки меняется в зависимости от разрешения монитора и размеров окна браузера, следует немного модифицировать картинку. Увеличиваем её ширину до 2000 пикселов или даже более, чтобы охватить все разрешения мониторов, и закрашиваем всю правую часть цветом правой колонки.

Теперь, когда стали понятны теоретические основы данного метода имитации колонок, перечислю его недостатки.

  • Сложно быстро поменять цвет колонок, поскольку это делается не через код, а в графическом редакторе.
  • Рисунок создаёт дополнительный запрос к серверу и увеличивает время загрузки страницы.
  • Метод имеет сложности в макетах с резиновыми колонками, особенно, когда их больше двух.

В целом, минусы не очень существенны и многие разработчики готовы с ними мириться. Но есть решение изящнее.;— использовать CSS3, в частности, градиенты. Хотя никаких градиентов в нашем примере не видно, они подходят как нельзя лучше из-за того, что позволяют делать не только плавные, но и резкие переходы цветов.

В примере 2 показан тот же самый макет, но фоновая картинка дополняется градиентами для разных браузеров. В остальном, всё остаётся прежним.

Пример 2. Градиенты

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Колонки</title>
  <style>
   .layer {
    background: url(images/faux-cols.png) repeat-y; /* Для старых браузеров */
    background: -moz-linear-gradient(left, #ffc836, #ffc836 160px, #a1429d 160px, #a1429d);
    background: -webkit-linear-gradient(left, #ffc836, #ffc836 160px, #a1429d 160px, #a1429d);
    background: -o-linear-gradient(left, #ffc836, #ffc836 160px, #a1429d 160px, #a1429d);
    background: linear-gradient(to right, #ffc836, #ffc836 160px, #a1429d 160px, #a1429d);
    width: 600px; margin: auto;
    min-height: 200px; color: #fff;
   
   .left_col { width: 160px; float: left; 
   .right_col { margin-left: 160px;
  </style>
 </head>
 <body>
  <div class="layer">
   <div class="left_col">Левая колонка</div>
   <div class="right_col">Правая колонка</div>
  </div>
 </body>
</html>

Строку с картинкой я оставил для корректного отображения макета в старых браузерах. Современные браузеры её проигнорируют и не будут загружать изображение.

Чтобы получить резкий переход цветов для имитации колонок, в градиенте следующий цвет надо начинать с той же позиции, где заканчивается предыдущий. Например, для трёх колонок шириной 200px каждая цвета будут такими.

red 0, red 200px, green 200px, green 400px, blue 400px, blue 100%

Или в сокращённом виде.

red 200px, green 200px, green 400px, blue 400px, blue

Каждая колонка описывается несколькими параметрами.;— цвет, начальная координата, конечная координата, отсчёт ведётся от левого края макета. Это позволяет сочетать любые единицы, так, мы можем легко задать ширину отдельных колонок в процентах.

red 0, red 200px, green 200px, green 75%, blue 75%, blue 100%

Небольшие недостатки у метода с градиентами тоже имеются — это избыточный код для поддержания разных версий браузеров. И всё же на сегодняшний день это один из самых современных и удобных способов создания фиктивных колонок одинаковой высоты.


Существует несколько методов создания колонок равной высоты. Один из самых популярных и простых заключается в имитации колонок с помощью фонового рисунка. Код HTML при этом остаётся исходным, а в стилях добавляется только свойство background. Естественно, колонки будут иметь разную высоту, которая зависит от их содержимого, но за счёт одного фона создаётся иллюзия одинаковых по высоте колонок. Легче всего работать с фиксированным макетом, когда заранее известна ширина всех колонок. Например, для макета шириной 900 пикселов готовим картинку размером 900х50 пикселов. Высота рисунка особой роли не играет и начинается от 20-30 пикселов, меньше делать нет смысла, иначе браузеру предстоит дополнительная работа, которая может быть визуально заметна. Пример подобной картинки продемонстрирован на рис;1. Правая часть показана не полностью, её ширина равна ширине колонки. Рис. 1. Фоновая картинка для создания колонок Картинка добавляется к контейнеру, внутри которого располагаются колонки и повторяется по вертикали (пример 1). Пример 1. Использование картинки Для резинового макета, в котором ширина левой колонки имеет заданные размеры, а ширина правой колонки меняется в зависимости от разрешения монитора и размеров окна браузера, следует немного модифицировать картинку. Увеличиваем её ширину до 2000 пикселов или даже более, чтобы охватить все разрешения мониторов, и закрашиваем всю правую часть цветом правой колонки. Теперь, когда стали понятны теоретические основы данного метода имитации колонок, перечислю его недостатки. Сложно быстро поменять цвет колонок, поскольку это делается не через код, а в графическом редакторе. Рисунок создаёт дополнительный запрос к серверу и увеличивает время загрузки страницы. Метод имеет сложности в макетах с резиновыми колонками, особенно, когда их больше двух. В целом, минусы не очень существенны и многие разработчики готовы с ними мириться. Но есть решение изящнее.;— использовать CSS3, в частности, градиенты. Хотя никаких градиентов в нашем примере не видно, они подходят как нельзя лучше из-за того, что позволяют делать не только плавные, но и резкие переходы цветов. В примере 2 показан тот же самый макет, но фоновая картинка дополняется градиентами для разных браузеров. В остальном, всё остаётся прежним. Пример 2. Градиенты Строку с картинкой я оставил для корректного отображения макета в старых браузерах. Современные браузеры её проигнорируют и не будут загружать изображение. Чтобы получить резкий переход цветов для имитации колонок, в градиенте следующий цвет надо начинать с той же позиции, где заканчивается предыдущий. Например, для трёх колонок шириной 200px каждая цвета будут такими. red 0, red 200px, green 200px, green 400px, blue 400px, blue 100% Или в сокращённом виде. red 200px, green 200px, green 400px, blue 400px, blue Каждая колонка описывается несколькими параметрами.;— цвет, начальная координата, конечная координата, отсчёт ведётся от левого края макета. Это позволяет сочетать любые единицы, так, мы можем легко задать ширину отдельных колонок в процентах. red 0, red 200px, green 200px, green 75%, blue 75%, blue 100% Небольшие недостатки у метода с градиентами тоже имеются — это избыточный код для поддержания разных версий браузеров. И всё же на сегодняшний день это один из самых современных и удобных способов создания фиктивных колонок одинаковой высоты.

Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Смотрите также

А что там на главной? )))



Комментарии )))