FlexBox

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

  1. display: flex

    • Это основная команда, которая определяет, что элемент является контейнером Flexbox.
    • Включает режим гибкого распределения элементов в контейнере.
  2. flex-direction

    • Определяет основное направление, вдоль которого элементы располагаются в контейнере Flexbox.
    • Значения могут быть row, row-reverse, column, column-reverse.
  3. justify-content

    • Управляет распределением пространства вдоль основной оси (main axis).
    • Это свойство позволяет выравнивать элементы по горизонтали.
    • Значения включают flex-start, flex-end, center, space-between, space-around, space-evenly.
  4. align-items

    • Выравнивает элементы вдоль поперечной оси (cross axis) в контейнере Flexbox.
    • Это свойство применяется для управления вертикальным выравниванием элементов.
    • Значения включают flex-start, flex-end, center, baseline, stretch.
  5. align-self

    • Позволяет переопределить выравнивание элемента по поперечной оси (cross axis) в контейнере Flexbox.
    • Действует на отдельные элементы внутри контейнера.
    • Значения такие же, как и у align-items.
  6. flex-wrap

    • Определяет, переносить ли элементы на новую строку или оставлять в одной строке.
    • Значения включают nowrap, wrap, wrap-reverse.
  7. align-content

    • Управляет распределением пространства вдоль поперечной оси (cross axis) на уровне многострочного контейнера Flexbox.
    • Это свойство работает только в случае, когда элементы обернуты (flex-wrap: wrap).
    • Значения включают flex-start, flex-end, center, space-between, space-around, stretch.
  8. flex-grow

    • Определяет, насколько элемент должен расти по ширине, чтобы заполнить доступное пространство.
    • Значение указывает долю доступного пространства, которую элемент должен занять.
  9. flex-shrink

    • Определяет, насколько элемент должен сжиматься в случае, если доступного пространства недостаточно.
    • Значение указывает, во сколько раз элемент может уменьшить свой размер.
  10. flex-basis

    • Устанавливает начальную ширину элемента до того, как учитывается flex-grow или flex-shrink.
    • Значение может быть в процентах, пикселях или других единицах измерения.
  11. order

    • Определяет порядок отображения элементов в контейнере Flexbox.
    • Элементы с меньшим значением будут отображаться раньше.

CSS Grid (Таблица)

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

  1. Grid Container (Контейнер сетки)

    • Элемент, который содержит другие элементы и определяется как сетка с помощью свойства display: grid;.
    • Он устанавливает контекст для размещения элементов внутри сетки.
  2. Grid Item (Элемент сетки)

    • Элемент, который находится внутри контейнера сетки.
    • Он может занимать одну или несколько ячеек сетки.
  3. Grid Lines (Линии сетки)

    • Горизонтальные и вертикальные линии, которые разделяют сетку на строки и столбцы.
    • Нумерация линий начинается с 1 и увеличивается вправо и вниз.
  4. Grid Tracks (Треки сетки)

    • Строки и столбцы, определенные между двумя соседними линиями сетки.
    • Они могут быть заданы фиксированной шириной, процентом, автоматическим размером или на основе контента.
  5. Grid Cell (Ячейка сетки)

    • Область, образованная пересечением строки и столбца.
    • Он может содержать один или несколько элементов сетки.
  6. Grid Area (Область сетки)

    • Прямоугольная область, образованная несколькими соседними ячейками сетки.
    • Он может содержать один или несколько элементов сетки.
  7. grid-template-rows и grid-template-columns

    • Определяют размер и распределение строк и столбцов в контейнере сетки.
    • Значения могут быть указаны в пикселях, процентах, fr (доля свободного пространства) или auto (автоматическое распределение).
  8. grid-gap (или grid-row-gap и grid-column-gap)

    • Определяет расстояние между ячейками или треками сетки.
    • Это свойство упрощает создание отступов между элементами сетки.
  9. grid-auto-rows и grid-auto-columns

    • Определяют размер автоматически создаваемых строк и столбцов.
    • Они активируются, если контейнер сетки содержит больше элементов, чем было определено явными треками.
  10. grid-auto-flow

    • Определяет порядок, в котором элементы добавляются в сетку, если они не имеют явно заданных положений.
    • Значения могут быть row, column, row dense, column dense.
  11. justify-items и align-items

    • Определяют выравнивание элементов в ячейках сетки по горизонтали и вертикали соответственно.
  12. justify-content и align-content

    • Определяют выравнивание сетки в контейнере по горизонтали и вертикали соответственно, если сетка меньше, чем контейнер.

