Тест: Знаете ли вы современный CSS? (на 2025 год)
Ты достаточно фронтенд?
Тест: Знаете ли вы CSS?
- Современный CSS? 🤔
- Есть ли место CSS в вашем резюме??? 🚀
- Множественный выбор. 🤖 … Ну насколько это может быть сложно, а?
Как правильно использовать CSS-переменную --main-color, чтобы задать цвет фона элемента?
:root { --main-color: blue;}div { /* How do we use --main-color here? */}CSS-переменные используются с функцией var, поэтому правильный ответ — background-color: var(--main-color);. Этот синтаксис извлекает значение --main-color и применяет его.
Другие варианты могут быть знакомы из других языков или синтаксисов препроцессоров, таких как Sass или Less.
Если ширина родительского контейнера равна 400px, какой будет вычисленная ширина следующего элемента?
div { width: min(250px, 50%);}Функция min() выберет наименьшее значение между 250px и 50% от ширины родителя.
Чтобы понять вычисленное значение, нужно перевести относительные единицы в пиксели:
50%от400pxравно200px250pxуже в пикселях
/* This gets computed to */width: min(250px, 200px);/* -> 200px wins */Функция min() особенно полезна для адаптивного дизайна, где можно гарантировать, что компонент (или размер шрифта) не превысит определённый предел.
Если контейнер имеет ширину 200px, а размер шрифта корневого элемента равен 16px, какой будет вычисленная ширина <div>?
div { width: max(50px, 10%, 6rem);}Функция max() принимает один или несколько аргументов и автоматически использует наибольшее значение. Предполагая, что размер корневого шрифта равен стандартному для браузера 16px, ширина получается 96px.
Чтобы понять вычисленное значение, нужно перевести относительные единицы в пиксели:
50pxуже в пикселях10%от200pxэто20px6remэто6 * 16px(стандартный размер шрифта), что равно96px
/* This gets computed to */width: max(50px, 20px, 96px);/* -> 96px wins */Каков эффект использования minmax(100px, 200px) для трека CSS Grid?
grid-template-columns: minmax(100px, 200px);Использование minmax(100px, 200px) позволяет треку сетки изменять размер между 100px и 200px, адаптируясь к доступному пространству, но никогда не становясь меньше 100px или больше 200px.
Вы можете создавать самонастраивающиеся макеты, где контейнер и дочерние элементы играют роль в вычислении макетов. Это мощно в сочетании с repeat() и auto-fill или auto-fit, которые создадут столько треков, сколько возможно в заданных пределах.
Какой цвет фона будет у следующего CSS?
div { background: var(--primary, olivedrab);}Функция var() позволяет задать резервное значение, если переменная не определена. В данном случае фон будет olivedrab (#6b8e23), потому что --primary не определена.
Это отличный способ гарантировать, что ваши стили не сломаются, если переменная отсутствует или не поддерживается.
Поддерживает ли CSS вложенность нативно?
Да! Наконец-то у нас есть нативная вложенность CSS! CSS представил синтаксис нативной вложенности в последние годы (2023), позволяющий иерархическое стилизование непосредственно в CSS.
Какой цвет фона будет применён к прямым дочерним div элементам .container?
.container { background-color: red; > div { background-color: white; } background-color: blue !important;}Селектор > во вложенном правиле применяет background-color: white только к прямым дочерним элементам div внутри .container.
Последнее правило, background-color: blue !important;, — это небольшое отвлечение. Оно находится за пределами вложенного правила и будет применено ко всем элементам .container.
Как изменить значение CSS-переменной во время выполнения?
CSS-переменные можно задавать с помощью классов и JavaScript. Их можно определить даже «после» того, как они технически использованы.
document.documentElement.style.setProperty('--main-color', 'blue');Это изменит значение --main-color на blue для всего документа.
CSS-переменные изменяемы, и их можно менять во время выполнения с помощью JavaScript.
Их также можно менять, добавляя или удаляя классы — это распространённый паттерн для тем.
Какой будет вычисленная ширина элемента?
:root { --base-width: 100px;}div { width: calc(var(--base-width) + 10px);}Функция calc() объединяет значение --base-width (100px) с дополнительными 10px, в результате чего ширина составляет 110px.
