This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Глядите-ка, один из подписчиков воспринял предыдущий пост всерьёз и таки выкатил интерактивную шпаргалку: https://codepen.io/mdss/pen/yLjBMEX
Просто прекрасно! Спасибо :)
Не стесняемся, котаны. Дополняем и расширяем. nth-child кто добавит?
#css #selectors #cheatsheet
Глядите-ка, один из подписчиков воспринял предыдущий пост всерьёз и таки выкатил интерактивную шпаргалку: https://codepen.io/mdss/pen/yLjBMEX
Просто прекрасно! Спасибо :)
Не стесняемся, котаны. Дополняем и расширяем. nth-child кто добавит?
#css #selectors #cheatsheet
👍30🔥13
Media is too big
VIEW IN TELEGRAM
#видео дня
Давно стоило и пересмотреть это видео, и выкатить в канал.
Многим из вас знакома концепция DRY: Don't Repeat Yourself. Вот только многие доводят её до абсурда, плодя абстракцию за абстракцией и пытаясь объять необъятное (сам таким был).
Но есть и другой подход, буквально — WET.
Write Everything Twice.
Да-да, пиши-повторяй. Стоит ли тратить время на объединение разных сущностей до того, как это вообще понадобится, или лучше потратить его на закрытие бизнес-потребности?
И вот об этом доклад Дэна наше всё Абрамова на конференции Deconstruct'2019.
Есть транскрипт, кстати: https://www.deconstructconf.com/2019/dan-abramov-the-wet-codebase
В общем, думайте, так ли вам нужны максимально универсальные компоненты и логика. Может, стоит сначала реализовать задачу, избежав дырявых абстракций?
#video #conference #dry #wet
Давно стоило и пересмотреть это видео, и выкатить в канал.
Многим из вас знакома концепция DRY: Don't Repeat Yourself. Вот только многие доводят её до абсурда, плодя абстракцию за абстракцией и пытаясь объять необъятное (сам таким был).
Но есть и другой подход, буквально — WET.
Write Everything Twice.
Да-да, пиши-повторяй. Стоит ли тратить время на объединение разных сущностей до того, как это вообще понадобится, или лучше потратить его на закрытие бизнес-потребности?
И вот об этом доклад Дэна наше всё Абрамова на конференции Deconstruct'2019.
Есть транскрипт, кстати: https://www.deconstructconf.com/2019/dan-abramov-the-wet-codebase
В общем, думайте, так ли вам нужны максимально универсальные компоненты и логика. Может, стоит сначала реализовать задачу, избежав дырявых абстракций?
#video #conference #dry #wet
👍15
#стрим дня
…который будет 6 сентября.
В общем, есть тип такой, Джейсон Ленсторф, он ведёт обучающие стримы по веб-технологиям.
И у него на стриме 6 сентябра будет создатель курсов по TypeScript, Мэтт Покок: https://www.learnwithjason.dev/advanced-typenoscript-let-s-learn-generics
Тема стрима — дженерики в TS. Без вопроса по дженерикам не обходится ни одно интервью.
Залетаем, смотрим, учимся.
#ts #generics
…который будет 6 сентября.
В общем, есть тип такой, Джейсон Ленсторф, он ведёт обучающие стримы по веб-технологиям.
И у него на стриме 6 сентябра будет создатель курсов по TypeScript, Мэтт Покок: https://www.learnwithjason.dev/advanced-typenoscript-let-s-learn-generics
Тема стрима — дженерики в TS. Без вопроса по дженерикам не обходится ни одно интервью.
Залетаем, смотрим, учимся.
#ts #generics
⚡2👍1
#фишка дня
Многие (к сожалению, не все) кто хоть раз разрабатывал формы, сталкивались с элементом label (лейбл, ярлык, как вам угодно). И знают, что при правильном его использовании пользователю не приходится целиться мышью в галочку или радиокнопку.
Кто-то добавит при этом, что скринридеры могут ассоциировать лейбл с элементом ввода и пользователи с нарушением зрения могут легко сориентироваться в вашей форме.
Но не все знают, что лейбл можно повесить и на элемент button: https://codepen.io/alinaki/pen/XWjLedQ
Да, возможно, кнопке свой ярлык не нужен и даже MDN сообщает нам об этом, но!
Но в лейбл можно добавить дополнительную информацию, которая будет однозначно и семантично связана с кнопкой и поможет, например, скринридерам или при создании тултипа.
Лейблом можно продублировать кнопку без внесения лишней когнитивной нагрузки (но не стоит, фокус он не примет). Пожалуй, для каких-нибудь игровых интерфейсов вполне может быть приемлемо.
А вот если вы не используете кнопки и балуетесь role=“button” на div-ах (в лучшем случае) — этой возможности вы лишены в принципе.
#html #button #label
Многие (к сожалению, не все) кто хоть раз разрабатывал формы, сталкивались с элементом label (лейбл, ярлык, как вам угодно). И знают, что при правильном его использовании пользователю не приходится целиться мышью в галочку или радиокнопку.
Кто-то добавит при этом, что скринридеры могут ассоциировать лейбл с элементом ввода и пользователи с нарушением зрения могут легко сориентироваться в вашей форме.
Но не все знают, что лейбл можно повесить и на элемент button: https://codepen.io/alinaki/pen/XWjLedQ
Да, возможно, кнопке свой ярлык не нужен и даже MDN сообщает нам об этом, но!
Но в лейбл можно добавить дополнительную информацию, которая будет однозначно и семантично связана с кнопкой и поможет, например, скринридерам или при создании тултипа.
Лейблом можно продублировать кнопку без внесения лишней когнитивной нагрузки (но не стоит, фокус он не примет). Пожалуй, для каких-нибудь игровых интерфейсов вполне может быть приемлемо.
А вот если вы не используете кнопки и балуетесь role=“button” на div-ах (в лучшем случае) — этой возможности вы лишены в принципе.
#html #button #label
👍14
#обман дня
Не так давно мы с вами радостно приветствовали введение штатной «ленивой» загрузки для тегов img и iframe. Был добавлен атрибут loading, который может принимать значение lazy и eager. Перевод, думаю, не требуется.
И блоги разработчиков и соиздателей браузеров радостно кричали: «Теперь ленивая загрузка картинок возможна даже при отключённом в браузере JS». Пруф (04.09.2022): https://web.dev/browser-level-image-lazy-loading/#:~:text=still%20works%20even%20if%20javanoscript%20is%20disabled
Хрена с два. Мы тут с пользователем Твиттера Стефаном Юдисом выяснили, что ленивая загрузка в Chrome таки отключается. Как и обещал нам MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-loading
Статья в блоге Chrome на днях будет исправлена. А вы пока попробуйте предположить, почему так. Это очень забавно.
#js #lazy #img
Не так давно мы с вами радостно приветствовали введение штатной «ленивой» загрузки для тегов img и iframe. Был добавлен атрибут loading, который может принимать значение lazy и eager. Перевод, думаю, не требуется.
И блоги разработчиков и соиздателей браузеров радостно кричали: «Теперь ленивая загрузка картинок возможна даже при отключённом в браузере JS». Пруф (04.09.2022): https://web.dev/browser-level-image-lazy-loading/#:~:text=still%20works%20even%20if%20javanoscript%20is%20disabled
Хрена с два. Мы тут с пользователем Твиттера Стефаном Юдисом выяснили, что ленивая загрузка в Chrome таки отключается. Как и обещал нам MDN: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-loading
Статья в блоге Chrome на днях будет исправлена. А вы пока попробуйте предположить, почему так. Это очень забавно.
#js #lazy #img
web.dev
Browser-level image lazy loading for the web | Articles | web.dev
This post covers the loading attribute and how it can be used to control the loading of images.
😱7👍4
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Вам никогда не казалось, что подвалы сайтов незаслуженно обижены?
Скроллишь, скроллишь себе бесконечную загрузку твитов или постов в ленте, футер появляется на секунду — и тут же снова улетает с экрана, не успев сообщить что-то важное…
Стив Гарднер попытался визуализировать происходящее, вышло офигенно, целая история: https://codepen.io/ste-vg/pen/PoQgvBK
#scroll
Вам никогда не казалось, что подвалы сайтов незаслуженно обижены?
Скроллишь, скроллишь себе бесконечную загрузку твитов или постов в ленте, футер появляется на секунду — и тут же снова улетает с экрана, не успев сообщить что-то важное…
Стив Гарднер попытался визуализировать происходящее, вышло офигенно, целая история: https://codepen.io/ste-vg/pen/PoQgvBK
#scroll
👍28😢3😁2❤1
#такое дня
По всей видимости, последняя ревизия клавиатурного механизма «бабочка» от Apple была достаточно надёжной 🤣
Но не судьба.
По всей видимости, последняя ревизия клавиатурного механизма «бабочка» от Apple была достаточно надёжной 🤣
Но не судьба.
😱10👍5
#инструмент дня
Кто соскучился по новым фреймворкам? Поднимите руки!
🙋🙋♂️🙋♀️🙋🙋♂️🙋♀️
Вижу лес рук. Прекрасно.
Итак, вашему вниманию предлагается Enhance.
Что он такое? Это основанный на веб-компонентах (web-components) фреймворк, использующий файловый роутинг и свой собственный менеджер состояний.
Похоже на React и Lit одновременно? Ну кто бы мог подумать.
Цель проекта — нести веб-компоненты в массы, сделать их переиспользование и структуру проекта вообще максимально простой (привет, классовый Lit). Кроме менеджера состояний поставляется ещё и атомарный CSS-фреймворк (зачем? брали бы уж Tailwind, хайповать так хайповать).
В общем, как всегда, внимания стоит. Как минимум, простые наброски делать должно быть одно удовольствие.
Тут SSR из коробки, кстати. Может стать неплохой альтернативой 11ty.
#js #components
Кто соскучился по новым фреймворкам? Поднимите руки!
🙋🙋♂️🙋♀️🙋🙋♂️🙋♀️
Вижу лес рук. Прекрасно.
Итак, вашему вниманию предлагается Enhance.
Что он такое? Это основанный на веб-компонентах (web-components) фреймворк, использующий файловый роутинг и свой собственный менеджер состояний.
Похоже на React и Lit одновременно? Ну кто бы мог подумать.
Цель проекта — нести веб-компоненты в массы, сделать их переиспользование и структуру проекта вообще максимально простой (привет, классовый Lit). Кроме менеджера состояний поставляется ещё и атомарный CSS-фреймворк (зачем? брали бы уж Tailwind, хайповать так хайповать).
В общем, как всегда, внимания стоит. Как минимум, простые наброски делать должно быть одно удовольствие.
Тут SSR из коробки, кстати. Может стать неплохой альтернативой 11ty.
#js #components
❤5👍5
#статья дня
Disclaimer: мне не нравится решение, представленное в статье, которую я сейчас опишу. Почему же я её упоминаю? Потому что идея-то классная, но недожали.
Я писал о масштабировании интерфейса пару раз. Всё сводилось к следующему: берём ширину дизайн-макета за 100% и считаем единицы размеров относительно размера видимой ширины экрана:
Раз: https://news.1rj.ru/str/htmlshit/1182
Два: https://news.1rj.ru/str/htmlshit/1183
Три: https://news.1rj.ru/str/htmlshit/1229
Но с момента первой публикации этих постов (начало 2021 года) прошло достаточно много времени, инструменты вроде clamp и адаптивной типографики начали захватывать мир: https://news.1rj.ru/str/htmlshit/902
Так вот, ребята из статьи на CSS Tricks примерно в то же время решили применить оба подхода, заодно показав нативное CSS-решение прямого масштабирования: https://css-tricks.com/how-to-get-a-pixel-perfect-linearly-scaled-ui/
Так что же с ней не так?
Они наступили на те же грабли, что я когда-то с vw/vh: потеряли возможность масштабирования в браузере. А это жирный минус на десктопах (на мобилах такой проблемы нет).
Тем не менее, направление-то классное, надо подумать на досуге, как это сделать умнее.
Но не забывайте, что CSS-то развивается, появились запросы от контейнера и родительский селектор. Pixel-perfect вёрстке давно пора умереть в глобальном смысле.
#css #layout #design
Disclaimer: мне не нравится решение, представленное в статье, которую я сейчас опишу. Почему же я её упоминаю? Потому что идея-то классная, но недожали.
Я писал о масштабировании интерфейса пару раз. Всё сводилось к следующему: берём ширину дизайн-макета за 100% и считаем единицы размеров относительно размера видимой ширины экрана:
Раз: https://news.1rj.ru/str/htmlshit/1182
Два: https://news.1rj.ru/str/htmlshit/1183
Три: https://news.1rj.ru/str/htmlshit/1229
Но с момента первой публикации этих постов (начало 2021 года) прошло достаточно много времени, инструменты вроде clamp и адаптивной типографики начали захватывать мир: https://news.1rj.ru/str/htmlshit/902
Так вот, ребята из статьи на CSS Tricks примерно в то же время решили применить оба подхода, заодно показав нативное CSS-решение прямого масштабирования: https://css-tricks.com/how-to-get-a-pixel-perfect-linearly-scaled-ui/
Так что же с ней не так?
Они наступили на те же грабли, что я когда-то с vw/vh: потеряли возможность масштабирования в браузере. А это жирный минус на десктопах (на мобилах такой проблемы нет).
Тем не менее, направление-то классное, надо подумать на досуге, как это сделать умнее.
Но не забывайте, что CSS-то развивается, появились запросы от контейнера и родительский селектор. Pixel-perfect вёрстке давно пора умереть в глобальном смысле.
#css #layout #design
🤔2❤1
#фишка дня
Заканчивайте использовать
Такой метод игнорирует даты, неопределённые значения и не работает с циклическими зависимостями.
Уже достаточно давно имеется structuredClone.
Наличествует во всех современных браузерах, есть полифилл.
P. S. вот тока не надо мне про лодаш тут плиз) все же использовали JSON-решение из-за скорости ⚡️
#js #clone
Заканчивайте использовать
JSON.parse(JSON.stringify(obj)) для дублирования (aka глубокого копирования aka deep copy) объектов в JavaScript.Такой метод игнорирует даты, неопределённые значения и не работает с циклическими зависимостями.
Уже достаточно давно имеется structuredClone.
Наличествует во всех современных браузерах, есть полифилл.
P. S. вот тока не надо мне про лодаш тут плиз) все же использовали JSON-решение из-за скорости ⚡️
#js #clone
MDN Web Docs
Window: structuredClone() method - Web APIs | MDN
The structuredClone() method of the Window interface creates a deep clone of a given value using the structured clone algorithm.
👍23🔥3🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня
Я решил, что плагины для Figma тоже будут сюда залетать. Особенно, если эти плагины реализованы на базе хороших статей по вёрстке.
Например, от Джоша Камю про красивые тени в CSS: https://www.joshwcomeau.com/css/designing-shadows/
Потому что все мы в душе немного художники.
Встречайте: https://www.figma.com/community/plugin/1068595505353552645/Beautiful-Shadows
В треде автора плагина есть пара трюков по использованию, ну и вообще, можно оставить своё спасибо.
#figma #css #shadow
Я решил, что плагины для Figma тоже будут сюда залетать. Особенно, если эти плагины реализованы на базе хороших статей по вёрстке.
Например, от Джоша Камю про красивые тени в CSS: https://www.joshwcomeau.com/css/designing-shadows/
Потому что все мы в душе немного художники.
Встречайте: https://www.figma.com/community/plugin/1068595505353552645/Beautiful-Shadows
В треде автора плагина есть пара трюков по использованию, ну и вообще, можно оставить своё спасибо.
#figma #css #shadow
🔥16👍2
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
Вам уже должен быть хорошо знаком input type=“number”. Кто-то наверняка даже пытался стилизовать раздражающие стрелочки.
Но мало кто знает, что это (и ещё одно, угадайте, какое) поле ввода предоставляет свои псевдоклассы:
И естественно, подъехал (вот буквально) шикарный CodePen на эту тему:
http://codepen.io/jh3y/pen/MWWowEb
👉 @htmlshit
#css #input #number #range
Вам уже должен быть хорошо знаком input type=“number”. Кто-то наверняка даже пытался стилизовать раздражающие стрелочки.
Но мало кто знает, что это (и ещё одно, угадайте, какое) поле ввода предоставляет свои псевдоклассы:
:in-range и :out-of-range. Уже понятно, что они делают: если вы установили атрибуты min и max, вышеуказанные псевдоклассы позволят воспользоваться этим знанием в CSS.input:out-of-range ~ span {
color: red;
}
И естественно, подъехал (вот буквально) шикарный CodePen на эту тему:
http://codepen.io/jh3y/pen/MWWowEb
👉 @htmlshit
#css #input #number #range
🔥21👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
А давайте ещё больше безумных идей богу безумных идей.
Как вам фильтрация списка на CSS? Уж точно покруче FizzBuzz задачи на собеседовании.
А достигается волшебство путём использования селекторов пот атрибутам:
i — означает case-insensitive, регистронезависимый ввод.
Пример на CodePen: https://codepen.io/jh3y/pen/NWyaomN
Пример, конечно, выглядит малость упорото — он на JS генерирует вышеописанный код на CSS, но даже при всём этом — выход весьма декларативен и позволяет поиграть эффектами скрытия-отображения элементов на ура.
Просто считайте это вашим маленьким DSL (domain-specific language, язык под задачу).
Основная идея: не забывайте, что у вас и такое есть под рукой.
#css #js #attributes
А давайте ещё больше безумных идей богу безумных идей.
Как вам фильтрация списка на CSS? Уж точно покруче FizzBuzz задачи на собеседовании.
А достигается волшебство путём использования селекторов пот атрибутам:
[term] { display: none; }
[term*="a" i] { display: list-item; }
i — означает case-insensitive, регистронезависимый ввод.
Пример на CodePen: https://codepen.io/jh3y/pen/NWyaomN
Пример, конечно, выглядит малость упорото — он на JS генерирует вышеописанный код на CSS, но даже при всём этом — выход весьма декларативен и позволяет поиграть эффектами скрытия-отображения элементов на ура.
Просто считайте это вашим маленьким DSL (domain-specific language, язык под задачу).
Основная идея: не забывайте, что у вас и такое есть под рукой.
#css #js #attributes
👍13🔥3👎1
#такое дня
Посмотрел презентацию Apple. Мой новый ноутбук, конечно, не показали.
Но назрел вопрос: а кто-то вообще для часов верстал? Есть ли такой запрос на рынке вообще?
Поделитесь опытом.
Посмотрел презентацию Apple. Мой новый ноутбук, конечно, не показали.
Но назрел вопрос: а кто-то вообще для часов верстал? Есть ли такой запрос на рынке вообще?
Поделитесь опытом.
👍3
#фишка дня
Я очень люблю, когда люди открывают для себя геометрию пятого класса. Особенно дизайнеры.
Посмотрите на картинку: наружный радиус двух вложенных блоков это радиус скругления внутреннего блока плюс поля.
Казалось бы, всё так очевидно. Но, похоже, не всем…
В комментариях прекрасное будет :)
#design #border
Я очень люблю, когда люди открывают для себя геометрию пятого класса. Особенно дизайнеры.
Посмотрите на картинку: наружный радиус двух вложенных блоков это радиус скругления внутреннего блока плюс поля.
Казалось бы, всё так очевидно. Но, похоже, не всем…
В комментариях прекрасное будет :)
#design #border
🤯27👍18😁5🥴1
#дата дня
А вы чего мне не напомнили, что формату SVG четвёртого сентября исполнился 21 год?
Глядите, скрин спеки версии 1.0 в музее: https://www.webdesignmuseum.org/web-design-history/noscript-1-0-2001
Забавный проект, кстати, этот музей. В разделе истории веб-дизайна имеется таймлайн выпусков первых версий плотно связанных с вебом технологий, сервисов и программ.
А вы чего мне не напомнили, что формату SVG четвёртого сентября исполнился 21 год?
Глядите, скрин спеки версии 1.0 в музее: https://www.webdesignmuseum.org/web-design-history/noscript-1-0-2001
Забавный проект, кстати, этот музей. В разделе истории веб-дизайна имеется таймлайн выпусков первых версий плотно связанных с вебом технологий, сервисов и программ.
Web Design Museum
SVG 1.0
Explore the milestones in the history of web design: SVG 1.0 in 2001.
🎉6❤1
#заметка дня
Для меня было небольшой загадкой, почему Vim, а по большей части, Neovim, так завирусился в последнее время.
Я использовал Vim активно лет 12 назад, имел огромный конфиг, но в итоге сполз с него на Sublime, Atom, а потом и VS Code. Причиной стала лучшая поддержка нужных мне инструментов. Vim остался горячо любимым редактором на удалённых серверах. И от конфига я отказался в пользу сырых режимов, это положительно сказалось на работе в разных средах.
К слову, Vim может искать по многогигабайтным логам легко и просто, а эти ваши VS Code и даже Sublime — нет.
Но суть не в этом. Суть в том, что Vim и другие независимые редакторы спасла… Microsoft. Как?
Раньше каждая IDE реализовывала свой механизм работы с конкретным языком. И как правило, это было некое проприетарное (в смысле непереносимое) решение. Но всё изменил приход LSP: Language Server Protocol.
Такого раньше не было: открытый стандарт взаимодействия редактора и языка. Автодополнение, ссылки, определения, документация… А главное, протокол-то открытый.
Поддерживается уже огромное количество языков и редакторов. И тут мы подходим к главному.
О преимуществах Vim есть огромный свежий тред Кирилла Мокевнина, CEO Hexlet: https://twitter.com/mokevnin/status/1567594899859546115
Оригинальный Vim не поддерживает LSP, зато его поддерживает Neovim. И тут все любители модальных редакторов получили второе дыхание.
Но вот я правда был очень удивлён, как Microsoft снова перевернула мир свободного ПО. Это, конечно, поразительно.
Для меня было небольшой загадкой, почему Vim, а по большей части, Neovim, так завирусился в последнее время.
Я использовал Vim активно лет 12 назад, имел огромный конфиг, но в итоге сполз с него на Sublime, Atom, а потом и VS Code. Причиной стала лучшая поддержка нужных мне инструментов. Vim остался горячо любимым редактором на удалённых серверах. И от конфига я отказался в пользу сырых режимов, это положительно сказалось на работе в разных средах.
К слову, Vim может искать по многогигабайтным логам легко и просто, а эти ваши VS Code и даже Sublime — нет.
Но суть не в этом. Суть в том, что Vim и другие независимые редакторы спасла… Microsoft. Как?
Раньше каждая IDE реализовывала свой механизм работы с конкретным языком. И как правило, это было некое проприетарное (в смысле непереносимое) решение. Но всё изменил приход LSP: Language Server Protocol.
Такого раньше не было: открытый стандарт взаимодействия редактора и языка. Автодополнение, ссылки, определения, документация… А главное, протокол-то открытый.
Поддерживается уже огромное количество языков и редакторов. И тут мы подходим к главному.
О преимуществах Vim есть огромный свежий тред Кирилла Мокевнина, CEO Hexlet: https://twitter.com/mokevnin/status/1567594899859546115
Оригинальный Vim не поддерживает LSP, зато его поддерживает Neovim. И тут все любители модальных редакторов получили второе дыхание.
Но вот я правда был очень удивлён, как Microsoft снова перевернула мир свободного ПО. Это, конечно, поразительно.
🔥8👍3🤔3
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
Если вы не знали, или забыли, спешу вам напомнить, что псевдоэлементы флейсбокс-контейнера тоже подвержены влиянию флекса.
Что это значит на практике?
Это значит, что если вы сделали space-between или space-around чтобы выровнять элементы по двум сторонам, вам не нужно точное их количество чтобы забить всю сетку для последней строки.
Ну то есть, последняя строка из двух элементов не должна «расползаться», элементам просто нужно встать в начало.
Достаточно поставить «распорку» в виде псевдоэлемента: https://codepen.io/alinaki/pen/KKRzMdz
Не делайте, как фейсбук, пожалуйста: https://news.1rj.ru/str/htmlshit/387
Ну и очевидно, это можно использовать для различных вариантов оформления тех же заголовков, например.
#css #flex
Если вы не знали, или забыли, спешу вам напомнить, что псевдоэлементы флейсбокс-контейнера тоже подвержены влиянию флекса.
Что это значит на практике?
Это значит, что если вы сделали space-between или space-around чтобы выровнять элементы по двум сторонам, вам не нужно точное их количество чтобы забить всю сетку для последней строки.
Ну то есть, последняя строка из двух элементов не должна «расползаться», элементам просто нужно встать в начало.
Достаточно поставить «распорку» в виде псевдоэлемента: https://codepen.io/alinaki/pen/KKRzMdz
Не делайте, как фейсбук, пожалуйста: https://news.1rj.ru/str/htmlshit/387
Ну и очевидно, это можно использовать для различных вариантов оформления тех же заголовков, например.
#css #flex
🔥17❤3👍1
#библиотека дня
Если есть понятие семантики, где элементы HTML представляют собой то, чем являются, то может, классы в CSS не так уж и нужны?
И таки да!
Парни из https://simplecss.org/ и https://native-elements.dev/ так и считают. Можно построить вполне себе полноценный сайт, не написав ни единого класса.
Как тебе такое, тейлвинд?)
Конечно, получается не то чтобы сверхсложное что-то. Но для среднего блога вполне можно. Сайт этого канала был на нейтивах, но я забыл оплатить домен и godaddy меня поимел.
Впрочем, к теме. Это, конечно, не единственные варианты. Вот целый список: https://github.com/dbohdan/classless-css
Мыслите шире, котаны!
#css #framework
Если есть понятие семантики, где элементы HTML представляют собой то, чем являются, то может, классы в CSS не так уж и нужны?
И таки да!
Парни из https://simplecss.org/ и https://native-elements.dev/ так и считают. Можно построить вполне себе полноценный сайт, не написав ни единого класса.
Как тебе такое, тейлвинд?)
Конечно, получается не то чтобы сверхсложное что-то. Но для среднего блога вполне можно. Сайт этого канала был на нейтивах, но я забыл оплатить домен и godaddy меня поимел.
Впрочем, к теме. Это, конечно, не единственные варианты. Вот целый список: https://github.com/dbohdan/classless-css
Мыслите шире, котаны!
#css #framework
Simple.css
Simple.css Framework
Simple.css is classless CSS template that allows you to create a good looking website very quickly.
🌚5👍4