Функции CSS

В CSS существуют функции, которые позволяют выполнять различные операции над значениями свойств, создавать эффекты и управлять стилями более гибко. Вот некоторые из наиболее распространенных функций:

  1. Функции для работы с цветом:

    • rgba(): Определяет цвет, используя красный, зеленый, синий и альфа-канал (прозрачность).
    • hsl(): Определяет цвет, используя оттенок, насыщенность и светлоту.
    • hsla(): Аналогична функции rgba(), но использует формат HSL для определения цвета.
    • rgb(): Аналогична функции rgba(), но без альфа-канала.
  2. Функции для работы с текстом:

    • font-family(): Определяет шрифт или список шрифтов для текста.
    • font-size(): Устанавливает размер шрифта.
    • text-shadow(): Добавляет тень к тексту.
    • text-transform(): Преобразует текст (например, в верхний или нижний регистр).
  3. Функции для работы с размерами:

    • calc(): Позволяет выполнить математические операции над значениями свойств.
    • min() и max(): Возвращают минимальное или максимальное значение из списка переданных значений.
  4. Функции для работы с изображениями:

    • url(): Указывает путь к изображению.
    • image(): Создает изображение или градиент.
  5. Функции для работы с градиентами:

    • linear-gradient(): Создает линейный градиент между двумя или более цветами.
    • radial-gradient(): Создает радиальный градиент от одного цвета к другому.
    • repeating-linear-gradient() и repeating-radial-gradient(): Позволяют создавать повторяющиеся градиенты.
  6. Другие функции:

    • var(): Позволяет использовать пользовательские переменные в CSS.
    • attr(): Позволяет получать значения атрибутов HTML-элементов и использовать их в CSS.

Единицы измерения в CSS

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

  1. Пиксели (px)

    • Это наиболее распространенная единица измерения.
    • 1 пиксель обычно соответствует одному физическому пикселю на экране.
    • Используется для точного контроля размеров и позиционирования элементов.
  2. Проценты (%)

    • Эта единица измерения относится к размерам относительно размера родительского элемента.
    • Например, width: 50%; означает, что элемент будет занимать половину ширины своего родителя.
  3. EMS (em)

    • Одна единица em равна текущему размеру шрифта.
    • Например, если размер шрифта родительского элемента равен 16px, то 1em будет также равен 16px.
    • Используется для создания относительных размеров, особенно в отношении текста.
  4. Относительные единицы (rem)

    • Похожи на em, но размер относится к корневому элементу документа, обычно к тегу ‹html›.
    • Используется для создания более прогнозируемых и управляемых масштабируемых макетов.
  5. Вьюпортные единицы (vw, vh, vmin, vmax)

    • Относятся к размерам относительно размеров видимой области браузера (вьюпорта).
    • 1vw равен 1% ширины вьюпорта, 1vh - 1% его высоты.
    • Используется для создания адаптивных и масштабируемых макетов, особенно для элементов, которые должны занимать определенный процент видимой области.
  6. Абсолютные единицы (in, cm, mm, pt, pc)

    • Используются для определения размеров в физических единицах, таких как дюймы (in), сантиметры (cm), миллиметры (mm), пункты (pt) и пики (pc).
    • Часто используются для печатных стилей и других приложений, где требуется точное определение размеров.

Селекторы CSS

Селекторы в CSS - это паттерны, которые используются для выбора и стилизации определенных элементов на веб-странице. Они позволяют вам указывать, к каким элементам применять определенные стили. Вот некоторые из наиболее распространенных селекторов в CSS

  1. Селекторы по тегу (Tag Selectors)

    • Это самый базовый тип селектора CSS, который применяет стили ко всем элементам с определенным тегом.
    • Например, чтобы применить стили ко всем абзацам (‹p›), вы можете использовать селектор p { ... }.
  2. Классы (Class Selectors)

    • Классы позволяют применять стили к элементам, которые имеют определенный класс.
    • Они объявляются с использованием точки (.) и названия класса.
    • Например, чтобы применить стили к элементам с классом "button", вы можете использовать селектор .button { ... }.
  3. Идентификаторы (ID Selectors)

    • Идентификаторы используются для применения стилей к конкретному элементу на странице.
    • Они объявляются с использованием хеша (#) и уникального идентификатора элемента.
    • Например, чтобы применить стили к элементу с идентификатором "header", вы можете использовать селектор #header { ... }.
  4. Селекторы атрибутов (Attribute Selectors)

    • Позволяют применять стили к элементам на основе атрибутов HTML.
    • Они объявляются с использованием квадратных скобок ([]) и атрибута и его значения.
    • Например, чтобы применить стили к ссылкам с атрибутом target="_blank", вы можете использовать селектор a[target="_blank"] { ... }.
  5. Селекторы псевдоэлементов и псевдоклассов (Pseudo-elements and Pseudo-classes)

    • Позволяют выбирать и стилизовать части элементов, которые находятся в определенных состояниях или находятся в определенных позициях относительно других элементов.
    • Например, селектор :hover позволяет применить стили к элементу при наведении на него указателя мыши, а ::before позволяет вставить контент перед содержимым элемента.
  6. Селекторы потомков (Descendant Selectors)

    • Выбирают элементы, которые являются потомками других элементов.
    • Определяются с помощью пробела между элементами.
    • Пример: ul li выбирает все элементы списка (
    • ) внутри элемента списка (
        ).
    • Селекторы дочерних элементов (Child Selectors)

      • Выбирают дочерние элементы определенного родительского элемента.
      • Определяются с использованием символа > между родительским и дочерним элементом.
      • Пример: nav > ul выбирает все списки (‹ul›) внутри элемента навигации (‹nav›).

Библиотека свойств CSS

accent-color

Этот свойство устанавливает цвет акцента для элементов форм, таких как кнопки, инпуты и т.д. Он используется для подсветки активных элементов при взаимодействии с пользователем, например, при нажатии на кнопку.

all

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

animation

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

aspect-ratio

Свойство aspect-ratio устанавливает соотношение сторон для элемента. Это позволяет контролировать пропорции элемента без изменения его размеров, что особенно полезно для изображений и видео.

backdrop-filter

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

backface-visibility

Свойство backface-visibility определяет видимость обратной стороны элемента в 3D-пространстве. Это может быть полезно при использовании трансформаций, таких как повороты, чтобы скрыть или отобразить обратную сторону элемента.

background

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

block-size

Свойство block-size устанавливает размер блока элемента в направлении блочной оси. Это обычно означает высоту элемента, когда он отображается как блочный элемент.

border

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

bottom

Свойство bottom устанавливает расстояние от нижнего края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.

box-decoration-break

Это свойство определяет, как разрывы в тексте влияют на оформление содержащего их блока. Например, оно может контролировать оформление рамок и фонов для разрывов строк.

box-shadow

Свойство box-shadow позволяет добавлять тени к элементам на странице. Вы можете установить параметры тени, такие как смещение, размытие и цвет, чтобы создать различные эффекты.

box-sizing

Это свойство определяет модель размеров элемента, контент которого может быть управляем или непосредственно контролируем размером контейнера. Две наиболее распространенные модели размеров - content-box и border-box.

caption-side

Свойство caption-side устанавливает расположение заголовка таблицы относительно ее содержимого. Например, вы можете установить значение bottom, чтобы разместить заголовок таблицы под ее содержимым.

caret-color

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

clear

Это свойство управляет тем, как элемент должен вести себя в отношении элементов, находящихся по бокам, которые имеют свойство float. Оно определяет, должен ли элемент переноситься под последний элемент с float или нет.

clip

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

color

Это свойство устанавливает цвет текста элемента.

column

Это свойство объединяет другие свойства для работы с многоколоночным макетом. Вы можете установить количество колонок, их ширину, распределение и другие параметры.

columns

Это свойство устанавливает количество и ширину колонок в многоколоночном макете.

content

Это свойство используется для вставки содержимого, созданного с помощью псевдоэлементов, таких как ::before и ::after. Вы можете использовать его для добавления дополнительных декоративных элементов или текста к элементам на странице.

counter-increment

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

counter-reset

Это свойство сбрасывает значение счетчика перед началом новой последовательности. Оно используется в сочетании с counter-increment для создания сложных счетчиков и нумерации на странице.

cursor

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

direction

Это свойство устанавливает направление текста в элементе, позволяя управлять его направлением и расположением. Например, вы можете установить значение rtl (справа налево) для элементов с текстом на арабском или иврите.

display

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

empty-cells

Это свойство управляет отображением пустых ячеек таблицы. Вы можете установить его в hide, чтобы скрыть пустые ячейки, или show, чтобы оставить их видимыми.

filter

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

float

Это свойство определяет, как элемент должен взаимодействовать с окружающими элементами по бокам. Например, вы можете установить элемент как float: left, чтобы выровнять его слева и позволить содержимому обтекать его справа.

font

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

gap

Это свойство устанавливает промежутки между элементами в грид-контейнере или флекс-контейнере. Оно позволяет создавать пространство между элементами в макете, что делает его более удобным для чтения и использования.

height

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

hyphenate-character

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

hyphenate-limit-chars

Это свойство устанавливает минимальное количество символов перед и после дефиса при автоматическом переносе слов. Оно позволяет управлять, как часто слова будут переноситься на новую строку, что помогает предотвратить появление слишком коротких слов.

hyphens

Это свойство управляет использованием и типом автоматического переноса текста. Вы можете установить его в none, чтобы отключить автоматический перенос, или auto, чтобы разрешить браузеру самостоятельно определять, когда и как переносить слова.

image

Это свойство устанавливает параметры отображения изображения в элементе. Вы можете установить его в cover, чтобы изображение занимало всю доступную область элемента, или contain, чтобы оно целиком помещалось внутри элемента.

inline-size

Это свойство устанавливает размер элемента в направлении инлайновой оси. Обычно это ширина элемента, когда он отображается как инлайновый или инлайн-блочный элемент.

left

Это свойство устанавливает расстояние от левого края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.

letter-spacing

Это свойство устанавливает расстояние между символами в тексте. Вы можете увеличить или уменьшить интервал между буквами, чтобы сделать текст более читабельным или стилизованным.

line

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

list

Это свойство устанавливает стиль списка для элементов ul и ol. Вы можете установить его в none, чтобы скрыть маркеры списка, или disc, circle, square для различных видов маркеров.

margin

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

max-block-size

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

max-height

Это свойство устанавливает максимальную высоту элемента. Это позволяет ограничить рост элемента по вертикали, когда он растягивается за пределы заданной высоты.

max-inline-size

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

max-width

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

min-block-size

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

min-height

Это свойство устанавливает минимальную высоту элемента. Это позволяет контролировать минимальную высоту элемента, когда он сжимается по вертикали.

min-inline-size

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

min-width

Это свойство устанавливает минимальную ширину элемента. Это позволяет контролировать минимальную ширину элемента, когда он сжимается по горизонтали.

mix-blend-mode

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

object

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

opacity

Это свойство устанавливает прозрачность элемента. Вы можете установить значение от 0 (полностью прозрачный) до 1 (полностью непрозрачный), чтобы создать различные эффекты прозрачности.

order

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

orphans

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

outline

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

overflow

Это свойство управляет тем, как браузер обрабатывает содержимое, которое не помещается внутри элемента. Например, вы можете установить его в scroll, чтобы добавить полосы прокрутки, когда содержимое выходит за пределы элемента.

padding

Это свойство устанавливает внутренние отступы элемента. Вы можете установить значения для отступов сверху, справа, снизу и слева, чтобы создать пространство внутри элемента для размещения его содержимого.

page-break

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

perspective

Это свойство устанавливает перспективу для элементов, которые позиционируются в 3D-пространстве. Оно влияет на их вид при использовании 3D-трансформаций, таких как вращения и наклоны.

perspective-origin

Это свойство устанавливает точку перспективы для элементов, которые позиционируются в 3D-пространстве. Оно определяет, откуда наблюдается элемент, что влияет на его визуальное представление при применении 3D-трансформаций.

place-content

Это свойство управляет размещением содержимого в гибком контейнере или сетке. Вы можете установить его значение, чтобы выровнять содержимое по горизонтали, вертикали или обоим направлениям одновременно.

pointer-events

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

position

Это свойство управляет позиционированием элемента на странице. Вы можете установить его в static, relative, absolute, fixed или sticky, чтобы определить, как элемент располагается в потоке документа.

quotes

Это свойство определяет тип кавычек, используемых в элементах q и blockquote. Вы можете установить различные типы кавычек для отображения цитат в различных стилях.

resize

Это свойство управляет тем, можно ли изменять размер элемента с помощью пользовательского интерфейса. Например, вы можете установить его в none, чтобы запретить изменение размера элемента, или both, чтобы разрешить изменение как по ширине, так и по высоте.

Это свойство устанавливает расстояние от правого края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.

row-gap

Это свойство устанавливает промежутки между строками в грид-контейнере. Оно аналогично свойству column-gap, но применяется к строкам вместо столбцов.

scroll-behavior

Это свойство управляет тем, как браузер прокручивает страницу к якорным ссылкам или с помощью JavaScript. Например, вы можете установить его в smooth, чтобы добавить плавную прокрутку к ссылкам.

tab-size

Это свойство устанавливает размер табуляции для текста элемента. Оно влияет на то, как браузер интерпретирует символы табуляции и пробелы при отображении текста.

table-layout

Это свойство управляет алгоритмом распределения пространства в таблице. Вы можете установить его в auto, чтобы браузер самостоятельно определял ширину столбцов, или fixed, чтобы фиксировать ширину столбцов.

top

Это свойство устанавливает расстояние от верхнего края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.

transform

Это свойство применяет 2D или 3D трансформации к элементу, такие как вращение, масштабирование, наклон и т. д. Оно позволяет создавать различные эффекты и анимации на элементах страницы.

transition

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

unicode-bidi

Это свойство определяет направление текста и направление записи для элемента. Например, вы можете установить его в embed, чтобы определить, следует ли текст отображать справа налево или слева направо.

user-select

Это свойство управляет тем, можно ли выбирать текст на элементе. Например, вы можете установить его в none, чтобы запретить выделение текста, или text, чтобы разрешить его.

vertical-align

Это свойство устанавливает вертикальное выравнивание элемента внутри его родительского контейнера. Оно используется в основном для выравнивания элементов внутри строк таблицы или внутри блочных элементов.

visibility

Это свойство устанавливает видимость элемента. Вы можете установить его в visible, чтобы элемент был видимым, hidden, чтобы скрыть его без изменения макета страницы, или collapse, чтобы скрыть его и сдвинуть остальные элементы на его место.

white-space

Это свойство определяет, как браузер обрабатывает пробелы и переносы строк внутри элемента. Например, вы можете установить его в nowrap, чтобы предотвратить перенос текста, или pre, чтобы сохранить форматирование текста.

widows

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

width

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

word-break

Это свойство определяет, как браузер разбивает длинные слова и URL-адреса для обеспечения лучшего чтения текста. Например, вы можете установить его в break-all, чтобы разрешить перенос длинных слов на новую строку.

word-spacing

Это свойство устанавливает расстояние между словами в тексте. Вы можете увеличить или уменьшить интервал между словами, чтобы сделать текст более читабельным или стилизованным.

word-wrap

Это свойство определяет, как браузер обрабатывает длинные слова и URL-адреса для обеспечения лучшего чтения текста. Например, вы можете установить его в break-word, чтобы разрешить перенос длинных слов на новую строку.

writing-mode

Это свойство определяет направление записи текста в элементе. Например, вы можете установить его в vertical-lr, чтобы текст отображался вертикально снизу вверх, вместо стандартного горизонтального направления.

z-index

Это свойство устанавливает порядок слоев для элементов, находящихся на одном уровне. Оно используется для определения того, какие элементы находятся поверх других, когда они перекрываются.

zoom

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

Руководство по таблицам (гридам)

Модуль CSS Grid Layout был разработан Рабочей группой CSS с целью предложить лучший способ создания макетов сайтов с помощью стилей. В феврале 2017 года модуль получил статус «Candidate Recommendation», а в марте 2017 года основные браузеры начали поддерживать CSS Grid.

Вёрстка с помощью гридов скоро станет неотъемлемой частью инструментария любого фронтенд-разработчика. Если вы фронтенд-разработчик, то вам просто необходимо изучить гриды — почти наверняка это станет обязательным навыком на любой позиции фронтенд-разработчика.

Благодаря своим мощным возможностям и интуитивно понятному синтаксису, вёрстка на гридах, несомненно, изменит способ вёрстки макетов в Интернете.

Руководство по адаптивному дизайну

Когда я слышу термин «адаптивный дизайн», то первое, что приходит мне в голову, — это устройства разных размеров. Эта мысль просто засела у меня в голове. Готов спорить, многие из вас, скорее всего, думают аналогично. Однако в наше время понятие «адаптивный дизайн» включает в себя множество разных смыслов.

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

Рассмотрим следующий дизайн. У нас есть типовой макет, который надо сделать адаптивным

Стандартный ответ дизайнера звучит примерно так:

  • главное изображение перенести на новую строку;
  • уменьшить размер шрифта;
  • разместить карточки друг под другом.

И вот, адаптивный дизайн готов. Казалось бы, всё просто, но есть множество мелочей, которые нам нужно учесть. При взгляде на десктопный дизайн у меня, как у дизайнера и фронтенд-разработчика, возникает масса вопросов:

  • Когда части главного изображения (картинка и текст) должны переходить на новую строку?
  • Является ли размер шрифта плавно изменяемым? Или это просто фиксированное значение, которое меняется вручную?
  • Нужно ли использовать адаптивные изображения?
  • Нужны ли плавно изменяемые интервалы?
  • Набор карточек
    • Должен ли быть ещё промежуточный вариант карточки между мобильными и десктопными размерами?
    • Имеет ли изображение карточки заданное соотношение сторон?
  • Настройки пользователя: есть ли какие-то детали интерфейса, которые будут меняться пользователем, например, минимизация анимация, смена темы или цветовой схемы.

Использование современного CSS

  • Типографика адаптируется к ширине области просмотра с помощью функции clamp().
  • Интервалы адаптируются к ширине области просмотра с помощью функции clamp().
  • Раздел с главным изображением адаптирует своё содержимое с помощью флексов.
  • Сетка карточек адаптируется к доступному пространству с помощью функции minmax(), без медиа-запросов.
  • Компонент карточки адаптирует свою ширину с помощью контейнерных и стилевых запросов.
  • Поля и отступы адаптируются к языку сайта с помощью логических свойств.

Использование медиа-запросов

  • Навигация по сайту адаптируется к ширине области просмотра
  • Темизация сайта адаптируется к настройкам операционной системы пользователя.
  • Эффект наведения на карточку адаптируется к тому, что использует пользователь (сенсорный экран или мышь).

В приведённом списке темы и навигация выполняются с помощью медиа-запросов. Остальное — это современные возможности CSS, такие как функция clamp() и контейнерные запросы.

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

Адаптивный дизайн больше не связан с медиа-запросами.

К сожалению, есть мнение, которое я считаю ошибочным. Многие новички в Интернете думают, что «Введите название фреймворка» — это способ создать адаптивный сайт. Однажды у меня был спор с клиентом, что нам не требуется «Введите название фреймворка» для создания адаптивных сайтов. Я сказал им, что мы можем использовать медиа-запросы CSS, поскольку они являются строительными блоками для упомянутого фреймворка.

Руководство по Bootstrap 5

Bootstrap — это бесплатный набор инструментов с открытым исходным кодом для создания сайтов и веб-приложений. Это самый популярный HTML, CSS и JavaScript-фреймворк для разработки адаптивных и ориентированных на мобильные устройства проектов в Интернете.

По мере того как Интернет всё больше и больше развивается в сторону адаптивного дизайна, веб-разработчикам бывает очень сложно идти в ногу со временем. Bootstrap может сделать работу намного проще. Он позволяет создавать адаптивные сайты без необходимости делать что-то «адаптивным». Bootstrap позаботится об этом сам.

Один фреймворк, каждое устройство

Bootstrap часто рекламируется как «один фреймворк для каждого устройства». Это связано с тем, что сайты, созданные с помощью Bootstrap, автоматически масштабируются между устройствами — будь то мобильный телефон, планшет, ноутбук, настольный компьютер, экранный ридер и др.

Сперва мобильные

Bootstrap не только адаптивен, но и ориентирован на мобильные устройства. Это означает, что он в первую очередь предназначен для мобильных устройств, а затем масштабируется в большую сторону на другие устройства (в отличие от разработки для настольных компьютеров, где пытаются масштабировать в меньшую сторону для мобильных устройств).

Компоненты Bootstrap

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

Мы будем рассматривать эти компоненты на протяжении всего этого руководства. У нас есть множество интерактивных примеров, которые позволят вам увидеть, как именно работают эти компоненты.

Преимущества Bootstrap

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

Учитывая, что Bootstrap это самый популярный фреймворк для фронтенд-разработки в Интернете, его изучение может оказаться полезным для набора навыков. Добавление Bootstrap в ваш арсенал умений может помочь во многих отношениях — от ускорения создания сайтов до получения работы мечты.

Кроме того, хотя Bootstrap поставляется с собственным набором стилей, их можно легко переопределить. Вы не привязаны к «дизайну Bootstrap» и вольны использовать любые компоненты Bootstrap по своему усмотрению, добавляя при этом свои собственные. Существуют тысячи сайтов, построенных на Bootstrap, но с собственным дизайном.

Кто использует Bootstrap?

Bootstrap можно использовать для создания сайтов любого масштаба — от небольших блогов до крупных корпоративных сайтов. Среди организаций, использующих Bootstrap, — NASA, Вашингтонский университет, FIFA, Newsweek, Vogue и многие другие.

О Bootstrap 5

В Bootstrap 5 добавлены новые возможности, которых не было в предыдущих версиях. Среди них — новый аккордеон, новые и обновлённые формы, текст справа налево, новый служебный API и многое другое.

Альфа-версия Bootstrap 5 была выпущена 5 мая 2021 года после трёх альфа-версий, трёх бета-версий и нескольких месяцев разработки.

Псевдоэлементы ::before и ::after

Псевдоэлементы ::before и ::after — это невероятные универсальные помощники в наборе инструментов CSS. Их понимание поможет вам создать практичный CSS для разрешения самых разных ситуаций. Или же вы можете пойти дальше и использовать их для создания впечатляющих трюков CSS.

В этом руководстве мы начнём с азов, объясним, что такое псевдоэлементы и как их использовать, и по ходу будем погружаться в более острые темы. Также много поговорим о стилевом свойстве content, поскольку оно очень сильно связано с нашей темой.

CSS-анимация для начинающих

  1. Определение ключевых кадров (keyframes):

    • Используйте @keyframes для определения набора ключевых кадров, которые представляют начальное и конечное состояния анимации.
    • Каждый ключевой кадр определяет состояние элемента в определенный момент времени (например, 0%, 50%, 100%).
  2. Применение анимации к элементу:

    • Используйте свойство animation для применения анимации к элементу.
    • Укажите имя ключевых кадров и другие параметры анимации, такие как продолжительность, тип смягчения и задержка.
  3. Пример:

    В этом примере создается анимация slide, которая перемещает элемент вправо на 100px. Анимация повторяется бесконечно с использованием типа смягчения ease-in-out и альтернативно изменяет направление.

  4. Свойства анимации:

    • animation-name: Имя ключевых кадров.
    • animation-duration: Продолжительность анимации.
    • animation-timing-function: Тип смягчения (например, linear, ease, ease-in, ease-out, ease-in-out).
    • animation-delay: Задержка перед началом анимации.
    • animation-iteration-count: Количество повторений анимации (например, infinite для бесконечного повторения).
    • animation-direction: Направление анимации (например, normal, reverse, alternate).
    • animation-fill-mode: Режим заполнения (например, forwards, backwards, both).
    • animation-play-state: Состояние воспроизведения анимации (например, running, paused).
  5. Примечания:

    • Используйте вендорные префиксы для поддержки устаревших браузеров (например, -webkit-animation).
    • Экспериментируйте с различными свойствами и типами смягчения для создания живых и интересных анимаций.
    • Предпочитайте использование анимаций CSS перед JavaScript там, где это возможно, для лучшей производительности и меньшего количества кода.

Руководство по переменным CSS

  1. Объявление переменных:

    • Используйте ключевое слово -- для объявления пользовательских переменных.
    • Переменные объявляются внутри селекторов, таких как :root, чтобы быть глобальными, или в любом другом селекторе для ограничения области видимости.
    • Пример:
  2. Использование переменных:

    • Чтобы использовать переменную, укажите ее имя с помощью функции var().
    • Пример:
  3. Изменение переменных с помощью JavaScript:

    • Вы можете изменять значения переменных непосредственно из JavaScript для динамического изменения внешнего вида страницы.
    • Пример:
  4. Преимущества использования переменных:

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

    • Переменные CSS поддерживаются во всех современных браузерах, включая Chrome, Firefox, Safari, Edge и Opera.
    • Помните, что переменные CSS не являются динамическими значениями. Они резолвятся только один раз при загрузке страницы.
    • Избегайте циклических зависимостей между переменными, так как это может привести к нежелательным результатам в стилях.

Полезные сайты

  1. GitHub
  2. Grid Generator- поможет сделать таблицы
  3. Figma- тренеровочные макеты для верстки сайтов