Респонсивный сайт 'Дом для питомцев' с использованием Flexbox

CSSBeginner
Практиковаться сейчас

Введение

В оживленном городе Петвилль Джордан, веб-разработчик, получил задачу по перепроектированию сайта "Дом для питомцев".

Этот лаба создает адаптивный и визуально привлекательный макет для владельцев питомцев. Сайт должен эффективно показывать услуги, информацию о нас и контактные данные на различных устройствах. Джордан решил использовать Flexbox из-за его мощных возможностей макетирования.

Основы Flexbox и свойство display

Для того чтобы начать работать с Flexbox, вам необходимо понять его основные концепции.

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

Прежде чем мы углубимся в Flexbox, давайте быстро обсудим несколько фундаментальных концепций:

  • Контейнер Flex: Представьте его как вашу комнату, где вы будете размещать различные элементы мебели.
  • Элементы Flex: Это ваши элементы мебели, такие как диваны, стулья и кофейные столики.

Для начала использовать Flexbox, вы сначала должны объявить контейнер Flex. Это похоже на то, когда вы говорите: "Хорошо, давайте украсим эту комнату".

.container {
  display: flex;
}

После этого все прямые дочерние элементы класса .container становятся элементами Flex, следуя правилам макета Flexbox.

Свойство CSS display определяет, воспринимается ли элемент как блок или встрочный бокс, а также определяет макет для его дочерних элементов, такой как макет потока, сетка или Flex.

Мы можем использовать атрибут display, чтобы изменить способ размещения встрочных элементов, например:

Примеры свойства display CSS

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

Теперь, когда мы знаем, как использовать display, мы можем добавить следующее в style.css:

.navigation li {
  display: inline - block;
}
.navigation li a {
  text-decoration: none;
  color: black;
  padding: 10px;
  display: block;
}
form.form - content {
  display: block;
  padding: 0.8em 0;
}

Основная ось и поперечная ось

В области Flexbox два понятия至关重要:основная ось и поперечная ось. По умолчанию основная ось горизонтальна, а поперечная ось вертикальна, но это можно настроить с помощью свойства flex - direction.

  • Горизонтальная основная ось: flex - direction: row; (по умолчанию)
  • Вертикальная основная ось: flex - direction: column;

Например:

Основные и поперечные оси Flexbox

Flex-элементы

Теперь поговорим о том, как размещать нашу мебель (элементы Flex).

  • justify - content: Это свойство контролирует, как элементы Flex распределяются вдоль основной оси. Представьте, что вы настраиваете расстояние между диваном и стульями, чтобы убедиться, что они не слишком далеко друг от друга и не слишком близко.
  • align - items: Это свойство определяет, как элементы Flex выравниваются вдоль поперечной оси. Это похоже на то, чтобы убедиться, что все ваши картины виснут на одном уровне, делая комнату выглядеть уютной.
  • flex - grow: Представьте, что вы хотите, чтобы ваша книжная полка занимала всю или часть оставшегося пространства. С помощью этого свойства вы можете "растить" элемент мебели, чтобы заполнить дополнительное пространство.

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

При этом нашу мебель (элементы) будет размещена, как мы хотели.

Пример макета Flexbox

Flexbox действительно похож на волшебство, позволяя нам разрабатывать веб - страницы с前所未有的 гибкостью и простотой. Теперь, когда вы освоили это волшебство, попробуйте его! Создайте свою мечтую "комнату"!

Для яркого демонстрации волшебства Flexbox я сгенерирую иллюстрацию, показывающую комнату с макетом Flexbox, в которой есть элементы мебели (например, диван, кофейный столик и книжная полка), представляющие разные элементы Flex. Это покажет, как они элегантно размещаются в комнате с использованием свойств Flexbox, таких как justify - content и align - items.

В целом, Flexbox - это одномерный модель макета, которая позволяет легко выравнивать элементы по горизонтали или вертикали, и идеально подходит для создания адаптивных дизайнов. Вот некоторые важные термины, которые вам необходимо знать:

  • Контейнер Flex: Родительский элемент, содержащий элементы Flex.
  • Элемент Flex: Индивидуальный элемент внутри контейнера Flex.
  • Направление Flex: Определяет главную ось контейнера.
  • Обтекание Flex: Управляет тем, должны ли элементы обтекать несколько строк или нет.
  • Выравнивание содержимого: Выравнивает элементы вдоль основной оси.
  • Выравнивание элементов: Выравнивает элементы вдоль поперечной оси.

Иллюстрация макета Flexbox

Теперь, когда мы знаем, как использовать Flexbox, мы можем добавить следующее в style.css:

body {
  display: flex;
  flex - direction: column;
  letter - spacing: 2px;
  font - weight: 400;
  font - size: 1.2vw;
}
header {
  display: flex;
  flex - direction: row;
  background - color: rgb(233, 174, 87);
  width: 100%;
  max - height: max - content;
  min - height: 1em;
  padding - top: 1%;
  padding - bottom: 1%;
  text - transform: uppercase;
}
ul {
  list - style: none;
  display: flex;
  flex - direction: row;
}
.navigation - section {
  width: 70%;
}
section {
  display: flex;
  flex - direction: row;
  width: 100%;
  padding: 10% 0;
}
.story - sect {
  display: flex;
  flex - direction: row - reverse;
  background - color: rgb(233, 174, 87);
  color: #fff;
}
.samples {
  flex - direction: column;
  text - align: center;
}
footer {
  display: flex;
  flex - direction: row - reverse;
  height: 5em;
  width: 100%;
  color: #fff;
  background - color: rgb(239, 206, 157);
  text - transform: uppercase;
}

Резюме

В этом лабе Джордан успешно применил Flexbox к сайту "Дом для питомцев", улучшив адаптивность и эстетику его макета. С помощью шагов, направленных на заголовок, навигацию и основные разделы, сайт теперь эффективно отображает контент на различных устройствах. Flexbox оказался бесценным инструментом при создании динамических и гибких макетов, демонстрируя свою важность в современном веб - дизайне.

✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться✨ Проверить решение и практиковаться