CSS3: Flexible Box Model - «Верстка»
«Два миллиона печенек для двух миллионов из вас»: Capcom похвасталась ажиотажем вокруг Resident Evil Veronica - «Новости сети»
«Два миллиона печенек для двух миллионов из вас»: Capcom похвасталась ажиотажем вокруг Resident Evil Veronica - «Новости сети»
Бум ИИ взвинтил цены на медь к историческим максимумам - «Новости сети»
Бум ИИ взвинтил цены на медь к историческим максимумам - «Новости сети»
Единственный российский производитель телевизоров из реестра Минцифры обанкротился - «Новости сети»
Единственный российский производитель телевизоров из реестра Минцифры обанкротился - «Новости сети»
В приложениях Samsung Смарт-ТВ обнаружен SDK, продающий доступ к IP и пропускной способности сети владельца - «Новости сети»
В приложениях Samsung Смарт-ТВ обнаружен SDK, продающий доступ к IP и пропускной способности сети владельца - «Новости сети»
Samsung объяснила, почему Galaxy Z Fold 8 получил новый форм-фактор вместо универсального дизайна - «Новости сети»
Samsung объяснила, почему Galaxy Z Fold 8 получил новый форм-фактор вместо универсального дизайна - «Новости сети»
Mozilla тестирует новый дизайн браузера Firefox - «Новости мира Интернет»
Mozilla тестирует новый дизайн браузера Firefox - «Новости мира Интернет»
Autonomous выпустила NFC-ключ, который помогает меньше сидеть в соцсетях - «Новости мира Интернет»
Autonomous выпустила NFC-ключ, который помогает меньше сидеть в соцсетях - «Новости мира Интернет»
В навигаторе 2ГИС добавили возможность ориентироваться по маршруту без сигнала GPS - «Новости мира Интернет»
В навигаторе 2ГИС добавили возможность ориентироваться по маршруту без сигнала GPS - «Новости мира Интернет»
Google добавила в Gemini для Mac новые голосовые функции - «Новости мира Интернет»
Google добавила в Gemini для Mac новые голосовые функции - «Новости мира Интернет»
Google запускает проверку возраста для Android-приложений по всему миру - «Новости мира Интернет»
Google запускает проверку возраста для Android-приложений по всему миру - «Новости мира Интернет»
Новости мира Интернет » Самоучитель CSS » Вёрстка » CSS3: Flexible Box Model - «Верстка»


Flexible Box Model - часть спецификации CSS3, которая не получила широкого внимания. Давайте исправим это упущение и
рассмотрим как эта возможность может повлиять на дизайн сайтов.



