HTML & CSS
Flexbox - это мощный инструмент в CSS для создания гибких и адаптивных макетов веб-страниц. Он предоставляет набор свойств, которые позволяют легко управлять расположением элементов в контейнере, обеспечивая при этом гибкость и удобство в работе.
CSS Grid - это инструмент для создания сетчатых макетов в веб-дизайне. С его помощью вы можете легко создавать сложные макеты, состоящие из строк и столбцов, и распределять элементы по этим строкам и столбцам. Вот краткое описание основных концепций и команд CSS Grid:
В CSS существуют функции, которые позволяют выполнять различные операции над значениями свойств, создавать эффекты и управлять стилями более гибко. Вот некоторые из наиболее распространенных функций:
Единицы измерения в CSS определяют размеры элементов и расстояния между ними. Выбор единицы измерения зависит от конкретных потребностей вашего проекта. Каждая единица имеет свои преимущества и недостатки, и правильное использование единиц поможет создать более гибкий и адаптивный дизайн.
Селекторы в CSS - это паттерны, которые используются для выбора и стилизации определенных элементов на веб-странице. Они позволяют вам указывать, к каким элементам применять определенные стили. Вот некоторые из наиболее распространенных селекторов в CSS
Этот свойство устанавливает цвет акцента для элементов форм, таких как кнопки, инпуты и т.д. Он используется для подсветки активных элементов при взаимодействии с пользователем, например, при нажатии на кнопку.
Свойство all применяет стили ко всем элементам на странице, переопределяя любые ранее установленные стили. Это полезно, когда нужно быстро сбросить все стили и начать с чистого листа.
Это свойство позволяет создавать анимации для элементов на странице. Вы можете определить ключевые кадры, продолжительность анимации, задержку и другие параметры, чтобы создать плавные и интересные эффекты.
Свойство aspect-ratio устанавливает соотношение сторон для элемента. Это позволяет контролировать пропорции элемента без изменения его размеров, что особенно полезно для изображений и видео.
Данное свойство позволяет применять размытие или другие эффекты к заднему фону элемента. Оно используется для создания эффектов прозрачности и размытия, что может придать вашему макету более сложный и интересный внешний вид.
Свойство backface-visibility определяет видимость обратной стороны элемента в 3D-пространстве. Это может быть полезно при использовании трансформаций, таких как повороты, чтобы скрыть или отобразить обратную сторону элемента.
Это одно из основных свойств CSS, которое позволяет устанавливать фоновое изображение, цвет и другие параметры фона для элемента.
Свойство block-size устанавливает размер блока элемента в направлении блочной оси. Это обычно означает высоту элемента, когда он отображается как блочный элемент.
Это свойство позволяет задавать границу элемента. Вы можете устанавливать ширину, стиль и цвет границы, чтобы создать различные эффекты оформления.
Свойство bottom устанавливает расстояние от нижнего края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.
Это свойство определяет, как разрывы в тексте влияют на оформление содержащего их блока. Например, оно может контролировать оформление рамок и фонов для разрывов строк.
Свойство box-shadow позволяет добавлять тени к элементам на странице. Вы можете установить параметры тени, такие как смещение, размытие и цвет, чтобы создать различные эффекты.
Это свойство определяет модель размеров элемента, контент которого может быть управляем или непосредственно контролируем размером контейнера. Две наиболее распространенные модели размеров - content-box и border-box.
Свойство caption-side устанавливает расположение заголовка таблицы относительно ее содержимого. Например, вы можете установить значение bottom, чтобы разместить заголовок таблицы под ее содержимым.
Свойство caret-color устанавливает цвет маркера каретки в текстовых полях и других элементах с возможностью ввода. Это позволяет вам настраивать внешний вид маркера каретки, что особенно полезно при создании пользовательских форм.
Это свойство управляет тем, как элемент должен вести себя в отношении элементов, находящихся по бокам, которые имеют свойство float. Оно определяет, должен ли элемент переноситься под последний элемент с float или нет.
Свойство clip определяет прямоугольную область отсечения для элемента. Это используется, чтобы скрыть части элемента, которые находятся за пределами заданной области.
Это свойство устанавливает цвет текста элемента.
Это свойство объединяет другие свойства для работы с многоколоночным макетом. Вы можете установить количество колонок, их ширину, распределение и другие параметры.
Это свойство устанавливает количество и ширину колонок в многоколоночном макете.
Это свойство используется для вставки содержимого, созданного с помощью псевдоэлементов, таких как ::before и ::after. Вы можете использовать его для добавления дополнительных декоративных элементов или текста к элементам на странице.
Это свойство увеличивает значение счетчика при каждом вхождении выбранного элемента. Оно используется для создания автоматически нумерованных списков или для подсчета повторяющихся элементов на странице.
Это свойство сбрасывает значение счетчика перед началом новой последовательности. Оно используется в сочетании с counter-increment для создания сложных счетчиков и нумерации на странице.
Это свойство устанавливает форму указателя мыши при наведении на элемент. Вы можете использовать его, чтобы изменить стандартный указатель мыши на другую форму, такую как рука или стрелка.
Это свойство устанавливает направление текста в элементе, позволяя управлять его направлением и расположением. Например, вы можете установить значение rtl (справа налево) для элементов с текстом на арабском или иврите.
Это одно из основных свойств CSS, которое определяет тип отображения элемента. Например, вы можете установить элемент как блочный, строчный или инлайновый, что влияет на его расположение и взаимодействие с другими элементами на странице.
Это свойство управляет отображением пустых ячеек таблицы. Вы можете установить его в hide, чтобы скрыть пустые ячейки, или show, чтобы оставить их видимыми.
Это свойство применяет фильтры к изображению или элементу, позволяя изменять его визуальное представление. Вы можете использовать различные фильтры, такие как размытие, насыщенность, контраст и другие, чтобы изменить внешний вид элемента.
Это свойство определяет, как элемент должен взаимодействовать с окружающими элементами по бокам. Например, вы можете установить элемент как float: left, чтобы выровнять его слева и позволить содержимому обтекать его справа.
Это свойство устанавливает различные свойства шрифта для текста элемента. Вы можете установить семейство шрифтов, размер, начертание и другие параметры, чтобы настроить внешний вид текста на странице.
Это свойство устанавливает промежутки между элементами в грид-контейнере или флекс-контейнере. Оно позволяет создавать пространство между элементами в макете, что делает его более удобным для чтения и использования.
Это свойство устанавливает высоту элемента. Вы можете задать ее в пикселях, процентах, em или других единицах измерения, чтобы указать, сколько места должен занимать элемент на странице.
Это свойство устанавливает символ, используемый для разбиения слов на слоги при автоматическом переносе текста. Вы можете использовать это для настройки внешнего вида переноса слов, чтобы сделать текст более читабельным и привлекательным.
Это свойство устанавливает минимальное количество символов перед и после дефиса при автоматическом переносе слов. Оно позволяет управлять, как часто слова будут переноситься на новую строку, что помогает предотвратить появление слишком коротких слов.
Это свойство управляет использованием и типом автоматического переноса текста. Вы можете установить его в none, чтобы отключить автоматический перенос, или auto, чтобы разрешить браузеру самостоятельно определять, когда и как переносить слова.
Это свойство устанавливает параметры отображения изображения в элементе. Вы можете установить его в cover, чтобы изображение занимало всю доступную область элемента, или contain, чтобы оно целиком помещалось внутри элемента.
Это свойство устанавливает размер элемента в направлении инлайновой оси. Обычно это ширина элемента, когда он отображается как инлайновый или инлайн-блочный элемент.
Это свойство устанавливает расстояние от левого края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.
Это свойство устанавливает расстояние между символами в тексте. Вы можете увеличить или уменьшить интервал между буквами, чтобы сделать текст более читабельным или стилизованным.
Это свойство объединяет другие свойства для управления параметрами линий, такими как их ширина, стиль и цвет. Вы можете установить значения для каждого параметра, чтобы создать различные эффекты линий на странице.
Это свойство устанавливает стиль списка для элементов ul и ol. Вы можете установить его в none, чтобы скрыть маркеры списка, или disc, circle, square для различных видов маркеров.
Это свойство устанавливает внешние отступы элемента. Вы можете установить значения для отступов сверху, справа, снизу и слева, чтобы создать пространство вокруг элемента в макете.
Это свойство устанавливает максимальный размер блока элемента в направлении блочной оси. Это позволяет ограничить максимальную высоту элемента, когда он растягивается в блочном направлении.
Это свойство устанавливает максимальную высоту элемента. Это позволяет ограничить рост элемента по вертикали, когда он растягивается за пределы заданной высоты.
Это свойство устанавливает максимальный размер элемента в направлении инлайновой оси. Это обычно используется для ограничения ширины элемента, когда он отображается как инлайновый или инлайн-блочный элемент.
Это свойство устанавливает максимальную ширину элемента. Это позволяет ограничить рост элемента по горизонтали, когда он растягивается за пределы заданной ширины.
Это свойство устанавливает минимальный размер блока элемента в направлении блочной оси. Это позволяет контролировать минимальную высоту элемента, когда он сжимается в блочном направлении.
Это свойство устанавливает минимальную высоту элемента. Это позволяет контролировать минимальную высоту элемента, когда он сжимается по вертикали.
Это свойство устанавливает минимальный размер элемента в направлении инлайновой оси. Это обычно используется для контроля минимальной ширины элемента, когда он отображается как инлайновый или инлайн-блочный элемент.
Это свойство устанавливает минимальную ширину элемента. Это позволяет контролировать минимальную ширину элемента, когда он сжимается по горизонтали.
Это свойство определяет, как цвета элемента смешиваются с его фоном или смежными элементами. Оно используется для создания эффектов наложения и прозрачности.
Это свойство определяет, как элемент должен отображаться, когда он встраивается в документ. Например, вы можете установить его в cover, чтобы изображение автоматически масштабировалось, чтобы заполнить всю доступную область.
Это свойство устанавливает прозрачность элемента. Вы можете установить значение от 0 (полностью прозрачный) до 1 (полностью непрозрачный), чтобы создать различные эффекты прозрачности.
Это свойство управляет порядком элемента в гибком контейнере или таблице. Вы можете установить его значение, чтобы изменить порядок, в котором элементы располагаются на странице.
Это свойство устанавливает минимальное количество строк, которые должны оставаться вверху страницы, когда элемент переносится на новую страницу. Оно используется для управления оформлением многостраничных документов.
Это свойство устанавливает контур вокруг элемента, который не влияет на его размер или расположение. Оно обычно используется для создания видимых обводок вокруг элементов для улучшения доступности или оформления.
Это свойство управляет тем, как браузер обрабатывает содержимое, которое не помещается внутри элемента. Например, вы можете установить его в scroll, чтобы добавить полосы прокрутки, когда содержимое выходит за пределы элемента.
Это свойство устанавливает внутренние отступы элемента. Вы можете установить значения для отступов сверху, справа, снизу и слева, чтобы создать пространство внутри элемента для размещения его содержимого.
Это свойство управляет тем, как элементы разрываются на страницах при печати. Например, вы можете установить его в always, чтобы гарантировать, что элемент всегда начинается на новой странице.
Это свойство устанавливает перспективу для элементов, которые позиционируются в 3D-пространстве. Оно влияет на их вид при использовании 3D-трансформаций, таких как вращения и наклоны.
Это свойство устанавливает точку перспективы для элементов, которые позиционируются в 3D-пространстве. Оно определяет, откуда наблюдается элемент, что влияет на его визуальное представление при применении 3D-трансформаций.
Это свойство управляет размещением содержимого в гибком контейнере или сетке. Вы можете установить его значение, чтобы выровнять содержимое по горизонтали, вертикали или обоим направлениям одновременно.
Это свойство управляет тем, как элемент реагирует на события указателя мыши. Например, вы можете установить его в none, чтобы отключить все события указателя для элемента, или auto, чтобы разрешить им.
Это свойство управляет позиционированием элемента на странице. Вы можете установить его в static, relative, absolute, fixed или sticky, чтобы определить, как элемент располагается в потоке документа.
Это свойство определяет тип кавычек, используемых в элементах q и blockquote. Вы можете установить различные типы кавычек для отображения цитат в различных стилях.
Это свойство управляет тем, можно ли изменять размер элемента с помощью пользовательского интерфейса. Например, вы можете установить его в none, чтобы запретить изменение размера элемента, или both, чтобы разрешить изменение как по ширине, так и по высоте.
Это свойство устанавливает расстояние от правого края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.
Это свойство устанавливает промежутки между строками в грид-контейнере. Оно аналогично свойству column-gap, но применяется к строкам вместо столбцов.
Это свойство управляет тем, как браузер прокручивает страницу к якорным ссылкам или с помощью JavaScript. Например, вы можете установить его в smooth, чтобы добавить плавную прокрутку к ссылкам.
Это свойство устанавливает размер табуляции для текста элемента. Оно влияет на то, как браузер интерпретирует символы табуляции и пробелы при отображении текста.
Это свойство управляет алгоритмом распределения пространства в таблице. Вы можете установить его в auto, чтобы браузер самостоятельно определял ширину столбцов, или fixed, чтобы фиксировать ширину столбцов.
Это свойство устанавливает расстояние от верхнего края элемента до его родительского контейнера. Это используется в основном для позиционирования элементов относительно их родительского контейнера.
Это свойство применяет 2D или 3D трансформации к элементу, такие как вращение, масштабирование, наклон и т. д. Оно позволяет создавать различные эффекты и анимации на элементах страницы.
Это свойство определяет переходы между двумя состояниями элемента, например, при наведении мыши или изменении содержимого. Вы можете установить значения для продолжительности, задержки, функции смягчения и других параметров, чтобы создать плавные и интересные эффекты.
Это свойство определяет направление текста и направление записи для элемента. Например, вы можете установить его в embed, чтобы определить, следует ли текст отображать справа налево или слева направо.
Это свойство управляет тем, можно ли выбирать текст на элементе. Например, вы можете установить его в none, чтобы запретить выделение текста, или text, чтобы разрешить его.
Это свойство устанавливает вертикальное выравнивание элемента внутри его родительского контейнера. Оно используется в основном для выравнивания элементов внутри строк таблицы или внутри блочных элементов.
Это свойство устанавливает видимость элемента. Вы можете установить его в visible, чтобы элемент был видимым, hidden, чтобы скрыть его без изменения макета страницы, или collapse, чтобы скрыть его и сдвинуть остальные элементы на его место.
Это свойство определяет, как браузер обрабатывает пробелы и переносы строк внутри элемента. Например, вы можете установить его в nowrap, чтобы предотвратить перенос текста, или pre, чтобы сохранить форматирование текста.
Это свойство устанавливает минимальное количество строк, которые должны оставаться внизу страницы, когда элемент переносится на новую страницу. Оно используется для управления оформлением многостраничных документов.
Это свойство устанавливает ширину элемента. Вы можете задать ее в пикселях, процентах, em или других единицах измерения, чтобы указать, сколько места должен занимать элемент на странице.
Это свойство определяет, как браузер разбивает длинные слова и URL-адреса для обеспечения лучшего чтения текста. Например, вы можете установить его в break-all, чтобы разрешить перенос длинных слов на новую строку.
Это свойство устанавливает расстояние между словами в тексте. Вы можете увеличить или уменьшить интервал между словами, чтобы сделать текст более читабельным или стилизованным.
Это свойство определяет, как браузер обрабатывает длинные слова и URL-адреса для обеспечения лучшего чтения текста. Например, вы можете установить его в break-word, чтобы разрешить перенос длинных слов на новую строку.
Это свойство определяет направление записи текста в элементе. Например, вы можете установить его в vertical-lr, чтобы текст отображался вертикально снизу вверх, вместо стандартного горизонтального направления.
Это свойство устанавливает порядок слоев для элементов, находящихся на одном уровне. Оно используется для определения того, какие элементы находятся поверх других, когда они перекрываются.
Это свойство масштабирует элемент, изменяя его размеры в соответствии с заданным коэффициентом масштабирования. Оно может быть полезно для увеличения или уменьшения размеров элемента без изменения его структуры или макета.
Модуль CSS Grid Layout был разработан Рабочей группой CSS с целью предложить лучший способ создания макетов сайтов с помощью стилей. В феврале 2017 года модуль получил статус «Candidate Recommendation», а в марте 2017 года основные браузеры начали поддерживать CSS Grid.
Вёрстка с помощью гридов скоро станет неотъемлемой частью инструментария любого фронтенд-разработчика. Если вы фронтенд-разработчик, то вам просто необходимо изучить гриды — почти наверняка это станет обязательным навыком на любой позиции фронтенд-разработчика.
Благодаря своим мощным возможностям и интуитивно понятному синтаксису, вёрстка на гридах, несомненно, изменит способ вёрстки макетов в Интернете.
Когда я слышу термин «адаптивный дизайн», то первое, что приходит мне в голову, — это устройства разных размеров. Эта мысль просто засела у меня в голове. Готов спорить, многие из вас, скорее всего, думают аналогично. Однако в наше время понятие «адаптивный дизайн» включает в себя множество разных смыслов.
Я общаюсь с клиентами и дизайнерами, которые считают, что адаптивный дизайн — это просто создание двух версий веб-страницы: одна для десктопных компьютеров, а другая для мобильных устройств. В наше время такой подход считается устаревшим.
Рассмотрим следующий дизайн. У нас есть типовой макет, который надо сделать адаптивным
Стандартный ответ дизайнера звучит примерно так:
И вот, адаптивный дизайн готов. Казалось бы, всё просто, но есть множество мелочей, которые нам нужно учесть. При взгляде на десктопный дизайн у меня, как у дизайнера и фронтенд-разработчика, возникает масса вопросов:
В приведённом списке темы и навигация выполняются с помощью медиа-запросов. Остальное — это современные возможности CSS, такие как функция clamp() и контейнерные запросы.
Со временем медиа-запросы будут использоваться для компонентов, привязанных к ширине области просмотра, таких как навигация по сайту и подвал. Использование современных возможностей CSS может помочь нам в создании макетов и компонентов, которые адаптируются к собственному контейнеру или настройкам пользователя.
Адаптивный дизайн больше не связан с медиа-запросами.
К сожалению, есть мнение, которое я считаю ошибочным. Многие новички в Интернете думают, что «Введите название фреймворка» — это способ создать адаптивный сайт. Однажды у меня был спор с клиентом, что нам не требуется «Введите название фреймворка» для создания адаптивных сайтов. Я сказал им, что мы можем использовать медиа-запросы CSS, поскольку они являются строительными блоками для упомянутого фреймворка.
Bootstrap — это бесплатный набор инструментов с открытым исходным кодом для создания сайтов и веб-приложений. Это самый популярный HTML, CSS и JavaScript-фреймворк для разработки адаптивных и ориентированных на мобильные устройства проектов в Интернете.
По мере того как Интернет всё больше и больше развивается в сторону адаптивного дизайна, веб-разработчикам бывает очень сложно идти в ногу со временем. Bootstrap может сделать работу намного проще. Он позволяет создавать адаптивные сайты без необходимости делать что-то «адаптивным». Bootstrap позаботится об этом сам.
Bootstrap часто рекламируется как «один фреймворк для каждого устройства». Это связано с тем, что сайты, созданные с помощью Bootstrap, автоматически масштабируются между устройствами — будь то мобильный телефон, планшет, ноутбук, настольный компьютер, экранный ридер и др.
Bootstrap не только адаптивен, но и ориентирован на мобильные устройства. Это означает, что он в первую очередь предназначен для мобильных устройств, а затем масштабируется в большую сторону на другие устройства (в отличие от разработки для настольных компьютеров, где пытаются масштабировать в меньшую сторону для мобильных устройств).
Bootstap включает в себя такие компоненты, как кнопки, навигационные панели, выпадающие меню, уведомления и многое другое. В большинстве случаев вы можете использовать компонент, просто указав соответствующее имя класса.
Мы будем рассматривать эти компоненты на протяжении всего этого руководства. У нас есть множество интерактивных примеров, которые позволят вам увидеть, как именно работают эти компоненты.
Одно из главных преимуществ таких фреймворков, как Bootstrap, заключается в том, что они позволяют ускорить процесс разработки, сохраняя при этом качество и единообразие всего сайта. Вам больше не нужно заново разрабатывать каждый элемент и не нужно тратить часы на то, чтобы заставить всё выглядеть и работать одинаково в разных браузерах, платформах и устройствах. При использовании Bootstrap практически вся часть тяжёлой работы будет сделана за вас.
Учитывая, что Bootstrap это самый популярный фреймворк для фронтенд-разработки в Интернете, его изучение может оказаться полезным для набора навыков. Добавление Bootstrap в ваш арсенал умений может помочь во многих отношениях — от ускорения создания сайтов до получения работы мечты.
Кроме того, хотя Bootstrap поставляется с собственным набором стилей, их можно легко переопределить. Вы не привязаны к «дизайну Bootstrap» и вольны использовать любые компоненты Bootstrap по своему усмотрению, добавляя при этом свои собственные. Существуют тысячи сайтов, построенных на Bootstrap, но с собственным дизайном.
Bootstrap можно использовать для создания сайтов любого масштаба — от небольших блогов до крупных корпоративных сайтов. Среди организаций, использующих Bootstrap, — NASA, Вашингтонский университет, FIFA, Newsweek, Vogue и многие другие.
В Bootstrap 5 добавлены новые возможности, которых не было в предыдущих версиях. Среди них — новый аккордеон, новые и обновлённые формы, текст справа налево, новый служебный API и многое другое.
Альфа-версия Bootstrap 5 была выпущена 5 мая 2021 года после трёх альфа-версий, трёх бета-версий и нескольких месяцев разработки.
Псевдоэлементы ::before и ::after — это невероятные универсальные помощники в наборе инструментов CSS. Их понимание поможет вам создать практичный CSS для разрешения самых разных ситуаций. Или же вы можете пойти дальше и использовать их для создания впечатляющих трюков CSS.
В этом руководстве мы начнём с азов, объясним, что такое псевдоэлементы и как их использовать, и по ходу будем погружаться в более острые темы. Также много поговорим о стилевом свойстве content, поскольку оно очень сильно связано с нашей темой.
В этом примере создается анимация slide, которая перемещает элемент вправо на 100px. Анимация повторяется бесконечно с использованием типа смягчения ease-in-out и альтернативно изменяет направление.