Как стать автором
Поиск
Написать публикацию
Обновить
52.86

CSS *

Каскадные таблицы стилей

Сначала показывать
Период
Уровень сложности

Как работают браузеры, часть 3: деревья специальных возможностей и рендеринга

Время на прочтение6 мин
Количество просмотров8.6K

Это заключительная статья из цикла статей о работе браузеров. Ссылка на первые два перевода:
Часть 1: навигация и получение данных
Часть 2: парсинг и выполнение JS

Статьи предназначена для начинающих разработчиков и тех, кто интересуется разработкой. Здесь нет глубоких технических деталей, хотя, возможно, вы найдете что-то новое для себя.

Помимо деревьев, о которых мы уже говорили — DOM, CSSOM и AST — браузеры также строят дерево специальных возможностей. Деревья, построенные на этапе парсинга (DOM, CSSOM), объединяются в дерево рендеринга. Его цель – убедиться, что содержимое страницы отобразит элементы в правильном порядке.

Читать далее

На пути к дизайн-системе: как мы сделали визуал и разработку почти единым целым

Время на прочтение4 мин
Количество просмотров4.6K

Привет, Хабр! Меня зовут Анатолий Долгов и я frontend-разработчик международной команды Учи.ру. Сегодня я расскажу, как мы успешно синхронизировали параметры дизайна и кода. Это упростило многие рабочие моменты, уменьшило количество неприятных ошибок и сделало нас ближе к внедрению полноценной дизайн-системы.

Читать далее

История о CSS-сбросах и все, что о них нужно знать. Еще раз об этом

Время на прочтение40 мин
Количество просмотров30K

Небольшое вступление: меня заинтересовали CSS-сбросы по вполне практичной причине. Я инженер-консультант по программному обеспечению, поэтому работаю с разными клиентами и время от времени начинаю новые проекты.

В какой-то момент, после создания нескольких веб-проектов с нуля несколько раз подряд и столкнувшись с одними и теми же проблемами в разных браузерах, я выработала определенный "стиль работы", если можно так выразиться, и корректировка моего CSS-кода в разных браузерах способом "исправил - и готово" перестала меня устраивать. Тогда я решила изучить процедуру сбросов и обнаружила в них гораздо больше нюансов, чем казалось вначале.

Читать далее

Венец эволюции CSS-in-JS уже здесь: полностью типизированные стили без рантайма в vanilla-extract

Время на прочтение7 мин
Количество просмотров12K

После взлёта тайпскрипта (извини, flow) нетипизированные области фронтенда стали мозолить глаза гораздо сильнее. Логика уже давно на TS, вёрстка, при необходимости, на TSX, а вот у CSS ситуация посложнее.

Можешь использовать CSS файлы (с диалектами и модулями по вкусу) и указывать классы в вёрстке руками - но типизация здесь на уровне "препроцессор может сгенерировать тайпинги со списком классов прямо в рабочем дереве", да и в общем интеграция с рантаймом никакая. При этом гибкость диалекта достигается с помощью плагинов - которые, в общем случае, друг с другом (и, тем более, с IDE) могут и не дружить.

Либо бери любое из CSS-in-JS решений, предоставляющих полную типизацию и интеграцию с остальным кодом, но готовься платить ощутимое пенальти в рантайме - всё же парсинг объектов/строк со стилями занимает ощутимое время. Гибкость при этом, разумеется, максимальная.

Где-то в промежутке между ними находятся проекты вроде linaria или astroturf, которые предполагают парсинг CSS-in-JS на этапе компиляции (примерно как с graphql-tag). Типизация на уровне, производительность в рантайме - тоже, однако это всё ещё препроцессоры строк, пусть и более умные, так что расширяемость оставляет желать лучшего.

Вот тут-то в дело и вступает vanilla-extract. Пару месяцев назад Mark Dalgleish (один из создателей CSS модулей, кстати) решил узнать что получится, если использовать для препроцессинга стилей... сам тайпскрипт!

Спойлер: получилось очень хорошо. Впрочем, обо всём по порядку.

Ну-ка, ну-ка, чего там?

HTMHell — адовая разметка (25 плохих примеров)

Время на прочтение32 мин
Количество просмотров18K

Перевод заметок с сайта HTMHell - коллекции плохих примеров HTML-кода, взятых из реальных проектов.

Каждая заметка включает сам фрагмент плохого кода, который дополняется объяснениями, в чём именно ошибки и почему так лучше не делать. А в заключение предлагается вариант, который считается более корректным.

Читать далее

Горизонтальный блог

Время на прочтение3 мин
Количество просмотров7.1K

image


Всё больше новостные сайты и блоги превращаются в длинную портянку которую от статьи к статье надо долго мотать по вертикали. Чтобы облегчить прокрутку одни сайты скрывают часть статьи под спойлером. Другие сайты отображают часть статьи в ленте а для прочтения её заставляют перейти на отдельную страницу.


Я подумал почему бы не воспользоваться горизонталью? Разработчики браузеров дали достаточно CSS инструментов чтобы выстроить статьи по горизонтали и сделать удобный переход между ними.


Я создал минимальную демку которая работает за счёт CSS и имеет такие свойства:


  1. Статьи выстраиваются по горизонтали.
  2. Часть статьи не надо скрывать под спойлером так как вертикальная прокрутка для каждой статьи индивидуальна.
  3. На следующую статью можно перейти из любого места предыдущей прокрутив колёсико мышки с зажатым Shift или смахнув статью влево на планшете.

В статье я разберу СSS используемый для горизонтального блога.

Читать дальше →

Нововведения CSS – Июль 2020 (Gap, Aspect ratio, Masonry, Subgrid)

Время на прочтение7 мин
Количество просмотров13K

Приветствую. Представляю вашему вниманию перевод статьи «CSS News July 2020», опубликованной 7 июля 2020 года автором Rachel Andrew



В последнее время скорость внедрения новых возможностей технологий веб-разработки существенно увеличилась по сравнению с тем, как это было раньше. Данная статья содержит подборку новых CSS-функций, поддержка которых уже сейчас появляется в современных браузерах. Если вы относитесь к разработчикам, которым не нравится читать о технологиях, если их нельзя сразу же начать применять, вероятно, эта статья может быть вам не интересна. Однако, если вам интересно узнать, что нас ждёт в самое ближайшее время и уже сейчас опробовать это в бета-версии браузера, тогда читайте дальше.

Как верстать веб-интерфейсы быстро, качественно и интересно

Время на прочтение14 мин
Количество просмотров45K

image


Всем привет! Давно хотел и наконец написал небольшую книжку — бодрое пособие по своей профессиональной области: актуальным подходам к разметке интерфейсов, экранному дизайну и доступности. Она о моем оригинальном подходе к созданию GUI, препроцессорам CSS (для объективности, немного и об альтернативных подходах), и его эффективном практическом использовании с javascript и популярными реактивными компонентными фреймворками Vue и React. Материал представлен аккуратно последовательно, но безумно интенсивно и динамично — ничего лишнего или даже слишком подробного — для того чтобы увлеченный и подготовленный читатель не потерял интереса и «проглотил на одном дыхании». С другой стороны, текст, достаточно сложный ближе к концу, и на всем протяжении — густо насыщенный идеями, ссылками на технологии и подходы — поэтому, очевидно, будет «на вырост» начинающим. Но, в любом случае, как и если вы только начали интересоваться данной тематикой, так и если уже давно занимаетесь веб-дизайном, версткой и программированием фронтенда — вам может быть полезно на него взглянуть.

Читать дальше →

Гибкая разметка без медиа-запросов: функции min(), max(), clamp()

Время на прочтение9 мин
Количество просмотров14K

Перевод «Flexible layouts without media queries» Dannie Vinther



С момента появления в браузерах в 2017 году, CSS Grid дал веб-дизайнерам и разработчикам новую суперсилу. На данный момент существует множество статей / руководств, иллюстрирующий возможности и преимущества CSS Grid, описывающих всё – от вдохновлённых ASCII-синтаксисом способом разметки Grid-областей до автоматического размещения элементов, делающих медиа-запросы чем-то устаревшим. Тем не менее, медиа-запросы всё ещё играют важную роль и это не может не вызывать некоторые сложности – наверное.

Стилизация Select-Option (почти) без JavaScript

Время на прочтение6 мин
Количество просмотров102K
Стилизация некоторых стандартных элементов — довольно нетривиальная задача.

Разумеется, хороший специалист может стилизовать что угодно, однако всё упирается в сложность этого действия.

Для стилизации радиокнопок и чекбоксов потребуется совсем немного времени — идея стилизации label со скрытыми input не нова, и давно и повсеместно используется.

Для стилизации остального — есть JavaScript.

Сегодня я хочу рассказать Вам о том, как можно относительно просто стилизовать выпадающие списки, с минимальным кодом JavaScript (от 0 до 26 строк) и минимальной дополнительной разметкой HTML.

Easy selects withoud JavaScript (almost)

Может перестанем называть доступностью UX и юзабилити?

Время на прочтение3 мин
Количество просмотров2.6K

Осторожно! Слово «доступность» встречается в этой статье 15 раз.


Последнее время я наблюдаю раскол фронтенд-сообщества на два лагеря: одни активно продвигают доступность, а другие искренне не понимают, зачем им тратить на неё время. Вместо диалога между этими двумя лагерями складывается только неприятие друг друга, сарказм в обе стороны, оскорбления и прочие сопутствующие нашему токсичному сообществу прелести.

Читать дальше →

Самое интересное с форума по веб-разработке Chrome Web Dev Summit 2019

Время на прочтение4 мин
Количество просмотров5.9K
Я уже пару раз ездила на Chrome Web Dev Summit (в 2016 и 2018 годах), и мне всегда нравилось составлять такую обзорную статью с самыми интересными идеями и проектами с конференции. Давайте попробуем сделать это и по результатам последнего форума!

Наконец-то обратили внимание на HTML


Кажется, дизайн и функциональность почти всех элементов управления не изменились со времён изобретения браузеров, хотя его стали использовать сильно иначе, например, с переходом на мобильные устройства. Теперь это наконец заметили! В своём выступлении «С HTML ещё не всё закончено», Николь и Грег обсудили несколько инноваций, которые появятся в Chrome в ближайшее время.

Переработанные элементы <form>


Наконец-то изменят внешний вид некоторых форм! Они не только стали более современными, но их оптимизировали для мобильных устройств и безбарьерного доступа. Например, сделали более крупные значения при выборе даты.


Что ты такое, Rendering Engine? Или как работает модуль отображения браузера

Время на прочтение5 мин
Количество просмотров19K
Самым важным для Frontend разработчика является модуль отображения в браузере, он же Rendering Engine (далее RE).

В этой статье я хочу взять простую страничку и пройти все этапы вместе с RE от получения первого байта и до отрисовки контента на экран. Пользоваться я, как всегда, буду браузером Chrome.

Для начала разберем, из каких еще модулей состоит браузер, чтобы понимать с чем взаимодействует RE.
Читать дальше →

Ближайшие события

Кастомизируем select на чистом css

Время на прочтение4 мин
Количество просмотров99K
Как-то вечером я убивал время, читая статьи в интернете, и наткнулся на вот этот хабропост пользователя Cyapa, где расписано, как кастомизировать select на чистом css. В процессе просмотра данного решения нашел несколько весьма неудобных моментов, которые постарался исправить в своем решении этой задачи. Итак, приступим.
Читать дальше →

Подводные камни пользовательских CSS-свойств

Время на прочтение6 мин
Количество просмотров8.8K
Автор курса Нетологии «HTML-верстка» Стас Мельников рассказал о нюансах, которые могут усложнить работу с пользовательскими CSS-свойствами.

Правила синтаксиса названий пользовательских свойств


Мы привыкли, что встроенные CSS-свойства нечувствительны к регистру. Поэтому следующие способы объявления свойства border дадут одинаковый результат:
Читать дальше →

Адаптивная верстка с помощью SCSS и Gulp

Время на прочтение4 мин
Количество просмотров18K
Доброго времени суток, коллеги!

Давно задавался вопросом, как оптимизировать и сделать более удобным код используя @media screen. Ибо код

body{font-size: 1em;}
@media screen and (max-width: 1024px){
    body{font-size: 0.8em;}
}

создает достаточно крупные файлы.
Читать дальше →

Еще 11 полезных инструментов для разработчиков и дизайнеров с Product Hunt

Время на прочтение4 мин
Количество просмотров6.6K
Коллекция Product Hunt продолжает пополняться интересными, толковыми и остроумными решениям, которые разработчики создают для своих коллег и соратников. В этой подборке мы вкратце расскажем о нескольких пользовательских фаворитах последних месяцев, которые позволяют команде облегчить себе жизнь в разных отношениях, а отдельным специалистам — прокачать профессиональные навыки.


Читать дальше →

О трехмерных шутерах на CSS +HTML [перевод]

Время на прочтение3 мин
Количество просмотров15K
Привет, Хабр! Представляю вашему вниманию перевод статьи Building a 3D Game with CSS + HTML автора Michael Bromley.

Не так давно я изучал редко используемые функции CSS — функцию анимации и 3D, а после общения в конференции по JavaScript я собрал вот это demo. Пока я трудился над ним, мне стало любопытно, как далеко можно зайти в конструировании трёхмерной графики на чистом CSS.

image
(скриншот выполнен переводчиком)
Читать дальше →

Адаптивные email-письма без боли и страданий

Время на прочтение6 мин
Количество просмотров37K
Привет, Хабр! Все, кто хоть раз сталкивался с версткой email-писем, знают, что это нудно, утомительно и порой очень сильно раздражает. В большинстве случаев это обусловлено тем, что почтовые клиенты не умеют поддерживать очень многое из того, что мы используем при верстке самых простых веб-страниц. Поэтому дизайн письма делается простым или не делается вовсе, а львиная доля времени уходит на проверку и фиксы багов в многочисленных почтовиках.

В этой статье мы хотим поделиться с вами рецептами верстки красивого, на наш взгляд, и адаптивного письма, которое будет подстраиваться под экран вашего телефона даже в Gmail. А так же рассказать про нюансы, проблемы и тонкости, с которыми мы столкнулись в процессе его создания.
Читать дальше →

8 ключевых решений в разработке на React

Время на прочтение4 мин
Количество просмотров17K
image

Тяжело выбрать, имея так много опций.

React стал open-source проектом в 2013. С тех пор он очень развился. Поискав в интернете, вы можете найти старые посты с разными подходами. Здесь я опишу восемь ключевых решений которые ваша команда должна поддерживать, когда пишут на React.

Вклад авторов