th
{
font-weight: bold;
background: #efefef;
vertical-align: middle;
text-align: left;
height: 50px;
padding: 0 5px;
white-space: nowrap;

#article td
{
font-weight: bold;
font-size: 12px;
vertical-align: middle;
text-align: center;
padding: 0 5px;
background-color: #caf8c7;
color: black;


Кроссбраузерность



Все описанные свойства, на текущий момент (февраль, 2010), поддерживаются движками Gecko (с префиксом -moz) и Webkit
(с префиксом -webkit), что соответствует баузерам Firefox и Chrome/Safari.



Кроме того, разные движки по разному обрабатывают это свойство. Ниже представлен один и тот же пример для разных движков:



Как работает свойство



В наше время, сайты часто делятся на несколько колонок. Для этого активно используется свойство float. Однако,
при разработки CSS2 не стояло задачи многоколоночной вёрстки. И поэтому верстальщики обычно писали что-нибудь такое:


#left-column {
float: left;

#right-column {
float: left;

Что мы можем сейчас?



Подход к вёрстке с Flexible Box Model слегка отличается. Трудно описать словами простоту, поэтому сразу перейдём к примерам:


<div class="container">
<div class="blue">
Какой-то контент.
</div>
<div class="blue">
Ещё одна колонка.
</div>
<div class="blue">
Всего 4 колонки!
</div>
<div class="blue">
Шикарно.
</div>
</div>

И следующий CSS:


.container {
width: 1000px;
display: -webkit-box;
display: -moz-box;
-webkit-box-orient: horizontal;
-moz-box-orient: horizontal;

.blue {
background: #357c96;
font-weight: bold;
margin: 2px;
padding: 20px;
color: #fff;
font-family: Arial, sans-serif;


Вы можете также установить вертикальную ориентацию для такого типа позиционирования.


Следующий шаг


Как вы наверное заметили, на самом деле документ выглядит так:




То есть справа остаётся пустое пространство. Именно в этом месте возможности Flexible Box Model особенно полезны.
Если раньше мы мучались с размерами элементов, чтобы заполнить это пространство, то сейчас появилась возможность
вытянуть определённые элементы, которые его заполнят.


.flexible {
-webkit-box-flex: 1;
-moz-box-flex: 1;

Если добавить этот класс к третьей колонке, то получим приблизительно следующее:



То есть оставшееся пространство распределяется между Flex-элементами. Так как в нашем примере только один элемент
является Flex-элементом, то всё пространство отдаётся ему. Если у вас будет два таких элемента, со значением 1, то
пространство будет распределяться между ними равномерно.



Давайте, к примеру, укажем класс .flexible для первых двух колонок. Получим следующий результат:




Как вы уже поняли, ширины этих колонок соотносятся друг к другу, как 1:1. Таким образом, если например у нас осталось 400
пикселей свободного пространства, то при соотношении 3:1, одному элементу достанется 300 пикселей, а второму - 100.


Направление


Направление - это другой ключевой момент в Flexible Box Model. Давайте слегка изменим наш пример. Допустим мы хотим
изменить порядок добавления элементов в контейнер, вместо 1,2,3,4 будет 4,3,2,1. Для этого нам необходимо использовать
свойство direction:


-moz-box-direction: reverse;
-webkit-box-direction: reverse;


Кроме того, вы можете использовать свойство box-ordinal-group, чтобы изменять порядок колонок. Проще говоря,
элемент с наибольшим значением этого свойства, будет перемещён в конец. Если вы укажете обратное направление, то такой элемент
окажется в начале. Пример использования:


-moz-box-ordinal-group: 2;
-webkit-box-ordinal-group: 2;

Выравнивание



Выравнивание элементов происходит очень просто. Для этого существует два свойства: box-align и box-pack.



При горизонтальной ориентации элементов, box-align указывает как они должны быть выровнены по вертикали в котейнере.
Аналогично и при вертикальной ориентации. Свойство box-pack - полная противоположность, указывает горизонтальное
выравнивание при горизонтальной ориентации, и вертикальное - при вертикальной.


Допустимые значения и краткое описание


Краткое описание свойств:


Свойство
Описание


box-flex



box-direction



box-align



box-flex-group



box-lines



box-ordinal-group



box-orient



box-pack


Позволяет элементам растягиваться в элементе-контейнере до заполнения свободного пространства.
Направление расположения элементов в элементе-контейнере
Указывает как элементы выровнены в элементе-контейнере.
Связывает элементы в группы
При обычном поведении, элементы будут располагаться в указанном вами направлении бесконечно. Если указать это свойство, то при нехватке свободного места, элементы будут переносится на новую строку.
Порядок сортировки элементов
Ориентация расположения элементов
Выравнивание элементов вдоль их ориентации

Допустимые значения и значения по умолчанию




Свойство
По умолчанию
Допустимые значения


box-flex




box-direction




box-align




box-flex-group




box-lines




box-ordinal-group




box-orient




box-pack



0.0Вещественное число
normalnormal | reverse | inherit
stretchstart | end | center | baseline | stretch
1Целое число
singlesingle | multiple
1Целое число
inline-axishorizontal | vertical | inline-axis | block-axis | inherit
startstart | end | center | justify

Значения inline-axis и block-axis для свойства box-orient - соответствуют горизонтальной и вертикальной ориентации.


Flexible Box Model - часть спецификации CSS3, которая не получила широкого внимания. Давайте исправим это упущение и рассмотрим как эта возможность может повлиять на дизайн сайтов. th _

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

+1

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

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



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