Какие способы применения стилей существуют
Различают четыре способа применения стилей:
Какие css селекторы вы знаете?
tag-name.class-name#id-name[attr] [attr=value] a[href="https://example.com"]::before ::after ::selection ::first-line ::first-letter:hover :active :invalid :nth-child() :first-child :last-child :only-child
body particle > pp + img p ~ imgКак работает каскад в CSS?
Как вычислить вес селектора?
!important к значению свойства. Но этот приём считается плохой практикой.Вес селекторов:
1. Стили указанные в элементе разметки – 1000
Вес записывается в виде a, b, c, d, где:
- a — встроенные стили,
- b — селектор по идентификатору,
- c — селектор классов, псевдоклассов и атрибутов,
- d — селектор по тегу и псевдоэлементу.
Если в цепочке есть один из этих селекторов, то на его место в строке a, b, c, d ставится единица. Если нет — нуль.
Посчитаем на примере ul .list-item.list-active
Встроенных стилей нет. Ставим нуль — 0, b, c, d.
Идентификатора тоже нет, добавляем на его место нуль — 0, 0, c, d.
Есть два класса, каждый весит единицу. Складываем их и подставляем в формулу: 0, 0, 2, d.
Тег один, ставим 1.
Получается, вес ul .list-item.list-active 0021
Наследование в CSS
Некоторые значения свойства CSS, установленные для родительских элементов наследуются их дочерними элементами, а некоторые нет. Например свойства colorи font-familyнаследуются, а width и padding нет. Какие свойства наследуются по умолчанию, а какие нет, чаще всего определяется здравым смыслом.
Какие способы контроля наследования в CSS вы знаете?
CSS предоставляет четыре специальных универсальных значения свойства для контроля наследования. Каждое свойство CSS принимает эти значения.
inherit
Устанавливает значение свойства, применённого к элементу, таким же, как у его родительского элемента. Фактически, это “включает наследование”.
initial
Устанавливает значение свойства, применённого к выбранному элементу, равным initial value этого свойства (в соответствии с настройками браузера по умолчанию. Если в таблице стилей браузера отсутствует значение этого свойства, оно наследуется естественным образом.)
unset
Возвращает свойству его естественное значение. По своему поведению unset чем-то похож на initial + inherit — если это свойство ненаследуемое от родителя — оно сбросится до начального значения, наследуемое — получит значение родителя.
revert
Это менее строгий режим сброса — он отменяет все установленные разработчиком значения для данного свойства до значения, которое считается браузером «значением по умолчанию».
all
Свойство принимает одно из четырёх значений (inherit, initial, unset, или revert). Это удобный способ для отмены изменений, внесённых в стили, для того, чтобы вы могли вернуться к стартовой точке перед внесением новых изменений.
Все наследуемые свойства для .widget и его потомков будут сброшены
.widget {
all: revert;
}Значения свойства display
Свойство display определяет тип отображения (display type) элемента, имеющий два основных свойства, определяющих генерацию боксов — внешний тип отображения определяет расположение бокса в схеме потока (flow layout) и внутренний тип отображения определяет расположение дочерних элементов бокса (бокс - это прямоугольная область, являющаяся изображением элемента).
Часто встречающиеся значения:
block: Элемент отображается как блочный элемент и занимает всю доступную горизонтальную ширину. Новые элементы начинаются с новой строки.inline: Элемент отображается как строчный элемент и не прерывает текущую строку текста. Он занимает только необходимое для своего содержимого пространство.inline-block (legacy): Элемент отображается как строчный блок. Он занимает только необходимое пространство для своего содержимого, при этом его можно стилизовать, как блочный элемент.none: Элемент не отображается на странице. Он полностью скрывается и не занимает места в макете страницы.flex: Элемент отображается как флекс-контейнер, который позволяет управлять распределением элементов внутри него. Он позволяет использовать мощные функции построения адаптивных макетов.grid: Элемент отображается как грид-контейнер. С помощью этого значения можно создавать сложные макеты с разделением на строки и столбцы.Что такое Box Model?
Блочная модель, она же box model — это алгоритм расчёта размеров каждого отдельного элемента на странице, которым браузеры пользуются при отрисовке.
Box model включает в себя четыре основных компонента, которые определяют размер и расположение элемента:
width (ширина) и height (высота).padding-top, padding-right, padding-bottom и padding-left.border используется для задания ширины, стиля и цвета границы.margin-top, margin-right, margin-bottom и margin-left.Свойство box-sizing
По умолчанию браузеры рассчитывают размеры элемента ровно так, как описано выше, прибавляя внутренние отступы и рамки к ширине и высоте. С этим могут быть связаны неприятные сюрпризы, когда элемент в вёрстке занимает больше места, чем вы ожидаете.
Мы можем поменять стандартное поведение и указать браузеру, что ширина и высота, заданные в CSS, должны включать в себя в том числе внутренние отступы и рамки. Делается это при помощи свойства box-sizing: border-box. Значение по умолчанию content-box
Какие есть способы “прибить футер” к низу страницы?
.page {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.footer {
margin-top: auto;
}.page {
display: grid;
grid-template-rows: auto 1fr auto;
}Какие относительные величины вы знаете?
Относительные величины в CSS позволяют задавать размеры и расстояния элементов относительно других элементов или контекста страницы. Использование относительных величин способствует созданию более гибкого и адаптивного дизайна, который может легко масштабироваться на разных устройствах.
Ниже перечислены некоторые распространенные относительные величины:
em определяет размеры элемента относительно размера шрифта его родителя.2em, то размер дочернего элемента будет равен 32 пикселям (2 * 16).rem задает размеры элемента относительно размера шрифта корневого элемента (<html>).2rem, то размер элемента будет равен 32 пикселям (2 * 16).% позволяет задавать размер элемента в процентах от размеров родительского элемента.vw и vh определяют размер элемента в процентах от размеров видимой области окна браузера.1vw равно 1% ширины видимой области, а 1vh равно 1% высоты видимой области.vmin и vmax позволяют задавать размеры элемента в процентах от наименьшей или наибольшей размерности видимой области окна браузера.vmin берет во внимание наименьшую размерность (ширину или высоту), а vmax - наибольшую.Разница между блочным и строчным элементом
Если элемент определён как блочный, то он будет вести себя следующим образом:
Если элемент имеет тип отображения inline (строчный), то:
Разница между псевдоклассом и псевдоэлементом
подсказка!!! псевдо-классы определяют поведение, а псевдо-элементы - внешность,
Псевдоклассы:
1. :hover - Применяет стили, когда курсор находится над элементом.
2. :active - Применяет стили, когда элемент активен (нажатие кнопки мыши).
3. :focus - Применяет стили, когда элемент получает фокус (например, при нажатии на поле ввода).
4. :visited - Применяет стили к посещенным ссылкам.
5. :first-child - Применяет стили к первому дочернему элементу родителя.
6. :last-child - Применяет стили к последнему дочернему элементу родителя.
7. :nth-child(n) - Применяет стили к элементу, который является n-м дочерним элементом родителя (можно использовать различные формулы, например, :nth-child(2n) для выбора каждого второго элемента).
8. :nth-of-type(n) - Применяет стили к элементу, который является n-м элементом выбранного типа (например, :nth-of-type(3) выберет третий элемент типа).
9. :checked
10. :disabled, :enabled
11. :first-of-type — первый;
12. :nth-of-type(n-число) — каждый n-й элемент;
13. :last-of-type — последний;
14. :nth-last-of-type(n-число) — каждый n-й элемент с отсчётом «с конца».
Псевдоэлементы:
1. ::before - Вставляет псевдоэлемент перед содержимым выбранного элемента.
2. ::after - Вставляет псевдоэлемент после содержимого выбранного элемента.
3. ::first-letter - Применяет стили к первой букве содержимого элемента.
4. ::first-line - Применяет стили к первой строке содержимого элемента.
5. ::selection - Применяет стили к выделенному пользователем тексту.
Основные концепции и свойства Flexbox
display со значением flex или inline-flexflex-direction: Определяет, будет ли контейнер располагать элементы в строку или в столбец.justify-content: Определяет выравнивание элементов вдоль основной оси.align-items: Определяет выравнивание элементов вдоль поперечной оси (cross axis).flex-wrap: Определяет, должны ли элементы переноситься на новую строку или оставаться в одной строке при нехватке места.align-content: Определяет выравнивание строк Flex-элементов вдоль поперечной оси, если они занимают несколько строк.flex-grow: Определяет, насколько элемент может растягиваться внутри контейнера, если есть свободное пространство.flex-shrink: Определяет, насколько элемент может сжиматься внутри контейнера, если места недостаточно.flex-basis: Определяет исходный размер элемента до распределения свободного пространства или сжатия.order: Определяет порядок отображения Flex-элементов внутри контейнера.Основные концепции и свойства Grid
display со значением grid или inline-grid.grid-template-rows и grid-template-columns: Определяют размеры и количество ячеек в строках и столбцах сетки.grid-gap или gap: Устанавливают промежутки между ячейками.justify-items: Определяет горизонтальное выравнивание Grid-ячеек внутри их ячейки.align-items: Определяет вертикальное выравнивание Grid-ячеек внутри их ячейки.justify-content: Определяет горизонтальное выравнивание Grid-ячеек внутри Grid-контейнера.align-content: Определяет вертикальное выравнивание Grid-ячеек внутри Grid-контейнера.grid-template-areas: Определяет расположение и имена областей сетки, позволяя группировать ячейки внутри них.grid-auto-rows и grid-auto-columns: Определяют размеры и количество ячеек, которые будут созданы автоматически, если их не хватает в явно определенной сетке.grid-auto-flow: Определяет порядок автоматического размещения Grid-ячеек, когда они не помещаются в явно определенную сетку.Позиционироварие элемента в CSS
Позиционирование в CSS позволяет контролировать расположение элементов на веб-странице. С помощью свойства position и связанных с ним свойств можно задавать различные способы позиционирования элементов. Вот некоторые из них:
position. Элементы позиционируются в соответствии с обычным потоком документа, их расположение определяется в порядке их появления в HTML-коде.position: static игнорируются свойства top, right, bottom и left.position: relative позиционируются относительно своего нормального местоположения.top, right, bottom и left, чтобы сдвигать элемент относительно его исходной позиции.position: absolute позиционируются относительно ближайшего родительского элемента с позиционированием, отличным от position: static.top, right, bottom и left, чтобы точно указать позицию элемента.position: fixed позиционируются относительно окна браузера и остаются на своем месте при прокрутке страницы.top, right, bottom и left, чтобы задать фиксированную позицию элемента.position: sticky позиционируются относительно своего ближайшего контейнера прокрутки или родительского элемента с прокруткой.Что такое CSS? Для чего он нужен?
CSS (Cascading Style Sheets) — это язык разметки, используемый для описания внешнего вида веб-страниц. Он определяет стилизацию элементов HTML (HyperText Markup Language), таких как цвет текста, размер и шрифт, расположение элементов на странице, отступы, границы и многое другое. CSS позволяет разработчикам создавать красивые и современные веб-сайты, обеспечивая разделение между содержанием веб-страницы и её представлением. Это упрощает поддержку и обслуживание веб-сайтов, а также повышает их гибкость и масштабируемость.
Что такое CSS правило?
selector {
declaration
property: value;
}
Селектор: это часть CSS-правила, которая указывает, на какие элементы HTML будет применяться стиль. Селектор может быть элементом HTML (например, <p> для абзацев), классом (например, .my-class), идентификатором (например, #my-id), псевдоклассом (например, :hover для стилизации при наведении курсора) или комбинацией этих селекторов.
Объявление: это часть CSS-правила, которая определяет стили, которые будут применены к выбранным элементам. Объявление состоит из одного или нескольких свойств и их значений.
Что такое схлопывание границ (margin collapsing)?
Схлопывание границ (margin collapsing) - это особенность работы CSS, при которой верхние и нижние внешние отступы (margins) некоторых элементов могут сливаться между собой в определенных ситуациях.
Процесс схлопывания границ происходит, когда у элементов находятся вертикальные внешние отступы (margins) и они находятся рядом друг с другом или один внутри другого. В этом случае браузер выбирает наибольшее значение из отступов (margin), а не суммирует их. Это может приводить к тому, что отступы элементов могут выглядеть как один общий отступ, что называется схлопыванием границ.
Что такое z-index? Как формируется контекст наложения?
z-index в CSS - это свойство, которое определяет порядок наложения элементов на веб-странице по оси Z (ось, направленная от вас вглубь экрана). Это позволяет управлять тем, какие элементы должны находиться поверх других элементов, когда они перекрываются.
Значение z-index может быть положительным, отрицательным или нулевым. Чем выше значение z-index, тем ближе элемент к вас по оси Z, и тем выше он находится на странице. Если у нескольких элементов задано одинаковое значение z-index, порядок их наложения будет определяться порядком, в котором они встречаются в HTML-коде (позднее идущие элементы будут выше).
Когда элементы на странице находятся внутри других элементов, формируется контекст наложения. Это означает, что z-index элементов может быть влияние только внутри своего контекста наложения. Это важно помнить при управлении порядком наложения, особенно при использовании позиционирования (position).
Если у элемента установлено значение z-index, а у его родительского элемента нет, то элемент будет находиться в контексте наложения родительского элемента. Если оба элемента имеют z-index, то дочерний элемент будет находиться выше или ниже в зависимости от соотношения их z-index и их местоположения в HTML-дереве.
Если элементы находятся вне контекста наложения, они могут перекрывать элементы внутри других контекстов наложения независимо от их z-index.
Для чего используется ключевое слово currentColor в CSS?
Ключевое слово currentColor в CSS используется для установки значения свойств, которое будет равно текущему цвету текста элемента.
Обычно currentColor используется в свойствах, которые принимают значения цвета, таких как border-color, outline-color и box-shadow. Установка таких свойств значением currentColor позволяет автоматически наследовать цвет текста родительского элемента для данных свойств.
<p style="color: blue; border: 1px solid currentColor;">Пример текста</p>
Способы задания цвета в CSS
Какие CSS-свойства используются для создания анимаций и плавных переходов?
Transform
Transition
Animation
@keyframes
Расскажите о функции-псевдоклассе :has()?
Функция-псевдокласс :has()позволяет уточнить основной селектор дополнительным. Это единственный способ выбрать элемент на основе дочернего или соседнего элемента посредством CSS.
До появления псевдокласса :has() единственной возможностью управлять проверкой вложенного селектора был JavaScript.
Что такое специфичность?
Специфичность — это алгоритм, благодаря которому браузер определяет, какие именно стили из всего набора применить к элементу. В вычислениях участвуют CSS-селекторы. Если одному и тому же элементу подходит сразу несколько CSS-правил с разными селекторами, то браузер применяет те стили, вес селектора которых больше. Правило каскада «кто ниже, тот и выигрывает» при этом может нарушаться.
Специфичность — это одно из базовых понятий в CSS.