Продолжение предыдущего поста
Помимо базовых свойств, которые я перечислил ранее, в Chrome 149 версии были также добавлены и некоторые другие:
🐠
🐠
🐠
🐠
🐠
🐠
🐠
Значения для
🪲
🪲
🪲
🪲
🦊
🦊
🦊
🐬
🐬
❗️За основу в примере был взят именно
❗️Помимо перечисленных свойств, есть ещё ряд других с точно таким же функционалом, которые в рамках поста я решил опустить
🔗 Ссылка на спецификацию
⚙️ Поддержка браузерами (column-rule-inset, row-rule-inset, column-rule-visibility-items, row-rule-visibility-items, column-rule-break, row-rule-break, rule-overlap)
Помимо базовых свойств, которые я перечислил ранее, в Chrome 149 версии были также добавлены и некоторые другие:
🐠
column-rule-inset — позволяет отступами по краям расширить или сузить полосы, разделяющие колонки 🐠
row-rule-inset — позволяет отступами по краям расширить или сузить полосы, разделяющие строки 🐠
column-rule-visibility-items — позволяет скрыть полосы, разделяющие колонки в тех местах, где отсутствуют элементы сетки🐠
row-rule-visibility-items — позволяет скрыть полосы, разделяющие строки в тех местах, где отсутствуют элементы сетки🐠
column-rule-break — указывает правила разрыва полос, разделяющих колонки🐠
row-rule-break — указывает правила разрыва полос, разделяющих строки🐠
rule-overlap — определяет, будут полосы строк отображены поверх полос колонок или наоборотЗначения для
column-* и row-rule-inset могут быть заданы тремя различными способами:🐈 column-rule-inset: 10px; — отступы задаются для всех полос, разделяющих колонки🐈 column-rule-inset: 10px 10px / 10px 10px; — первый параметр задаёт отступ верхним концам полос, которые выходят за край родительского контейнера, второй нижним, третий верхним концам, которые упираются во внутренние элементы сетки, четвёртый то же самое, но для нижних полос🐈 column-rule-inset: 10px / 10px; — первый параметр задаёт отступы для всех полос, которые выходят за край родительского контейнера, второй для всех, которые упираются во внутренние элементы сеткиcolumn-* и row-rule-visibility-items свойства имеют значения:🪲
normal — полосы рисуются по-разному в зависимости от контейнера (grid, flex, мультиколоночный текст)🪲
all — полосы рисуются даже сквозь пустые области🪲
around — полосы в пустых областях рисуются только по кругу🪲
between — полосы в пустых областях вообще не рисуютсяcolumn-* и row-rule-break свойства имеют значения:🦊
none — полосы на части не разбиваются и упираются во внутренние элементы🦊
normal — полосы обрезаются по краям и не упираются во внутренние элементы🦊
intersection — все полосы прерываются в местах пересечения c другими полосамиrule-overlap имеет 2 значения:🐬
row-over-column — полосы строк отображаются поверх полос колонок🐬
column-over-row — полосы колонок отображаются поверх полос строк❗️За основу в примере был взят именно
grid контейнер, но, как вы уже знаете, данные свойства могут быть применены и к flex и к мультиколоночному тексту, в зависимости от чего некоторые свойства могут не работать или работать по-другому.❗️Помимо перечисленных свойств, есть ещё ряд других с точно таким же функционалом, которые в рамках поста я решил опустить
🔗 Ссылка на спецификацию
⚙️ Поддержка браузерами (column-rule-inset, row-rule-inset, column-rule-visibility-items, row-rule-visibility-items, column-rule-break, row-rule-break, rule-overlap)
❤1👍1
Новый HTTP-метод 🔥
На днях опубликовали стандарт RFC 10008, который добавляет новый HTTP-метод — QUERY.
Как вы знаете, для GET не предусмотрено тело запроса, а отправляемые параметры у него сильно ограничены объёмом (обычно 8-16 КБ).
Ранее, для того, чтобы обойти эту проблему, использовали POST, но он, по своей сути, не предназначен для этих целей и должен использоваться для отправки данных на сервер, а не для их получения. Из-за этого переставало работать кеширование и некоторый другой функционал, доступный именно GET запросам.
Собственно, проблему решили новым методом, который работает аналогично GET, но умеет отправлять тело запроса.
На данный момент стандарт уже вышел, но сетевая инфраструктура всего Интернета ещё не готова, поэтому до надёжного использования в своих проектах наверняка придётся подождать ещё несколько лет.
🔗 Ссылка на официальную документацию
На днях опубликовали стандарт RFC 10008, который добавляет новый HTTP-метод — QUERY.
Как вы знаете, для GET не предусмотрено тело запроса, а отправляемые параметры у него сильно ограничены объёмом (обычно 8-16 КБ).
Ранее, для того, чтобы обойти эту проблему, использовали POST, но он, по своей сути, не предназначен для этих целей и должен использоваться для отправки данных на сервер, а не для их получения. Из-за этого переставало работать кеширование и некоторый другой функционал, доступный именно GET запросам.
Собственно, проблему решили новым методом, который работает аналогично GET, но умеет отправлять тело запроса.
На данный момент стандарт уже вышел, но сетевая инфраструктура всего Интернета ещё не готова, поэтому до надёжного использования в своих проектах наверняка придётся подождать ещё несколько лет.
🔗 Ссылка на официальную документацию
🔥5😍4❤1
Забытые и неизведанные свойства
Внезапно узнал, что оказывается существует ряд
🍒
Возможные значения:
Значения из первой и второй группы можно использовать как самостоятельно, так и со значением из другой группы в любом порядке, например:
или
или
🍒
Возможные значения:
единицы измерения (px, %, rem, ...)
🍒
Возможные значения:
числа от 0 до 1 или проценты от 0% до 100%, где 0 означает, что форма будет выстроена по всем пикселям, кроме полностью прозрачных, а 1, что форма будет выстроена по всем пикселям, кроме частично прозрачных
⚙️ Поддержка браузерами широкая (shape-outside, shape-margin, shape-image-threshold)
Внезапно узнал, что оказывается существует ряд
shape-* свойств, которые позволяют управлять формой обтекания при float вёрстке.🍒
shape-outside — указывает тип формыВозможные значения:
inset() — прямоугольникcircle() — кругellipse() — овалpolygon() — любая другая форма, собранная по координатамurl() — путь к изображению (если оно полупрозрачное, то форма образуется по прозрачным областям)content-box — форма рассчитывается от контентной части padding-box — форма рассчитывается от padding области border-box — форма рассчитывается от border области margin-box — форма рассчитывается от margin областиЗначения из первой и второй группы можно использовать как самостоятельно, так и со значением из другой группы в любом порядке, например:
shape-outside: border-box;или
shape-outside: circle(50%) border-box;или
shape-outside: border-box circle(50%);🍒
shape-margin — указывает отступ от элемента до отрисованной формыВозможные значения:
единицы измерения (px, %, rem, ...)
🍒
shape-image-threshold — используется с полупрозрачными элементами и указывает от какой прозрачности пикселей будет выстраиваться формаВозможные значения:
числа от 0 до 1 или проценты от 0% до 100%, где 0 означает, что форма будет выстроена по всем пикселям, кроме полностью прозрачных, а 1, что форма будет выстроена по всем пикселям, кроме частично прозрачных
⚙️ Поддержка браузерами широкая (shape-outside, shape-margin, shape-image-threshold)
👍3
Сервис проверки качества сайта
Разработчик WordPress-плагина Yoast SEO, Йост де Валк, создал большую спецификацию, благодаря которой вы сможете пошагово улучшить свой сайт в области SEO, доступности, безопасности и многих других.
Помимо подробной документации и удобного чеклиста, также есть и MCP, который позволит вашему ИИ-агенту "подхватить" все эти знания.
🔗 Ссылка на спецификацию
Разработчик WordPress-плагина Yoast SEO, Йост де Валк, создал большую спецификацию, благодаря которой вы сможете пошагово улучшить свой сайт в области SEO, доступности, безопасности и многих других.
Помимо подробной документации и удобного чеклиста, также есть и MCP, который позволит вашему ИИ-агенту "подхватить" все эти знания.
🔗 Ссылка на спецификацию
❤1🔥1
Забытые и неизведанные свойства
Недавно открыл для себя
Представим, что у вас есть растровая PNG картинка 50 на 50 пикселей, и вы пытаетесь растянуть её до 300. Браузер, чтобы это смотрелось более-менее сносно, "размылит" её. В большинстве случаев это будет вполне ожидаемым результатом, но иногда нам может потребоваться наоборот показать пользователю "острые пиксели".
Собственно, для этого и было создано свойство
Оно имеет следующие значения:
1)
2)
3)
4)
Разница между
⚙️ Поддержка браузерами (auto, smooth, pixelated, crisp-edges)
Недавно открыл для себя
image-rendering, благодаря которому можно указать, как будет вести себя изображение при масштабировании.Представим, что у вас есть растровая PNG картинка 50 на 50 пикселей, и вы пытаетесь растянуть её до 300. Браузер, чтобы это смотрелось более-менее сносно, "размылит" её. В большинстве случаев это будет вполне ожидаемым результатом, но иногда нам может потребоваться наоборот показать пользователю "острые пиксели".
Собственно, для этого и было создано свойство
image-rendering, которое управляет алгоритмом рендеринга изображений при масштабировании.Оно имеет следующие значения:
1)
auto (по-умолчанию) — браузер подбирает алгоритм самостоятельно2)
smooth — картинка "размывается"3)
pixelated — картинка сохраняет видимые пиксели4)
crisp-edges — картинка сохраняет резкие контурыРазница между
pixelated и crisp-edges не всегда заметна, но с точки зрения алгоритма она есть. Первый при масштабировании каждый пиксель превращает в большой квадрат из пикселей того же цвета, а второй просто старается сохранить резкие контуры изображения. То есть pixelated стоит использовать при работе с пиксель-артами, ретро-играми и спрайтами, а crisp-edges для схем, чертежей и QR-кодов.⚙️ Поддержка браузерами (auto, smooth, pixelated, crisp-edges)
❤3
Media is too big
VIEW IN TELEGRAM
Новое CSS свойство 🔥
Chrome в 150 версии добавил
По спецификации у него может быть до 7 значений, но пока что работают только 3 из них:
🔗 Ссылка на спецификацию
⚙️ Поддержка браузерами пока небольшая
Chrome в 150 версии добавил
text-fit, который позволяет динамически подгонять размер шрифта под размер контейнера.По спецификации у него может быть до 7 значений, но пока что работают только 3 из них:
none (по-умолчанию) — ничего не меняетgrow — увеличивает размер шрифта до тех пор, пока текст полностью не заполнит контейнерshrink — уменьшает размер шрифта до тех пор, пока он целиком не влезет в контейнер🔗 Ссылка на спецификацию
⚙️ Поддержка браузерами пока небольшая
🤯2❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Проапгрейдили polygon()
Chrome в 150 версии добавил ключевое слово
⚙️ Таблицу на caniuse пока не завезли
Chrome в 150 версии добавил ключевое слово
round, которое позволяет задать скругление любым формам, созданным этой функцией:clip-path: polygon(round 20px, 50% 0%, 0% 100%, 100% 100%);
⚙️ Таблицу на caniuse пока не завезли
❤2
Проапгрейдили url()
Chrome в 150 версии добавил функции 3 модификатора запроса:
🦜
Возможные значения:
Пример:
🦜
Пример:
🦜
Возможные значения:
⚙️ Поддержка браузерами средняя (cross-origin(), integrity(), referrer-policy())
Chrome в 150 версии добавил функции 3 модификатора запроса:
🦜
cross-origin() — указывает, какие заголовки разрешено отправлять в запросеВозможные значения:
anonymous — запрещает отправку учётных данных пользователя (куки, HTTP аутентификация, TLS сертификаты)use-credentials — разрешает их отправкуПример:
background-image:
url(
"https://private.example.com/bg.jpg"
cross-origin(use-credentials)
);
🦜
integrity() — проверяет, не был ли ресурс подменён на сервере злоумышленником, используя ранее переданный хешПример:
background-image: url(
"https://private.example.com/bg.jpg"
integrity("sha384-VeryLongBase64HashHere...")
);
🦜
referrer-policy() — управляет в каком виде Referrer заголовок будет отправлен на серверВозможные значения:
no-referrer — не отправляет этот заголовок вообщеno-referrer-when-downgrade — отправляет во всех случаях, кроме перехода с HTTPS на HTTPsame-origin — отправляет только внутри одного originorigin — отправляет только origin ресурсаstrict-origin — отправляет только origin и только при безопасных переходахorigin-when-cross-origin — если запрос внутри сайта, то полный URL, если на внешний ресурс, то только originstrict-origin-when-cross-origin — если запрос внутри сайта, то полный URL, если на внешний ресурс и по безопасному соединению, то только origin, при при переходе с HTTPS на HTTP впринципе ничего не отправляетunsafe-url — всегда отправляет полный URL⚙️ Поддержка браузерами средняя (cross-origin(), integrity(), referrer-policy())
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Новое значение свойства background-clip
Chrome в 150 версии добавил
Для того, чтобы увидеть эффект, не забудьте сделать рамку частично или полностью прозрачной.
⚙️ Поддержка браузерами средняя
Chrome в 150 версии добавил
border-area (не путать с border-box), благодаря которому теперь можно оставить фон элемента только под его рамкой. Для того, чтобы увидеть эффект, не забудьте сделать рамку частично или полностью прозрачной.
⚙️ Поддержка браузерами средняя
❤2🔥1🥰1
Новая CSS функция
Chrome в 150 версии добавил
Эта функция не даёт ничего принципиально нового, но избавляет нас от необходимости писать громоздкий код через "костыли".
До:
После:
⚙️ Таблицу на caniuse пока не завезли
Chrome в 150 версии добавил
image(), который позволяет подставить цвет в качестве изображения. Эта функция не даёт ничего принципиально нового, но избавляет нас от необходимости писать громоздкий код через "костыли".
До:
.hero {
background-image:
linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
url('scenery.jpg');
}После:
.hero {
background-image:
image(rgba(0, 0, 0, 0.5)),
url('scenery.jpg');
}⚙️ Таблицу на caniuse пока не завезли
❤2
Записки фронтендера
Переходи на тёмную сторону 😈 Недавно в браузеры завезли новую функцию light-dark(), которая позволяет указать 2 цвета — светлый и тёмный Один из этих цветов будет применён в зависимости от того, какая тема включена у пользователя на устройстве Для того…
Проапгрейдили функцию light-dark()
Если раньше в неё можно было передавать только цвета, то с выходом Chrome 150 версии, стали доступны и изображения.
До:
После:
⚙️ Поддержка браузерами средняя
Если раньше в неё можно было передавать только цвета, то с выходом Chrome 150 версии, стали доступны и изображения.
До:
.banner {
background-image: url('sun.jpg');
}
@media (prefers-color-scheme: dark) {
.banner {
background-image: url('moon.jpg');
}
}После:
.banner {
background-image: light-dark(url('sun.jpg'), url('moon.jpg'));
}⚙️ Поддержка браузерами средняя
❤1
Контейнерные запросы теперь можно объединять
Если раньше приходилось дублировать дважды один и тот же код, то с выходом Chrome 150 версии, стало доступно объединение условий под общим блоком.
До:
После:
⚙️ Таблицу на caniuse пока не завезли
Если раньше приходилось дублировать дважды один и тот же код, то с выходом Chrome 150 версии, стало доступно объединение условий под общим блоком.
До:
@container (width > 600px) {
.card {
display: flex;
gap: 24px;
align-items: center;
}
}
@container (height > 400px) {
.card {
display: flex;
gap: 24px;
align-items: center;
}
}После:
@container (width > 600px),
(height > 400px) {
.card {
display: flex;
gap: 24px;
align-items: center;
}
}
⚙️ Таблицу на caniuse пока не завезли
❤1🔥1
Хочу поделиться важной новостью
Я запустил свой стартап. Мы с командой пытаемся решить проблему сломанного IT рынка.
За последние 2 недели проект значительно продвинулся и продолжает очень быстро развиваться.
Сейчас мы хотим усилить команду и ищем:
— Дизайнеров
— Backend разработчиков (Node.js)
Если вы хотите поработать над амбициозным продуктом в команде с большим коммерческим опытом и внести вклад в решение общей проблемы — напишите мне в личные сообщения (@usersavchenko).
Также, если среди ваших знакомых есть подходящие специалисты, буду сильно благодарен за репост.
Я запустил свой стартап. Мы с командой пытаемся решить проблему сломанного IT рынка.
За последние 2 недели проект значительно продвинулся и продолжает очень быстро развиваться.
Сейчас мы хотим усилить команду и ищем:
— Дизайнеров
— Backend разработчиков (Node.js)
Если вы хотите поработать над амбициозным продуктом в команде с большим коммерческим опытом и внести вклад в решение общей проблемы — напишите мне в личные сообщения (@usersavchenko).
Также, если среди ваших знакомых есть подходящие специалисты, буду сильно благодарен за репост.
👍3🔥2❤1🤣1