Принципы работы гибкой блочной модели

Принципы работы гибкой блочной модели.

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

Одной из главных причин создания гибкой блочной модели была необходимость иметь возможность эффективно распределять экранное пространство между элементами. Приходилось увеличивать или уменьшать элементы в зависимости от того, сколько свободного места было в соответствующем контейнере. Чтобы понимать, какое количество пространства доступно для распределения, нужно было точно определять размер контейнера, и это привело к возникновению понятия родительских блоков. Родительские блоки определяются свойством display, и их можно описывать как блочные элементы, используя значение box, либо как строчные элементы, если задать значение inline-box.

Parentbox

Box-1

Box-2

Box-3

Box-4

рис. 2.4. Родительский блок с четырьмя потомками

HTML-код для генерации блоков, изображенных на рис. 2.4, может выглядеть примерно так, как показано в листинге 2.45.

Листинг 2.45. Базовый HTML-код, с которым мы будем работать

<!DOCTYPE html>

<html lang="en">

<head>

<title>Flexible Box Model sample</title> <link rel="stylesheet" href="test. css">

</head>

<body>

<section id="parentbox">

<div id="box-1">Box 1</div>

<div id="box-2">Box 2</div>

<div id="box-3">Box 3</div>

<div id="box-4">Box 4</div>

</section>

</body>

</html>

Создайте еще один пустой текстовый файл с любым названием и расширением. html. Скопируйте в него код из листинга 2.45. Используя этот файл, мы поэкспериментируем со свойствами гибкой блочной модели. Правила CSS будут подключаться из внешнего файла под названием test. css. Создайте и этот файл тоже и добавляйте в него правила из следующих листингов. Проверяйте результаты применения каждого правила, открывая HTML-файл в окне браузера.

Свойство display

Как уже говорилось, свойство display может принимать два значения: box и inline-box. Мы определим родительский блок как блочный элемент, используя значение box.

Не забывайте о том, что пока все эти свойства находятся на этапе разработки. Для того чтобы применять их, объявлять каждое из свойств необходимо с добавлением префикса — moz — или — webkit — в зависимости от того, с каким браузером вы работаете. Например, пока что display: box следует записывать как display: — moz-box для механизма Gecko и display: — webkit-box для механизма WebKit. Посмотрите, как это делается, в предыдущих листингах или зайдите на наш вебсайт, чтобы загрузить полные версии этих примеров. Мы решили не добавлять префиксы в листинги из этого раздела, для того чтобы вам было проще читать код.

Листинг 2.46. Объявление элемента parentbox в качестве родительского блока

#parentbox { display: box;

}

Свойство box-orient

По умолчанию родительский блок определяет горизонтальную ориентацию для всех своих потомков. С помощью свойства box-orient можно объявить определенную ориентацию элементов.

Листинг 2.47. Объявление ориентации дочерних элементов

#parentbox { display: box; box-orient: horizontal;

}

Свойство box-orient может принимать одно из четырех значений: horizontal, vertical, inline-axis или block-axis. По умолчанию устанавливается значение inline-axis, поэтому блоки выстраиваются в ряд по горизонтали (как показано на рис. 2.4). Аналогичного эффекта можно добиться с помощью значения horizontal, которое мы применили в листинге 2.47.

Этот и последующие примеры будут работать в браузере, только если вы будете объявлять каждый новый стиль с добавлением префикса — moz — или — webkit — в соответствии с тем, какой браузер используете (соответственно, Firefox или Google Chrome).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *