This media is not supported in your browser
VIEW IN TELEGRAM
🤩 Перенос текста: можно сделать лучше!
Улучшайте переносы текста с помощью комбинации значений CSS свойства
Больше не будет одиноких слов в конце абзацев, а заголовки будут выглядеть гораздо лучше! 👌
Лови рецепт, красивых переносов:
Поддержка свойств:
🔗 Can i use. CSS property: text-wrap
🔗 Смотреть ДЕМО на CodePen
Делайте ваш код лучше друзья! ❤️
#css #text
Улучшайте переносы текста с помощью комбинации значений CSS свойства
text-wrap. Больше не будет одиноких слов в конце абзацев, а заголовки будут выглядеть гораздо лучше! 👌
Лови рецепт, красивых переносов:
* {
text-wrap: pretty;
}
h1,h2,h3,h4,h5,h6 {
text-wrap: balance;
}Поддержка свойств:
text-wrap: pretty - 71.46%text-wrap: balance - 74.87%🔗 Can i use. CSS property: text-wrap
🔗 Смотреть ДЕМО на CodePen
Делайте ваш код лучше друзья! ❤️
#css #text
🔥9❤🔥1
CSS свойство
Чаще всего мы используем два значения, это
Но что если вам нужно, взаимодействовать с векторной фигурой, с его обводкой, или только заливкой?
На помощь придут значения, которые работают только с SVG.
Pointer-events: stroke и fill
Когда элементу задается значение
Это используется там где важно, чтобы пользователь мог взаимодействовать только с обводкой объектов.
Данное значение работает наоборот, позволяет взаимодействовать только с заливкой фигуры. При этом контур (если он присутствует) не будет реагировать на события указателя.
🔗 Demo
Делайте ваш код лучше друзья! ❤️
#css #events #svg
pointer-events управляет тем, как элементы реагируют на события указателя, такие как клики мыши, или касания.Чаще всего мы используем два значения, это
none (отключаем вовсе), и auto (для отмены первого).Но что если вам нужно, взаимодействовать с векторной фигурой, с его обводкой, или только заливкой?
На помощь придут значения, которые работают только с SVG.
Pointer-events: stroke и fill
Pointer-events: stroke
Когда элементу задается значение
pointer-events: stroke, это означает, что события указателя будут действовать только на контуры фигуры. Это используется там где важно, чтобы пользователь мог взаимодействовать только с обводкой объектов.
Pointer-events: fill
Данное значение работает наоборот, позволяет взаимодействовать только с заливкой фигуры. При этом контур (если он присутствует) не будет реагировать на события указателя.
🔗 Demo
Делайте ваш код лучше друзья! ❤️
#css #events #svg
👍6❤2
😎Для тех, кто изучает гриды, или хочет подтянуть практические навыки в этом гайде по grid-area приводятся жизненные примеры использования, от Ahmad Shadeed
Рекомендую к изучению
#css
Рекомендую к изучению
#css
Ishadeed
CSS Grid Areas
A fresh look at the CSS grid template areas and how to take advantage of its full potential today.
❤🔥4
Политика безопасности контента (CSP): что должен знать каждый веб-разработчик.
CSP — это важная концепция, которую нужно знать, понимать и внедрять для защиты ваших пользователей от атак Cross-Site Scripting (XSS). В этой статье рассматривается (почти) все, что вам нужно знать о CSP.
Отличная статья на языке оригинала
Простые рекомендации, которые могут помочь избежать рисков.
👌 Делайте ваш код безопаснее друзья!)
#html #security #web #meta
CSP — это важная концепция, которую нужно знать, понимать и внедрять для защиты ваших пользователей от атак Cross-Site Scripting (XSS). В этой статье рассматривается (почти) все, что вам нужно знать о CSP.
Отличная статья на языке оригинала
Простые рекомендации, которые могут помочь избежать рисков.
👌 Делайте ваш код безопаснее друзья!)
#html #security #web #meta
🔥2
👉 Продолжая тему про неочевидные возможности выравнивания для классического Block Layout:
Свойство
Одно свойство, а столько радости 🤓
Поддержка на текущий момент минорная (только в последних версиях Chrome/Edge).
#css #cssFuture #chrome
<style>
.box {
justify-self: center;
}
</style>
<h1 class="box">Hello</h1>
Свойство
justify-self: center; под "коробкой" формирует явную ширину блока по его содержимому, и автоматически центрирует по горизонтали, и это без использования flex/grid и дополнительных обёрток/свойств.Одно свойство, а столько радости 🤓
Поддержка на текущий момент минорная (только в последних версиях Chrome/Edge).
#css #cssFuture #chrome
👍7❤3🔥2
lh — Единица измерения, зависящая от шрифта
Она равна значению свойства
Пример кода:
Благодаря данной зависимости, у нас вырисовываются приятые возможности.
Например мы легко сможем управлять высотой блока под нужное количество строк, без необходимости указывать абсолютные значения в
Это может быть полезным, когда используются резиновые шрифты, где указывается автоматический, или относительный
Также данная зависимость подойдёт, для контроля размера иконки относительно текста расположенных инлайново.
Небольшой бонус, в виде
Все тоже самое, только наследование происходит от root элемента (html) для которого задан
Можно уже смело использовать поддержка 92.47%
Делайте ваш код лучше друзья! ❤️
🔗 can i use
🔗 mdn
#css #units
Она равна значению свойства
line-height, указанному для элемента, или ближайшего родителя.Пример кода:
<style>
.box {
line-height: 24px;
<!-- задали явное значение 24px -->
width: 2lh; <!-- 2 строки (48px)-->
height: 1lh; <!-- 1 строка (24px) -->
border: 2px solid;
}
</style>
<div class="box"></div>
Благодаря данной зависимости, у нас вырисовываются приятые возможности.
Например мы легко сможем управлять высотой блока под нужное количество строк, без необходимости указывать абсолютные значения в
px.Это может быть полезным, когда используются резиновые шрифты, где указывается автоматический, или относительный
line-height.Также данная зависимость подойдёт, для контроля размера иконки относительно текста расположенных инлайново.
Небольшой бонус, в виде
root line height единиц — rlh.Все тоже самое, только наследование происходит от root элемента (html) для которого задан
line-height. lh — классное дополнение, которое может помочь упростить ваш код, избавив от лишних расчётов. Можно уже смело использовать поддержка 92.47%
Делайте ваш код лучше друзья! ❤️
🔗 can i use
🔗 mdn
#css #units
❤🔥4👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Анимируем 👇
Мы знаем, что анимация работает только для интерполируемых (вычисляемых) значений.
Значения типа:
➡️ Вашему вниманию представляю свойство:
Пример кода:
Используем значение
Таким простым образом, буквально в одну строку, мы решили глобальную проблему в web, плавное изменение высоты по размеру её содержимого.
Кто хоть раз пытался сделать анимацию раскрытие списков с динамическим контентом, оценит эту фитчу на 200%.
⚠️ Поддержка набирает обороты, на текущий момент составляет 67.88%
Делайте ваш код лучше, друзья 👨🏻💻
🔗 Статья Брамуса с примерами
🔗 MDN
#css #cssFuture
height: autoМы знаем, что анимация работает только для интерполируемых (вычисляемых) значений.
Значения типа:
auto, ключевые слова min-content/max-content и подобные им, анимировать к сожалению было нельзя. interpolate-size.Пример кода:
<style>
:root {
interpolate-size:
allow-keywords;
}
.box {
width: 200px;
height: 2lh;
border: 2px solid;
overflow: hidden;
transition: height .4s;
}
.box:hover {
height: auto;
}
</style>
<div class="box">
Далеко-далеко, за словесными
горами в стране гласных
и согласных живут рыбные тексты.
</div>
Используем значение
allow-keywords, которое включает режим интерполяции. Таким простым образом, буквально в одну строку, мы решили глобальную проблему в web, плавное изменение высоты по размеру её содержимого.
Кто хоть раз пытался сделать анимацию раскрытие списков с динамическим контентом, оценит эту фитчу на 200%.
Делайте ваш код лучше, друзья 👨🏻💻
🔗 Статья Брамуса с примерами
🔗 MDN
#css #cssFuture
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍2🔥1🏆1
Удобный HEX: лаконичное управление alpha-каналом в цветовой схеме.
При создании цветовой схемы часто нужны прозрачные версии цветов.
Вариант 1:
🔴 Минусы:
1. Использование rgba засоряет код.
2. Нужно создавать кучу переменных, по набору на каждую тему.
3. При смене цвета придется менять все его прозрачные варианты вручную.
🟢 Плюсы?
Вариант 2, с rgb() выглядит лучше:
🔴 Минусы:
1. Дизайнеры в макетах чаще используют HEX.
2. Все цвета придется вручную конвертировать в rgb.
3. Переменная хранит только код цвета без rgb(), что ухудшает работу с переменной.
🟢 Плюсы:
1. Централизованное управление цветом.
2. Меньше кода.
Вариант 3. Используем color-mix():
🔴 Минусы?
🟢 Плюсы:
1. Один формат цвета(hex) для всего проекта.
2. Централизованное управление цветом.
3. Упрощает работу с макетом, и поддержку нескольких цветовых схем в проекте.
4. Использует нативную CSS функцию.
🙏 Делайте ваш код современней друзья!
🔗 Сolor-mix
🔗 Opacify HEX Color In CSS
#css #colors #theme
При создании цветовой схемы часто нужны прозрачные версии цветов.
Вариант 1:
--bg-color: #000;
--bg-alpha-03-color: rgba(0, 0, 0, .3);
--bg-alpha-05-color: rgba(0, 0, 0, .5);
--bg-alpha-08-color: rgba(0, 0, 0, .8);
🔴 Минусы:
1. Использование rgba засоряет код.
2. Нужно создавать кучу переменных, по набору на каждую тему.
3. При смене цвета придется менять все его прозрачные варианты вручную.
🟢 Плюсы?
Вариант 2, с rgb() выглядит лучше:
.block {
--bg-color: 0 0 0;
color: rgb(var(--bg-color) / .3);
}🔴 Минусы:
1. Дизайнеры в макетах чаще используют HEX.
2. Все цвета придется вручную конвертировать в rgb.
3. Переменная хранит только код цвета без rgb(), что ухудшает работу с переменной.
🟢 Плюсы:
1. Централизованное управление цветом.
2. Меньше кода.
Вариант 3. Используем color-mix():
@function srgb($color, $alpha) {
@return color-mix(in srgb, $color, transparent $alpha);
}
.block {
--block-color: #000;
color: srgb(var(--block-color), 50%);
}🔴 Минусы?
🟢 Плюсы:
1. Один формат цвета(hex) для всего проекта.
2. Централизованное управление цветом.
3. Упрощает работу с макетом, и поддержку нескольких цветовых схем в проекте.
4. Использует нативную CSS функцию.
❗️ Функция SCSS в примере решает проблему удобства, не является обязательной
🙏 Делайте ваш код современней друзья!
🔗 Сolor-mix
🔗 Opacify HEX Color In CSS
#css #colors #theme
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6
Данные значения относятся к intrinsic sizing (размеры определяются содержимым, а не внешними факторами).
Рассмотрим на примере свойства width:
.box {
width: max-content;
}📌 Ширина = максимальной ширине содержимого без переносов.
✅ Подходит для кнопок, коротких заголовков, для предотвращения переносов.
❌ Может вызвать overflow (переполнение), если контент превышает ширину родителя.
.box {
width: min-content;
}📌 Ширина = минимально возможной, с учётом переносов.
✅ Полезно для адаптивных макетов, таблиц, с целью экономии пространства.
❌ Может ухудшать читаемость в многострочном тексте.
.box {
width: fit-content;
}📌 Гибрид min-content и max-content:
✅ Универсально: для заголовков, кнопок, блоков с динамическим контентом.
❌ Не всегда предсказуемо, лучше тестировать, не использовать в сложных структурах.
fit-content
— лучший выбор для адаптивного дизайна, но max-content и min-content полезны в специфических случаях
❤️ Делайте ваш код предсказуемым друзья!
🔗 Пример кода
🔗 Intrinsic size
#css #intrinsicSizing
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2
CSS Relative Color: теперь в продакшене! 🚀
📌 Почему это круто?
✅ Гибкость — меняем оттенок, насыщенность, прозрачность прямо в CSS, без JS и препроцессоров.
✅ Адаптивность — легко создаем темные/светлые темы на основе базового цвета.
✅ Меньше кода — работаем с производными цветами, не дублируя значения.
📌 Примеры с HSL:
1. Осветление цвета
(осветлит --primary на 80% от текущего значения)
Формула: 27.25 + (27.25 * 0.8) = 49.05%
2. Увеличение насыщенности
(увеличит насыщенность на 80%)
Формула: 100 + 80 = 180%
3. Управление прозрачностью
(сделает цвет прозрачнее на 80% от текущего)
CSS стал еще мощнее. Смело используем друзья! 🔥
🔗 Пример кода
🔗 Relative colors
🔗 Про HSL пространство
🔗 Can I use
#css #relativeColors #colors #theme
В мае 2023 поддержка составляла всего 0.15% (только Safari), а уже в феврале 2025 — 90.35% во всех современных браузерах. Пора использовать эту мощную фичу!
📌 Почему это круто?
✅ Гибкость — меняем оттенок, насыщенность, прозрачность прямо в CSS, без JS и препроцессоров.
✅ Адаптивность — легко создаем темные/светлые темы на основе базового цвета.
✅ Меньше кода — работаем с производными цветами, не дублируя значения.
📌 Примеры с HSL:
1. Осветление цвета
.box-1 {
--primary: darkblue;
color: hsl(from var(--primary) h s calc(l + (l * .8)));
}
/* l — lightness для darkblue = 27.25% */(осветлит --primary на 80% от текущего значения)
Формула: 27.25 + (27.25 * 0.8) = 49.05%
2. Увеличение насыщенности
.box-2 {
--primary: darkblue;
background-color: hsl(from var(--primary) h calc(s + 80) l);
}
/* S — saturation для darkblue = 100% */(увеличит насыщенность на 80%)
Формула: 100 + 80 = 180%
3. Управление прозрачностью
.box-3 {
--primary: darkblue;
background-color: hsl(from var(--primary) h s l / .8);
}(сделает цвет прозрачнее на 80% от текущего)
Этот подход может показаться не привычным и сложным.
Но его применение для меня очевидно — эффекты hover, active, focus, disabled на основе всего одного цвета! 🎨
CSS стал еще мощнее. Смело используем друзья! 🔥
#css #relativeColors #colors #theme
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Chrome 134/135: Что нового для разработчиков?
1. Кастомизация
Теперь можно полностью переопределять стили
Активируется флагом SelectParserRelaxation (до Chrome 141).
2. Управление закрытием
Добавлен атрибут
3. PWA
Подзаголовок документа (позволяет указать дополнительную информацию о текущем окне)
4. Якорная навигация
Добавлена функционал хранения информации о сдвиге скролла.
5. CSS-инертность (
Ранее мы использовали HTML атрибут
Такой элемент:
1. Не участвует в событиях мыши/клавиатуры;
2. Игнорируется скринридерами;
3. Не может быть фокусируемым;
4. Не выделяется при поиске (Ctrl+F).
Данный функционал перекочевал и в CSS:
6. Функция
Позволяет создавать отзывчивые фрагменты, используя относительные единицы:
Выбрал лишь некоторые новости, которые нахожу интересными)
🔗 Chrome 135
🔗 Chrome 134
🔗 Shape()
#css #Chrome #cssFunction
1. Кастомизация
<select>Теперь можно полностью переопределять стили
<select> через CSS:select {
appearance: base-select; /* Сбрасывает стандартные стили */
/* Ваши кастомные стили */
}Это изменение позволяет использовать дополнительные теги внутри <select>помимо <option>, <optgroup>, и <hr>.
Активируется флагом SelectParserRelaxation (до Chrome 141).
2. Управление закрытием
<dialog>Добавлен атрибут
closedby для контроля поведения модальных окон:<dialog closedby="any"> <!-- Закрытие кликом вне окна или Esc -->
<p>Диалог с новыми настройками</p>
</dialog>
closedby="none"
– Отключает закрытие диалоговых окон пользователем.
closedby="closerequest"
– Нажатие Esc (или другой триггер закрытия) закрывает диалоговое окно.
closedby="any"
– Клик за пределами диалогового окна или нажатие Esc закрывает диалоговое окно (похоже на popover="auto" поведение).
3. PWA
Подзаголовок документа (позволяет указать дополнительную информацию о текущем окне)
<meta name="subtitle" content="Новые уведомления">>
4. Якорная навигация
Добавлена функционал хранения информации о сдвиге скролла.
Смещение прокрутки будет учитываться при определении размера элемента. Это означает, что мы можем избежать кейсов, при которых изменение размера будет влиять на смещение прокрутки.
5. CSS-инертность (
inert)Ранее мы использовали HTML атрибут
inert.Такой элемент:
1. Не участвует в событиях мыши/клавиатуры;
2. Игнорируется скринридерами;
3. Не может быть фокусируемым;
4. Не выделяется при поиске (Ctrl+F).
Данный функционал перекочевал и в CSS:
.box {
interactivity: inert; /* Пока работает только в Chrome 135+ */
}6. Функция
shape()Позволяет создавать отзывчивые фрагменты, используя относительные единицы:
.box {
clip-path: shape(ellipse(50% 50% at 50% 50%));
transition: clip-path .2s;
}
.box:hover {
clip-path: shape(polygon(0 20%, 100% 0, 100% 80%, 0 100%));
}Эта функция полезна для создания анимации морфинга фигур или обрезки элементов сложной формы.
Выбрал лишь некоторые новости, которые нахожу интересными)
#css #Chrome #cssFunction
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4🔥2👍1
html.mentor(Posts) pinned «Chrome 134/135: Что нового для разработчиков? 1. Кастомизация <select> Теперь можно полностью переопределять стили <select> через CSS: select { appearance: base-select; /* Сбрасывает стандартные стили */ /* Ваши кастомные стили */ } Это изменение позволяет…»
This media is not supported in your browser
VIEW IN TELEGRAM
CSS: overflow-anchor – как убрать нежелательные скачки прокрутки
🔹 Где это полезно?
✅ Чаты и ленты новостей
При добавлении новых сообщений сверху страница может самопроизвольно смещаться.
✅ Динамические виджеты
Автообновляемые блоки (например, биржевые котировки) могут сбивать прокрутку.
✅ Lazy-loading контента
При подгрузке изображений и данных по мере скролла можно избежать скачков.
🔹 Как отключить привязку скролла только для нужных элементов?
⚠️ Следует четко понимать, когда нужно использовать, а когда нет.
Данное свойство может негативно повлиять на UX пользователя.
Can I Use: 79.04%
(все браузеры кроме Safari)
Используйте
❗️DEMO
🔗 Can i Use
🔗 Overflow-anchor
#css #cssFuture #scroll #overflowAnchor
Браузеры стараются сохранять положение просмотра при динамическом изменении контента, но это может вызывать раздражающие "прыжки" страницы. Чтобы избежать таких эффектов, используется overflow-anchor: none.
🔹 Где это полезно?
✅ Чаты и ленты новостей
При добавлении новых сообщений сверху страница может самопроизвольно смещаться.
✅ Динамические виджеты
Автообновляемые блоки (например, биржевые котировки) могут сбивать прокрутку.
✅ Lazy-loading контента
При подгрузке изображений и данных по мере скролла можно избежать скачков.
🔹 Как отключить привязку скролла только для нужных элементов?
.box {
overflow-anchor: none;
}Данное свойство может негативно повлиять на UX пользователя.
Can I Use: 79.04%
(все браузеры кроме Safari)
Используйте
overflow-anchor, чтобы сделать прокрутку более предсказуемой! 🚀❗️DEMO
#css #cssFuture #scroll #overflowAnchor
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Позволяет проектировать и тестировать кривые Безье в режиме реального времени, упрощая работу веб-разработчиков и дизайнеров.
Основные функции:
✅ Редактирование кривых через контрольные точки.
✅ Предпросмотр анимации с выбранной функцией.
✅ Экспорт кода в CSS.
✅ Готовые шаблоны популярных функций (Linear, Elastic, Bounce и др.).
✅ Сравнение нескольких кривых на одном графике.
Преимущества:
🚀 Интуитивный интерфейс без необходимости писать код вручную.
🚀 Оптимизация времени за счет мгновенного обновления превью.
🚀 Гибкость: настройка любых параметров (длительность, задержка, циклы).
🚀 Совместимость (использует нативный CSS).
🧑🏻💻 На мой взгляд очень удачный пример, полезного инструмента, с понятной философией: превратить сложные математические расчеты в визуальное творчество.
#инструмент #анимации #webanimation #cssanimation
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
🔥 CSS-mixins стали доступны под флагом в chrome сanary!
✅ Постепенно препроцессорный функционал перекочёвывает в коробку в CSS:
Было:
Стало:
CSS становится все мощнее и сложнее.
Он берёт лучшее из препроцессоров, и это отличная тенденция!
⚠️ К слову, CSS-функции, также доступны под флагом!
С их возможностями можете ознакомится в статье Брамуса
🔗 CSS-mixins (черновики)
🔗 CSS Mixins are ready for experimentation!
#cssfuture #css #cssmixin
Миксины — эффективный способ манипулировать повторяющимися фрагментами кода.
✅ Постепенно препроцессорный функционал перекочёвывает в коробку в CSS:
Было:
@mixin box {
aspect-ratio: 1;
inline-size: 100px;
block-size: 100px;
}
.box {
@include box;
}Стало:
@mixin --box {
aspect-ratio: 1;
inline-size: 100px;
block-size: 100px;
}
.box {
@apply --box;
}CSS становится все мощнее и сложнее.
Он берёт лучшее из препроцессоров, и это отличная тенденция!
⚠️ К слову, CSS-функции, также доступны под флагом!
С их возможностями можете ознакомится в статье Брамуса
#cssfuture #css #cssmixin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4😎1
html.mentor(Posts)
👀 CSS Будущее цифровой верстки. На can i use появилось описание двух новых свойств. text-box-trim и text-box-edge Если кратко, благодаря этим свойствам, можно избавится от лишних пустот в тексте, и их контролировать! Это изящно решает проблему, когда…
This media is not supported in your browser
VIEW IN TELEGRAM
👍 CSS property: text-box-[edge/trim]
👨🏻💻 Если вкратце, инструмент упрощает выравнивание текстовых элементов, например, при несимметричном интерлиньяже.
🔗 Пример того, как это работает
#css #cssFuture
🚀 Поддержка взлетела с 0% до 76.24%
👨🏻💻 Если вкратце, инструмент упрощает выравнивание текстовых элементов, например, при несимметричном интерлиньяже.
#css #cssFuture
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Разбираемся с тонкостями flex-wrap 👇
1️⃣ flex-wrap: wrap
Включает многострочный режим, даже если строка одна. Это нужно для работы свойства align-content.
2️⃣ align-items vs align-content:
🔹 align-items — выравнивает элементы внутри строки;
🔹 align-content — выравнивает все строки (работает только с wrap).
❗️Важно:
Без
Контейнер считается однострочным.
💡 При фиксированной высоте flex-контейнера:
— Без wrap:
— С wrap: строки можно выравнивать, а элементы растянутся только до высоты самой строки (по самому высокому элементу в строке).
🔗 Смотреть ДЕМО
🔗 The unknown behavior of flex-wrap
#css #flex #flexWrap
1️⃣ flex-wrap: wrap
Включает многострочный режим, даже если строка одна. Это нужно для работы свойства align-content.
2️⃣ align-items vs align-content:
🔹 align-items — выравнивает элементы внутри строки;
🔹 align-content — выравнивает все строки (работает только с wrap).
❗️Важно:
Без
flex-wrap: wrap — align-content не работает.Контейнер считается однострочным.
💡 При фиксированной высоте flex-контейнера:
— Без wrap:
align-items: stretch растянет элементы на всю высоту.— С wrap: строки можно выравнивать, а элементы растянутся только до высоты самой строки (по самому высокому элементу в строке).
Простыми словами, можно комбинировать свойства, зная этот нюанс в поведении flex-wrap, для корректного и универсального выравнивания.
#css #flex #flexWrap
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
CSS if() — кратко и понятно
Синтаксис:
Условия:
🔹
🔹
🔹
Медиазапрос:
Проверка поддержки свойства:
CSS-переменные:
❗️Важно:
🔹 Экспериментальная поддержка: не во всех браузерах.
🔹 Без
🔹 Отлично для динамических и гибких интерфейсов.
Вывод:
🔗 Смотреть на developer.mozilla.org
🔗 Can I USE 63.76%
#css #cssFuture
if() — экспериментальная CSS-функция для условного задания значений свойств, аналог if…else в JS.
Синтаксис:
if(<условие>: <значение>; [else: <значение>;])
Условия:
🔹
media(...) — медиазапрос ;🔹
supports(...) — проверка поддержки свойства ;🔹
style(--var: value) — проверка CSS-переменной;else — опционально срабатывает, если предыдущее условие ложно.Медиазапрос:
background-color: if(media(print): white; else: #eee;)
Проверка поддержки свойства:
color: if(supports(color: lch(75% 0 0)): lch(75% 0 0); else: rgb(185 185 185);)
CSS-переменные:
padding: if(style(--size: "2xl"): 1em; else: 0.25em;)
❗️Важно:
🔹 Экспериментальная поддержка: не во всех браузерах.
🔹 Без
else при ложном условии возвращает недопустимое значение.🔹 Отлично для динамических и гибких интерфейсов.
Вывод:
if() упрощает условное оформление стилей, но использовать нужно осторожно из-за ограниченной поддержки.
#css #cssFuture
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Функции CSS.
То что раньше делали только через JS
1️⃣ sibling-count()
Возвращает количество элементов среди соседей (вместе с самим элементом).
📌 Можно задать динамическую ширину:
2️⃣ sibling-index()
Возвращает порядковый номер элемента среди соседей.
📌 Удобно для анимаций, или последовательного оформления:
⚠️ Поддержка CAN I USE: 65.72%
🔗 sibling-count()
🔗 sibling-index()
#css #cssFuture #frontend #webdev
То что раньше делали только через JS
1️⃣ sibling-count()
Возвращает количество элементов среди соседей (вместе с самим элементом).
📌 Можно задать динамическую ширину:
li {
width: calc(100% / sibling-count());
}2️⃣ sibling-index()
Возвращает порядковый номер элемента среди соседей.
📌 Удобно для анимаций, или последовательного оформления:
li {
animation-delay: calc(.1s * sibling-index());
}💡 Раньше такие вещи делали через JS (перебором children, и добавлением inline-стилей).
Теперь всё можно решить одним CSS
⚠️ Поддержка CAN I USE: 65.72%
#css #cssFuture #frontend #webdev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤔1