CSS-препроцессоры · Less. Путеводитель для новичков
Если рассматривать препроцессоры вместе с CSS, то получается картина более понятная, нежели чем рассматривать понятие препроцессора отдельно.
Определение
CSS препроцессор (от англ. CSS preprocessor) — это надстройка над CSS, которая добавляет ранее недоступные возможности для CSS, с помощью новых синтаксических конструкций.
Основная задача препроцессора — это предоставление удобных синтаксических конструкций для разработчика, чтобы упростить, и тем самым, ускорить разработку и поддержу стилей в проектах.
CSS препроцессоры преобразуют код, написанный с использованием препроцессорного языка, в чистый и валидный CSS-код.
При помощи препроцессоров вы можете писать код, который нацелен на:
Читабельность для человека
Структурированность и логичность
Производительность
И это лишь малая часть того, что может дать вам препроцессор. Но не стоит забегать вперёд.
Синтаксический сахар
Перед тем, как перейти к дальнейшему рассмотрению CSS-препроцессоров, давайте обновим наш лексикон новым понятием — «синтаксический сахар».
Синтаксический сахар (от англ. syntactic sugar) — это дополнения синтаксиса языка программирования, которые не вносят каких-то существенных изменений или новых возможностей, но делают этот язык более читабельным для человека.
Синтаксический сахар вводит в язык альтернативные варианты записи заложенных в этот язык конструкций. Под альтернативными вариантами записи стоит понимать более короткие или удобные конструкции для человека, которые в конечном итоге будут преобразовываться препроцессором в исходный язык, без синтаксического сахара.
Если попытаться применить это понятие к CSS-препроцессорам, то оно, в общем случае, полностью описывает их суть. Ещё раз напомню, что основной задачей препроцессоров является упрощение и ускорение разработки, а как это ещё можно сделать, если не ввести альтернативные варианты записи?
Какие бывают CSS-препроцессоры?
Пора перейти к более конкретным примерам, а именно к самим CSS-препроцессорам. На момент написания книги можно выделить три популярных препроцессора:
И несколько незначительных для нас игроков:
Closure Stylesheets
CSS Crush
О первой тройке мы поговорим отдельно немногим ниже, а вот о двух последних разговора вообще не будет, в виду их непопулярности. При желании, описания этих препроцессоров с лёгкостью можно найти в поисковике.
Какой смысл использования препроцессоров?
Как я уже отметил выше, основные плюсы — это читабельность кода, структурирование и повышение производительности.
Существуют также и другие причины того, чтобы начать использовать препроцессор уже сегодня. Я хочу заострить на этом внимание, так как разработчики раньше, да многие и сейчас, отнекиваются от использования препроцессоров, находя их сложными, непонятными и ненужными.
CSS — это сложно
Стандартный CSS — это сложно. Синтаксис без использования вложенности, которую предлагают CSS-препроцессоры, просто напросто сложен для зрительного восприятия. Кроме того, нужно помнить имя родителя при вложенности. Отсутствие нормальных переменных и «функций» делает CSS-код грязным и узконаправленным.
Доступная документация
Прошли те времена, когда документация от препроцессоров была доступна только людям «в теме». Сейчас любой желающий может в кратчайшие сроки освоить любой из препроцессоров, причём с минимальными затратами сил.
Простота использования
Использовать препроцессоры стало проще, чем раньше, причём намного проще. Для этого нужно лишь установить программу, которая будет следить за файлами, предназначенными для препроцессора, и при их изменении будет компилировать содержимое этих файлов в чистый CSS-код.
Для более продвинутых пользователей есть специальные сборщики проектов. Не думайте, что если вы используете программу для препроцессоров, а не сборщик проектов, то вы недостаточно круты. На самом деле, такие сборщики предлагают полный контроль и расширенные настройки, а не делают из вас джедая.
Структура и логичность кода
Самым популярным предлагаемым функционалом любого CSS-препроцессора является возможность вкладывать селекторы друг в друга. Я не буду сейчас приводить пример, так как о возможностях Less, включая вложенность, будет написана соответствующая часть книги. На этом этапе вам стоит знать лишь то, что при использовании препроцессоров, можно вкладывать один селектор в другой, а другой в третий, получая что-то, похожее на оглавление книги:
Конечно, в реальной жизни селекторы не могут начинаться с цифр, однако, для проведения параллели между вложенностью и оглавлением, думаю такое упущение здесь уместно.
Примеси
Если говорить совсем кратко, то, используя примеси (от англ. Mixins), можно сделать код переиспользуемым. Это помогает избежать вспомогательных классов в разметке или дублирования свойств от селектора к селектору.
Модульность
Еще одним бонусом, который прямо сейчас уговорил бы меня начать пользоваться CSS-препроцессором, будет возможность вкладывать файлы в файлы, то есть проще говоря, производить конкатенацию файлов в заданной последовательности. Да, это можно организовать и на чистом CSS, но вкупе с другими возможностями получается очень мощный инструмент.
При этом мы получаем возможность делиться модулями (библиотеками примесей), которые создали для своих нужд и посчитали полезными для других людей. Получается, что любой разработчик может загрузить вашу библиотеку и использовать её в своих целях, вызывая по мере необходимости написанные вами примеси.
Почему бы не подождать развития CSS?
Развитие CSS идёт очень маленькими и неуверенными шагами, так как W3C придерживается приоритета скорости срабатывания CSS (производительности). С одной стороны это правильно и очень важно, но с другой — это отсутствие удобства для разработчиков.
В пример поставлю одну из спецификаций CSS4, которую ввели под давлением разработчиков — селектор по родителю. Столь долгий путь от идеи до принятия решения был из-за того, что W3C считало такой селектор медленным и дальнейшее его использование на сайтах привело бы к диким тормозам. Конечно же, речь идёт о повсеместном применении этого селектора, а не о единичных случаях.
Так что не стоит ждать в ближайшее время революций и изменений, способных затмить функционал и возможности CSS-препроцессоров.
Разновидности препроцессоров
Разумеется, как и в любой другой области, всегда есть конкуренция, и на рынке препроцессоров сейчас три главных, враждующих между собой лагеря:
Враждующими я их называю, потому что каждый приверженец одного из препроцессоров считает своим долгом поливать нечистотами представителей других, скажем так, конфессий. Такая неприязнь особенно часто проявляется у любителей препроцессора Sass, который считается старейшим и мощнейшим из всех трёх препроцессоров.
Для полной картины, я хочу привести краткую справку по каждому препроцессору:
Less
Собственно, герой этой книги. Самый популярный на момент написания книги препроцессор. Основан в 2009 году Алексис Сельер (Alexis Sellier) и написан на JavaScript (изначально был написан на Ruby, но Алексис вовремя сделал правильный шаг). Имеет все базовые возможности препроцессоров и даже больше, но не имеет условных конструкций и циклов в привычном для нас понимании. Основным плюсом является его простота, практически стандартный для CSS синтаксис и возможность расширения функционала за счёт системы плагинов.
Sass (SCSS)
Самый мощный из CSS-препроцессоров. Имеет довольно большое сообщество разработчиков. Основан в 2007 году как модуль для HAML и написан на Ruby (есть порт на C++). Имеет куда больший ассортимент возможностей в сравнении с Less. Возможности самого препроцессора расширяются за счёт многофункциональной библиотеки Compass, которая позволяет выйти за рамки CSS и работать, например, со спрайтами в автоматическом режиме.
Имеет два синтаксиса:
Sass (Syntactically Awesome Style Sheets) — упрощённый синтаксис CSS,
который основан на идентации. Считается устаревшим.
SCSS (Sassy CSS) — основан на стандартном для CSS синтаксисе.
Stylus
Самый молодой, но в тоже время самый перспективный CSS-препроцессор. Основан в 2010 году небезызвестной в наших кругах личностью TJ Holowaychuk. Говорят, это самый удобный и расширяемый препроцессор, а ещё он гибче Sass. Написан на JavaScript. Поддерживает уйму вариантов синтаксиса от подобного CSS до упрощённого (отсутствуют :, ;, {} и некоторые скобки).
Основы вёрстки контента
Курс посвящён работе с контентом с помощью CSS и HTML. На сегодняшний день таблицы стилей предоставляют большие возможности по стилизации текста и блоков на странице: фон, цвет, использование аудио и видео. Все эти элементы позволяют создавать красочные и доступные сайты для пользователей. Немало времени уделено изучению новых селекторов, псевдоклассов и псевдоэлементов. Они позволяют неординарно стилизовать контент.
Чему вы научитесь:
Правильно размечать текст, списки, таблицы и медиаэлементы.
Создавать таблицы.
Обращаться к элементам используя широкие возможности селекторов.
Адаптировать страницы для людей с ограниченными возможностями.
Использовать возможности CSS Columns.
Подключать шрифты и правильно их использовать.
CSS3 HTML5 Селекторы Доступность CSS Columns CSS Units
Последнее обновление:
15 июня 2021
Уроки курса
Введение
Узнать о темах и целях курсах. Познакомиться со структурой уроков и их особенностях
Стили текста
Познакомиться с основными стилями, используемые при оформлении текста
Шрифты и работа с ними
Узнать о способах подключения и выбора шрифтов на странице. Научиться управлять размерами, оформлением и интервалами внутри текста. Изучить обобщённое свойство font
Списки
Изучить виды списков в HTML и способы их стилизации
Колонки
Познакомиться с CSS Multi-column Layout и узнать о способах его применения
Медиаэлементы
Узнать о способах добавления медиаэлементов на страницу Изучить возможности при вставке изображений, видео, аудио
Таблицы
Научиться верстать таблицы. Узнать о семантике таблиц
Формы
Изучить создание одного из самых важных элементов на сайте — формы. Научиться использовать стандартные элементы ввода данных и отправки формы
Селекторы
Изучить более сложные селекторы второго и третьего уровня по спецификации W3C
Псевдоклассы
Узнать о возможностях стилизации событий элемента и стилизации по месторасположению элемента. Научиться использовать псевдоклассы
Псевдоэлементы
Познакомиться с псевдоэлементами и научиться генерировать новый контент через CSS
Переполнение
Изучить работу свойства overflow и способах скрытия контента внутри блоков. Узнать о свойстве text-overflow
Испытания
Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.
20 впечатляющих CSS3 примеров, техник и библиотек
В данной подборке собраны самые лучшие и качественные CSS фишки. Тут Вы сможете встретить различные и удивительные демо примеры и техники от знаменитых верстальщиков и дизайнеров, которые стараются доказать, что сейчас возможно сделать практически всё только на чистом CSS. Так же Вы тут сможете встретить несколько уроков в которых подробно рассказывается как сделать подобное творение. Надеюсь, что эта подборка окажется Вам полезной.
Спасибо http://tutorialzine.com и рекомендую:
Размытое меню
Это действительно красивое и качественно выполненное меню на чистом CSS. Правильный и удачный пример использования новых технологий CSS.
Демо Ι Скачать
CSS 3D облака
В этом демо Вы сможете создавать и редактировать причудливые облака в 3D. Данные облака на CSS дают понять нам, что возможности веб технологий практически безграничны.
Перейти
Логотипы на чистом CSS
Это примеры логотипов сделанных только на чистом CSS. Вы только вдумайтесь, при создании не использовались изображения. Это просто нечто.
Перейти
Алфавит с CSS анимацией
Отличный и художественный пример использования CSS в алфавите
Перейти
3D навигация для сайта
Простая но очень стильная панель навигации для сайта, конечно же сделанная с помощью только CSS3. никаких изображений и скриптов.
Перейти
Дудл от Google на CSS
Один из многочисленных дудлов от поисковика Google, сделанный на CSS. Это отличный пример качественного использования CSS анимации
Перейти
Слайдер
Хорошо и качественно сделанный слайдер для картинок. Плюс 4 примера в демо.
Перейти
Двойное анимированное кольцо
Красивое оанимационное и разноцветное кольцо с не сильно большим кодом CSS
Перейти
Размытие на CSS
Мне кажется очень нужный фильтр, тем более он сделан на чистом CSS. с помощью размытия можно привлечь внимание пользователя к определённой точке.
Перейти
Полное руководство по Flexbox
Данная статья о адаптивных блоках Flexbox. В ней рассказывается полностью о данных блоках, правда статья на Английском.
Перейти
Красочное и анимированное меню на CSS3
Красивое выпадающее меню для сайта с иконками. Огромным плюсом является то, что оно сделано полностью на CSS.
Перейти
CSS фильтры
Качественный материал на Английском, в котором рассказывается о применении CSS фильтров на изображения.
Перейти
CSS формы
Пост о CSS формах с многочисленными примерами
Перейти
Прогресс бары на CSS
Урок о том как создать стильные прогресс бары на чистом CSS и с анимацией. Также Вы можете посмотреть пример и скачать исходники.
Перейти
Анимация — Animate.css
Самый популярный проект CSS анимации в интернете на сегодняшний день. И наверное самый простой и качественный, и к тому же бесплатный.
Перейти
Индикаторы загрузки — Spinkit
Скажу честно данные индикаторы уже встречались на блоге, но мне кажется что их стоит ещё раз Вам показать. Так как это самые красивые индикаторы в интернете на CSS.
Перейти
Кнопки
Сейчас кнопками на CSS уже тяжело удивить, но это довольно достойный вариант
Перейти
Генератор для создания переключателей
Небольшое и качественное интернет приложение, с помощью которого Вы сможете создать красивые переключатели для использования на сайте.
Перейти
Всплывающие подсказки
CSS библиотека бесплатных всплывающих подсказок — Hint.css
Перейти
Цветовые схемы
Схемы цветов для людей, которые не любят копаться в коде
Перейти
Новые возможности CSS3
Введение
CSS3 произвел революцию в мире веб разработки, поскольку он принес много новых функциональных возможностей. Эта технология продолжает развиваться и внедрять новые возможности. В Новом, 2015 году будут добавляться новые свойства, про некоторые из них мы расскажем в этой статье.
CSS — маски
В Webkit браузерах CSS-маски функционируют уже давно. В ноябре 2014 года была опубликована новая спецификация CSS масок, теперь мы ждем, когда поддержку данного свойства получат все браузеры.
Что такое маска? Проще говоря, маской можно назвать изображение с белой или черной фигурой и прозрачным фоном. Применяя маску на изображение или элемент, мы получим маскированное изображение.
Пример:
Маски можно использовать сейчас, но, к сожалению, только в браузерах Webkit отображение будет корректным.
Использование масок в Webkit
На движке Webkit маски выполняются очень легко, просто используйте тег mask.
.element {
-webkit-mask: url(‘mask.png’);
}
Давайте попробуем создать пример. Вот наше изображение маски:
Накладывать маску будем на эту фотографию:
Теперь добавим немного кода:
class=»element»>
src=»image.jpeg» alt=»» />
type=»text/css»>
.element {
width: 500px;
overflow: hidden;
}
.element img {
-webkit-mask: url(mask-image.png);
}
В результате мы получим вот такое изображение:
Кроме того, можно использовать свойства. Например, Вы можете установить позицию:
CSS-исключения (CSS Exclusions) — очень мощная функция, позволяющая изменить отображение контента на странице. Используя только одно свойство, можно поменять весь стиль страницы, это очень похоже на редактирование страницы в редакторе WYSIWYG. Давайте посмотрим на самое интересное свойство — “wrap-flow”.
Wrap-flow
Wrap-flow позволяет определить, какое количество элементов влияет на другие, когда они поверх остальных. Зачастую блоки перекрываются. С помощью wrap-flow все элементы адаптируются под верхний элемент на странице.
Wrap-flow имеет несколько настроек:
auto: обычное состояние, ни один из элементов не регулируется
start: все, что после элемента — удаляется
end: удаляется все, что до элемента
both: удаляется контент под объектом
minimum: удаляется сторона с наибольшим количеством контента
maximum: удаляется сторона с наименьшим количеством контента
clear: c двух сторон от объекта всё содержимое удаляется
Диаграмма для помощи:
Композиции и модели смешивания (Composition and Blending)
Режимы смешивания в CSS стали частью официальной спецификации W3C. Это значит, что Вы можете выполнять затемнения основы (color burn) через CSS. Данная спецификация новая, так что возможны изменения прежде, чем она попадет в другие браузеры. У нее такой принцип работы: есть 2 изображения, они накладываются одно на другое с помощью абсолютного позиционирования.
Это будет выглядеть так:
<div>
<img src=»duck.gif» alt=»Duck» />
<img src=»penguin.gif» alt=»Penguin» />
div>
Пример CSS кода:
.blend {
position: relative;
}
.blend .duck {
mix-blend-mode: overlay;
}
В целом вся конструкция выглядит так:
Если Вам интересно, то можете попробовать режимы наложения прямо сейчас. Для этого Вам необходимо скачать Adobe’s experimental webkit browser
CSS – назначение и история. Терминология и синтаксис CSS
История
CSS (Cascading Style Sheets, каскадные таблицы стилей) – язык описания внешнего вида документа, созданного с использованием языка разметки. Языком разметки может быть XML, SVG, XUL, но обычно в этой роли выступает HTML.
Цель: разделить логическую структуру документа (например, HTML-документа) и описание внешнего вида.
разные виды одного документа (экран, принтер, голос)
более «богатый» визуальный язык
сам документ упрощается
упрощается поддержка и разработка
Первое упоминание: 1994 год — Хокон Виум Ли (Håkon Wium Lie). Далее – затишье, к разработке подключается Берт Бос (Bert Bos).
1995 год – интерес со стороны W3C.
После 1995 года: развитие CSS как языка и создание стандарта. Это нужно, чтобы разработчики браузеров включали поддержку возможностей CSS в свои продукты.
Версии стандарта CSS называют уровнями (Levels):
Уровень 1 (CSS1): в конце 1996 года.
Уровень 2 (CSS2): май 1998 года.
Уровень 2, ревизия 1 (CSS2.1): июнь 2011 года.
Уровень 3 (CSS3): официально не вышел, но многие браузеры поддерживают его возможности.
Несмотря на наличие стандартов, некоторые возможности CSS (1, 2, 3) не поддерживаются вообще или поддерживаются «по-особенному» в зависимости от браузера и его версии.
Правила
Таблица стилей – набор правил CSS и комментариев. Таблица выглядит как текст заданного формата и может быть сохранена в файле (с расширением .css).
Регистр не важен (обычно – нижний).
В тексте пробельные символы (более одного) и переводы строк игнорируются.
Комментарии ограничивают при помощи /* и */.
Каждое правило CSS (за исключением так называемых «at-rules») состоит из селектора и блока объявлений.
Селектор описывает элементы документа, к которым применяются визуальные настройки.
Селекторы могут группироваться через запятую (в таком случае блок объявлений применяется к каждому из них).
Блок объявлений записывается в фигурных скобках и содержит одно или несколько объявлений.
Общий вид объявления следующий (есть нюансы): свойство: значение;
Пример правила CSS
p {
color: red;
/* This is a single-line comment */
text-align: center;
}
Значением свойства может быть:
Одно значение из фиксированного набора
Число (целое десятичное число или десятичная дробь)
Процентная запись (число + %)
Размер
Цвет
Адрес (URL)
Строка (в одинарных или двойных кавычках)
Временной промежуток
Величина угла
Для некоторых свойств допустимо задавать несколько значений через пробел.
Значение CSS-свойства может быть снабжено модификатором important в следующей форме: свойство: значение !important; Этот модификатор управляет приоритетом применения значения.
Единицы измерения размера:
Задание цвета:
Использовать имя: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow (это базовые цвета, есть ещё).
Использовать hex-код: #RRGGBB или #RGB (=RRGGBB)
Использовать функции:
rgb(r,g,b)
rgba(r,g,b,a)
hsl(h,s,l)
hsla(h,s,l,a)
Аргументы функций: десятичные числа или проценты.
Углы:
deg (градусы, 0-360)
rad (радианы)
grad (градианы, 1 град.=1/100 прямого угла)
turn (повороты, 1 поворот = 360 градусов).
Время:
s (секунды)
ms (миллисекунды).
В CSS адреса применяются для указания пути к файлу (пример: установка фонового изображения). Чтобы задать адрес, используется функция url(). Внутри скобок пишется относительный или абсолютный адрес, который можно задавать в необязательных одинарных или двойных кавычках.
Что такое CSS? | Преимущества CSS | Версии CSS и их разработчики
Cascading Style Sheets (CSS) – простой язык проектирования разметки, предназначенный для упрощения процесса создания дизайна веб-страниц.
Именно от CSS зависит внешний вид веб-страниц. Используя CSS, Вы можете менять цвета текста, стиль шрифтов, устанавливать интервалы между параграфами, управлять размером их размером и расположением, устанавливать фоновое изображение и применять многие другие эффекты.
CSS легко изучать и читать, при этом этот язык предоставляет большие возможности изменения внешнего вида HTML документа. Обычно, CSS используется в связке с языками разметки вроде HTML или XHTML.
Преимущества CSS
CSS позволяет сохранить время – Вы можете, единожды создав стиль CSS, использовать его со множеством веб-страниц; разработать стиль для любого HTML элемента и использовать его там где захотите.
Страницы загружаются быстрее – если Вы используете CSS, то Вам нет необходимости постоянно повторять стилевые атрибуты языка HTML. Просто создайте одно стилевое правило на CSS для этого тега и оно будет использоваться по всему HTML документу. Меньше кода – быстрее загрузка страницы.
Изменение дизайна веб-страниц становиться проще – единственное что нужно сделать крупное изменение – нужно изменить один стиль, и это изменение затронет все элементы, использующие этот стиль, на веб-странице автоматически.
Больше возможностей – в CSS гораздо больше стилевых атрибутов по сравнению с HTML, поэтому с помощью CSS Вы можете создать куда более привлекательный дизайн в отличии от простого HTML.
Поддержка различных устройств – таблицы стилей позволяют Вам оптимизировать внешний вид контента страницы к любому типу устройств. Используя один и тот же HTML документ, можно предоставлять различные версии дизайна веб-сайта для различных устройств таких как PDA (карманных компьютеров), смартфонов, планшетов и т.п.
Общепризнанные веб-стандарты – сегодня стилевые HTML атрибуты считаются устаревшими и рекомендуется использовать CSS. Поэтому нужно начать использовать CSS на всех веб-страницах уже сейчас, чтобы они были совместимы с будущими версиями браузеров.
Кто создает и поддерживает CSS?
CSS создается и поддерживается группой разработчиков внутри W3C (World Wide Web Consortium), эту группу принято называть «CSS Working Group». CSS Working Group создает специальные документы – спецификации. Когда процесс обсуждения спецификации завершается и она официально утверждается членами W3C, спецификация становится рекомендацией.
Утвержденные спецификации называют рекомендациями потому что W3C не может контролировать фактическую реализацию языка. Программное обеспечение создают независимые компании и организации.
ЗАМЕЧАНИЕ: World Wide Web Consortium (W3C) – группа, которая создает рекомендации о том как следует развиваться Интернету и как он должен работать.
Версии CSS
CSS1 (Cascading Style Sheets, level 1) – рекомендация W3C появившаяся в декабре 1996. Эта версия описывает язык CSS как простую визуальную структурную модель для всех HTML-тегов.
CSS2 – рекомендация W3C появившиеся в мае 1998 года и основанная на CSS1. Эта версия добавила поддержку особых медиа-стилей (звуковые таблицы стилей, различные типы носителей и др.), загружаемых шрифтов, блочной верстки и т.д.
CSS2.1 – рекомендация W3C, принята 7 июня 2011 года.
Более подробная информация – История создания и развития CSS
Вот нашел видео на youtube, посмотрите на досуге, лишним не будет:
По материалам tutorialspoint.com
Каскадные таблицы стилей (CSS) — основы использования
Использование CSS стилей для формы оплаты — Возможности Банка Открытие и Paykeeper
PayKeeper позволяет использовать настраиваемую форму оплаты. Это может понадобиться, если
Необходим собственный дизайн формы оплаты
Необходимо передавать в PayKeeper дополнительную информацию о плательщике
Селекторы описывает
селекторы элементов, используемые в CSS и некоторых других технологиях.
Селекторы используются для выбора элементов в документе HTML или XML,
чтобы прикрепить к ним (стилевые) свойства. Элементы могут быть
выбираются на основе их имени, атрибутов, контекста и других
аспекты.
Редакторы: Тантек Челик, Элика Дж. Этемад, Даниэль
Глазман, Ян Хиксон, Питер Линсс , Джон Уильямс
История
Селекторы 4-го уровня расширяет
уровень 3 с новыми способами выбора
элементы.основанные, например, на том, что они содержат, или на том, что следует за ними.
Редакторы: Элика Дж. Этемад, Таб Аткинс мл.
История
Тесты
CSS Level 2 Revision 1 исправляет ошибки в Рекомендациях CSS 1998 г.
уровень 2 и добавляет несколько очень востребованных функций
изначально планировалось для уровня 3, которые уже широко
реализовано. Но больше всего CSS 2.1 представляет собой «снимок» CSS.
использование: он состоит из всех реализованных функций CSS.
совместимость для HTML и XML на дату публикации
Рекомендация.
Редакторы: Берт Бос, Тантек Челик, Ян Хиксон,
Хокон Виум Ли
История
Предварительный просмотр уровня 2 CSS показывает, как выглядит CSS2 с предложенными исправлениями и избыточностью.
текст заменен ссылками на другие модули CSS. Это не
спецификация сама по себе, но кандидат на следующую (т. е. 2-ю)
доработка CSS уровня 2.
Редакторы: Берт Бос
История
CSS Snapshot 2007 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2006 год.Поскольку большая часть CSS все еще находится в стадии разработки
и часто бывает трудно узнать их состояние, CSS
рабочая группа решила опубликовать этот документ, который содержит только
части CSS, которые стабильны и работают.
Редакторы: Элика Дж. Этемад
История
CSS Snapshot 2010 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2010 год. В этом документе CSS WG призван помочь разработчикам
различать части CSS, готовые к производству
и части, которые все еще являются экспериментальными.
Редакторы: Элика Дж. Этемад
История
CSS Snapshot 2015 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2015 год. В этом документе CSS WG призван помочь разработчикам
различать части CSS, готовые к производству
и части, которые все еще являются экспериментальными.
В этом примечании также содержатся рекомендации по экспериментальному и
частичные реализации, включая правила для так называемого «поставщика»
префиксы о проприетарных и нестабильных функциях.
Редакторы: Элика Дж. Этемад
История
CSS Snapshot 2017 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2017 год. Это преемник аналогичных снимков за 2015, 2010 и 2007 годы. В этом документе CSS WG призван помочь разработчикам
различать части CSS, готовые к производству
и части, которые все еще являются экспериментальными.
В Примечании также определены передовые практики для экспериментальных и
частичные реализации, включая правила для так называемого «поставщика»
префиксы о проприетарных и нестабильных функциях.
CSS Snapshot 2018 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2017 год. Это преемник аналогичных снимков за 2017, 2015, 2010 и 2007 годы.
В этом документе CSS WG нацелена
чтобы помочь разработчикам различать части CSS, которые
готовые к производству и экспериментальные части.
В Примечании также определены передовые практики для экспериментальных и
частичные реализации, включая правила для так называемого «поставщика»
префиксы о проприетарных и нестабильных функциях.
CSS Snapshot 2020 ссылок
ко всем спецификациям, которые вместе представляют состояние CSS
по состоянию на 2017 год. Это преемник аналогичных снимков за 2018, 2017, 2015, 2010 и 2007 годы.В этом документе CSS WG призван помочь разработчикам
различать части CSS, готовые к производству
и части, которые все еще являются экспериментальными.
В Примечании также определены передовые практики для экспериментальных и
частичные реализации, включая правила для так называемого «поставщика»
префиксы о проприетарных и нестабильных функциях.
Макет шаблона сетки (ранее: Advanced Layout) описывает новый способ позиционирования
элементы, использующие ограничения на их выравнивание друг относительно друга и на
их гибкость.Элементы документа объединены в один или несколько
шаблоны, которые напоминают традиционную сетку макета, со строками и
столбцы как в таблице. Его можно применить к странице или к отдельному
элементы, например, для создания формы. Этот модуль и Grid Layout находятся в процессе
слились.
Редакторы: Берт Бос, Сезар Асебаль
Таблицы стилей CSS Aural
Многие в первую очередь визуальные устройства действительно способны производить
звук тоже, иногда даже очень качественный.Аудио
модуль содержит свойства для прикрепления фоновых звуков к
элементы и звуковые эффекты для переходов между состояниями, такие как ссылка
активации или «зависания» над элементом. Ожидаемые возможности
включать наложение нескольких звуков, позиционирование звука влево или
прямо в стереопространстве и воспроизводить звук в цикле.
Редакторы: Дэйв Рэггетт, Дэниел Глазман
История
Тесты
Фоны и границы описывает цвета фона и изображения, а также стиль границ.Новый функционал включает возможность растягивать фон
изображение, чтобы использовать изображения для границ, чтобы скруглить углы
box и добавить тень прямоугольника за пределы границы.
Редакторы: Берт Бос, Элика Дж. Этемад
Фоны и границы
уровень 4 — это хранилище предлагаемых функций для следующих
уровень фонов и границ
модуль. Если (некоторые из) эти функции сохраняются, модуль
в конечном итоге заменит модуль уровня 3.Черновиков не было
опубликовано еще, но в настоящее время ожидаемые функции включают угол
формы, положение фона относительно режима письма (для
автоматически поворачивать, зеркально отражать и / или позиционировать фон в зависимости от
от того, содержит ли элемент вертикальное письмо справа налево
или текст с направлением слева направо) и частичные границы (вырезание частей
край).
Редакторы: Берт Бос, Элика Дж. Этемад, Брэд Кемпер,
Леа Веру
История
Базовый интерфейс пользователя содержит функции для стилизации некоторых интерактивных, динамических аспектов
Веб-страницы: внешний вид элементов формы в их различных состояниях и
больше курсоров и цветов для описания графического интерфейса (графический пользователь
интерфейсы), которые хорошо сочетаются со средой рабочего стола пользователя.
Редакторы: Тантек Челик
История
Описание модели Box Модель макет блочного содержимого в нормальном потоке. Когда документы
размещены на визуальном носителе (например, экране или бумаге), CSS представляет
элементы документа в виде прямоугольных рамок, которые расположены
один за другим или вложены друг в друга в таком порядке
называется потоком . Течение
может быть горизонтальным (типично для большинства языков) или вертикальным (часто
используется для японского и китайского языков).
Редакторы: Элика Дж. Этемад Берт Бос
История
Описание модели Box Модель макет блочного содержимого в нормальном потоке. Уровень 4 расширяется
уровень 3 с возможностью автоматического подавления поля
первый или последний элемент внутри строки или блока (что часто
иначе невозможно, потому что невозможно всегда знать
какой элемент падает на край).
Редакторы: Элика Дж.Etemad
CSS Extended Box Модель
Модель Extended Box, модель обеспечивает дополнительный контроль над расположением поплавков и размером
коробки.
Редакторы: Берт Бос
История
Marquee содержит свойства, управляющие
скорость и направление эффекта «шатра». Шатры — это
механизм прокрутки, не требующий вмешательства пользователя: переполнение
контент сам по себе появляется и исчезает из поля зрения.Шатер в основном
используется на мобильных телефонах. (До апреля 2008 г. свойства marquee
были частью модуля Box.)
Редакторы: Берт Бос
История
Каскадирование и наследование описывает, как значения присваиваются свойствам. CSS позволяет несколько
таблицы стилей, чтобы повлиять на рендеринг документа, и
процесс объединения этих таблиц стилей называется «каскадным». Если
никакое значение не может быть найдено с помощью каскадирования, значение может быть унаследовано
из родительского элемента или используется начальное значение свойства.Кроме того, модуль описывает, как «заданные значения», что является
таблица стилей содержит, преобразуется в «вычисленные значения» и
«Фактические значения».
Редакторы: Элика Дж. Этемад, Таб Аткинс мл., Håkon Wium Lie
История
По сравнению с уровнем 3, уровень 4 добавляет
ключевое слово default, чтобы переопределить нормальный порядок каскадирования и
наследование, и возможность квалифицировать правило ‘@import’ не
только с медиа-запросом, но также
с предложением supports () (подробности см. в условных правилах CSS).
Редакторы: Элика Дж. Этемад / fantasai, Таб Аткинс
Младший
История
Каскадирование и наследование
Уровень 5 расширяет уровень 4 с помощью
возможность классифицировать таблицы стилей на произвольное количество
«Слои»: базовые слои и замещающие слои. Это упрощает
повторно использовать таблицы стилей и добавлять локальные переопределения без необходимости
‘! important’ или очень специфические селекторы.
Цвет определяет
связанные с цветом аспекты CSS, включая прозрачность и
различные обозначения для типа значения <цвет> .
Редакторы: Л. Дэвид Барон, Тантек Челик, Крис
Лилли
История
Color Module Level 4 расширяет Color level 3. Он определяет различные цветовые обозначения, включая
RGB, HSL, шестнадцатеричный, именованные цвета, HWB, Lab, LCH и относительный
цвета (‘color-mod’).Он определяет «цвет» и «непрозрачность».
характеристики. И он предоставляет способы работы в цветовых пространствах, отличных от
sRGB по умолчанию.
Редакторы: Таб Аткинс младший, Крис Лилли, Л. Дэвид Бэрон
История
Шрифты содержат
свойства для выбора шрифтов, а также свойства для шрифта
«Корректировки», например варианты глифов (например, наклонные буквы, мелкие
заглавные буквы, цифры старого стиля) и кернинг. Выбор шрифта идентичен
аналогичный раздел в CSS2.Свойства настройки шрифта являются новыми
до уровня 3. Модуль также содержит правило @ font-face для
загружаемые шрифты, которые ранее были в отдельном модуле.
Модуль со временем будет заменен на более крупные шрифты уровня 4
Редакторы: Джон Даггетт, Пол Нельсон, Джейсон Крэнфорд
Teague, Michel Suignard , Крис Лилли
История
Сгенерированный контент для страниц
Media содержит расширенные свойства для печати, помимо того, что
модуль Paged Media предоставляет.Имеет свойства для создания
сноски, перекрестные ссылки («см. раздел X на странице Y») и
построение бегущих заголовков из заголовков разделов.
Редакторы: Хокон Виум Ли
История
Плавающие страницы были выделены
из сгенерированного контента для страничных медиа. Это
содержит свойства для размещения элементов сверху, снизу или сбоку от
страницу в рендеринге с разбивкой на страницы, а также для размещения элементов в определенных
позиции с переносом текста с обеих сторон.
Редакторы: Йоханнес Вильм, Хокон Виум Ли
История
Создано и заменено
Content определяет, как разместить контент до, после или в
место элемента. Контент может быть текстом или внешним объектом,
например изображение. Например, когда документ содержит элемент,
ссылки на изображение, именно этот модуль позволяет дизайнеру
выберите, будет ли изображение отображаться вместо элемента или нет.
(Расчет размера замененных элементов равен
определены в модуле CSS Image Values.)
Редакторы: Ян Хиксон
История
Гиперссылки Презентация рассматривает различные способы представления гиперссылок. CSS1
уже предоставили псевдоклассы «: посещено» и «: ссылка» на
выберите гиперссылки. Этот модуль предоставит свойства для управления
какие гиперссылки активны и где отображается цель, когда
пользователь переходит по ссылке (например, в новом окне или в строке в
текущий документ). Обратите внимание, что не все ссылки должны быть представлены как
гиперссылки; некоторые могут обрабатываться как заменяемые элементы (см. модуль «Созданное и замененное содержимое») и
некоторые из них выходят за рамки CSS (например, ссылки на скрипты,
определения пространств имен, политики P3P и т. д.)
The Introduction был
удален и заменен серией Примечаний под названием «Снимки CSS». См., например, Снимок 2010 для описания.
Редакторы: Хокон Виум Ли, Эрик А. Мейер , Берт Бос
История
Списки содержат
свойства для списков стилей, в частности различные типы
пули и системы нумерации.
Редакторы: Таб Аткинс младший, Шинью Мураками , Ян Хиксон
Математика CSS
Math — предлагаемый модуль
для свойств, предназначенных для стилизации математических формул, построения
на макете макета «презентационных» элементов MathML. В настоящее время не работает
на.
Редакторы: —
История
Макет с несколькими столбцами содержит свойства для переноса содержимого в гибко определяемые столбцы.
Редакторы: Хокон Виум Ли
История
Тесты
Форматы на основе XML могут использовать «пространства имен» для различения нескольких
использует одно и то же имя элемента друг у друга, и этот черновик
объясняет, как можно расширить селекторы CSS для выбора этих элементов.
на основе их «пространства имен», а также их локального имени.
Редакторы: Элика Дж. Этемад, Энн ван Кестерен, Крис Лилли, Питер Линсс
История
Модель DOM определяет функции, которые встречаются в нескольких
библиотеки программирования (и браузеры) для управления HTML, XML и CSS
документы.Программисты могут скорее вызывать их из своих программ.
чем писать самостоятельно. Некоторые из этих функций связаны с добавлением &
удаление правил и изменение свойств в таблицах стилей CSS. Эти
API-интерфейсы образуют объектную модель CSS или CSS-OM . Они полезны
для автономных программ, а также для скриптов и апплетов. ДОМ
уровень 2 содержит две главы по CSS-OM (объектной модели CSS) и
РГ CSS разработает CSS-OM уровня 3.
Редакторы: Анн ван Кестерен
История
API, представленные в этой спецификации, предоставляют авторам
способ проверки и управления информацией о просмотре документа.Это включает в себя получение положения полей макета элемента,
получение ширины области просмотра через скрипт, а также
прокрутка элемента.
Редакторы: Анн ван Кестерен
История
Тесты
Paged Media расширяет
свойства, которые уже были в CSS2, с новыми для управления такими
такие вещи, как верхние и нижние колонтитулы и номера страниц.
CSS позиционированный макет определяет в CSS один из нескольких способов разметки частей документа.
Он содержит свойства для позиционирования элемента в фиксированной позиции
относительно других позиционированных элементов, чтобы смещать элементы от
их нормальное положение, и разместить их в фиксированном положении на
страница. Свойство z-index определяет, находятся ли элементы впереди
или позади других элементов в той же позиции.
Редакторы: Аррон Эйхольц
История
Уровни презентации вводит способ шагать вперед и назад через несколько
визуализации одного и того же документа, что особенно полезно для
слайд-шоу (выделяйте элементы списка по одному) и
наброски (показать более или менее подробную информацию). Модель такова, что каждый
элемент имеет уровень представления и три стиля (три состояния):
один для случаев, когда браузер находится на более низком уровне представления, один для
точное совпадение и одно, когда уровень представления браузера
над элементом.Браузер должен предлагать пользователю простой
способ повышения и понижения уровня браузера.
Редакторы: Хокон Виум Ли
История
Этот модуль был удален в марте 2008 года. Ключевое слово
‘reader’ — это тип мультимедиа для использования в медиа-запросах (аналогично
«экран», «печать», «проекция» и т. д.). Устройства, которые могут выбрать
для применения правил внутри ‘@media reader’ такие устройства, как экран
читатели, которые отображают страницу на экране и одновременно говорят на ней
времени или отображать страницу и одновременно отображать ее на динамическом
устройство Брайля.К этому типу мультимедиа применяются следующие свойства:
поэтому комбинация свойств экрана, речи и
шрифт Брайля.
Редакторы: Берт Бос
История
Ruby описывает CSS
свойства для управления положением «рубина», которые маленькие
аннотации поверх слов или рядом с ними, особенно часто в
Китайский и японский. Их часто используют для произношения
или значение сложных идеограмм.
Редакторы: Ричард Исида, Пол Нельсон, Мишель Сюиньяр
История
Модуль CSS Scoping
уровень 1 определяет аналог CSS для HTML5 с областью действия
стили, механизмы для стилизации псевдоэлементов («регионов») и
селекторы для теневой модели DOM.’
Редакторы: Таб Аткинс мл., Элика Этемад
История
Grid Layout позволяет настроить гибкую сетку дизайна для
элемент так, чтобы потомки элемента могли быть расположены
относительно этой сетки и, таким образом, быть выровненными друг к другу в двух
Габаритные размеры. Областям сетки можно присвоить имена как для удобства
использования и создать уровень косвенности, который облегчает
переупорядочивание элементов. Как и другие модули сетки / шаблона, этот
модуль строится на основе фреймворка
идеи, которые зародились в 1996 году и позволили, среди прочего,
абсолютное позиционирование в CSS уровня 2.Таким образом, модуль Grid Layout
имеет большое перекрытие с многоколоночным
Макет, Макет шаблона, Гибкий макет коробки, Сетка
Позиционирование и регионы, но не
замените их. Однако ожидается, что шесть модулей могут
в конечном итоге будет сокращено до трех: многоколоночный, гибкий блок,
и третий для сеток / шаблонов / регионов.
Редакторы: Алексей
Могилевский, Phil Cupp, Маркус Мильке, Дэниел Глазман, Таб Аткинс мл., Элика
Я. Этемад / fantasai, Россен Атанасов
История
Уровень 2 модуля Grid Layout расширяет возможности
сетка, в частности с возможностью сделать потомка
элементы элемента сетки, кроме прямых дочерних элементов сетки
Предметы.
«Регионы» — это собирательное название некоторых видов областей на
холст, который можно выбрать псевдоэлементами.Регионы
создается некоторыми другими модулями, такими как Paged Media (который создает области, называемые «полями полей»), Selectors (который создает, например,
область ‘:: first-line’) и шаблон сетки
Макет (который создает «слоты»).
Модуль Regions определяет два типа вещей, которые вы можете делать с регионами: Некоторые виды
регионы могут быть объединены в цепочку, и контент перетекает в них, например
этот текст, который слишком длинный для одной области, не переполняется, а
автоматически продолжается в другом регионе; и, во-вторых, контент
может быть стилизован в зависимости от того, в каком регионе он находится.Например, абзац
который перетекает в две области, может иметь полужирный текст в первой области
и обычный текст во втором, даже если нет элемента
граница.
Речь содержит
свойства, чтобы указать, как документ воспроизводится речью
синтезатор: громкость, голос, скорость, высота звука, реплики, паузы и т.д.
уже был модулем ACSS (Aural CSS) в CSS2, но никогда не был
правильно реализован и несовместим с синтезом речи
Язык разметки (SSML), язык W3C для управления речью
синтезаторы.Поэтому модуль ACSS CSS2 был разделен на
две части: речь (для реальной речи, совместимая с SSML) и аудио (для звуковых эффектов на других устройствах). В
свойства речи на уровне 3 будут такими же, как и на уровне 2,
но имеют разные значения. (Старые свойства все еще можно использовать
с устаревшим типом мультимедиа ‘aural’, но новые должны быть
используется внутри нового носителя «речи», а также в таблицах стилей для
‘все’ СМИ.)
Редакторы: Даниэль Век, Дэйв Рэггетт, Клаудио
Santambrogio, Даниэль
Глазман
История
Синтаксис правил CSS в атрибуте HTML «style» строго
не является частью CSS, но упоминается здесь, потому что это
подготовлено рабочей группой CSS.Это было необходимо, потому что
XHTML 1.0, в отличие от HTML 4.0, не определяет синтаксис
Правила CSS в его атрибуте стиля. Однако спецификация
действительно для всех похожих атрибутов (например, в SVG), а не только для
HTML.
Редакторы: Элика Дж. Этемад, Тантек Челик, Берт Бос, Марк Аттинаси
История
Синтаксис содержит
общая (прямая совместимость) грамматика, которой придерживаются все уровни CSS
к.У каждого свойства также есть ограничения на синтаксис его
value, но их можно найти в других модулях CSS.
Редакторы: Таб Аткинс младший, Саймон Сапин, Л. Дэвид Барон
Модуль таблиц CSS
В таблицах описывается
макет таблиц: строки, столбцы, ячейки и подписи, с их
границы и выравнивания. Модель уровня 3, вероятно, не будет иметь
ничего нового по сравнению с уровнем 2, но это будет описано подробнее
деталь.
Редакторы: Франсуа Реми, Грег Уитворт
История
Текст содержит
связанные с текстом свойства CSS2 (выравнивание, перенос текста,
и т. д.) плюс несколько новых свойств, многие из которых предназначены для работы с текстом в
разные языки и сценарии (разрыв строки, кашида,
перенос и т. д.). Он включает (и заменяет) предложение в
Эскизный международный макет. Также смотрите модуль Line для вещей
например, вертикальное выравнивание внутри линии, вычисление высоты строки и
стили для первой строки / первой буквы.Текстовый модуль достиг CR
статус 2003 года, но реализовано очень мало. Некоторые общие
типографика требовала слишком большого количества свойств, в то время как множество комбинаций
ценности не были полезны. Переписывание началось в 2004 году и должно
приводят к той же функциональности, но с меньшим количеством свойств и
лучше по умолчанию. Текстовый модуль разделен на четыре части:
Текст, режимы ввода, линейная сетка и текст
Украшение.
Редакторы: Элика Дж. Этемад, Кодзи Исии, Шинью Мураками, Пол Нельсон, Мишель Суиньяр, Крис Лилли
История
Режимы записи (ранее: Text Layout) описывает свойства, которые управляют
направление текста: горизонтальные строки текста, расположенные сверху
вниз (нормально для большинства языков), вертикальные строки текста,
складываются справа налево (часто используется для японского языка), или
вертикальные линии, которые складываются слева направо (монгольский).Это также
описывает порядок букв внутри строки (двунаправленность)
и поворот, который может произойти для некоторых букв внутри вертикального
текст.
Уровень 4 расширяет уровень 3 несколькими дополнительными
функции, такие как ‘sideways-lr / sideways-rl’, объединение цифр
горизонтально внутри вертикального текста и автоматически помещает текст
в столбцах, когда текст ортогонален (вертикальный или горизонтальный), чтобы
окружающий текст (горизонтальный или вертикальный).’Sideways-lr’ и
‘sideways-rl’ — это альтернативные режимы вертикального письма, которые очень
полезно для вертикального написания текста в скриптах, которые обычно
горизонтально, например, чтобы написать английский текст на корешках книг или вдоль
край страницы.
Редакторы: Элика Этемад / fantasai, Кодзи Исии
История
Модуль CSS Line Grid
уровень 1 определяет свойства, чтобы упростить выравнивание
строки в соседнем столбце или на двух сторонах листа
бумага, несмотря на изображения или заголовки, которые прерывают обычную сетку.Он также определяет механизмы для выравнивания букв по вертикали в серии.
линий, что является обычным оформлением в идеографических шрифтах, таких как
Японский. (Эти функции ранее были частью режимов записи.)
Редакторы: Элика Этемад, Коджи Исии, Алан Стернс
История
Значения и единицы описывает общие значения и единицы измерения, которые принимают свойства CSS.
Значения и единицы описывает общие значения и единицы измерения, которые принимают свойства CSS.По сравнению с уровнем 3 на этом уровне есть несколько
больше единиц и больше арифметических операций.
Редакторы: Таб Аткинс, fantasai,
История
Модуль Web Fonts был объединен с модулем Fonts. Веб-шрифты позволяют загружать шрифты для использования с документом. В
технология также включена в SVG и, наоборот, можно создавать
шрифты для скачивания в формате SVG. Раньше эта функция была частью
CSS уровня 2, но с пересмотром уровня 2 он был перемещен
до уровня 3.
Редакторы: Джон Даггетт, Крис Лилли , Мишель
Suignard
История
Поведенческие расширения для
CSS определяет свойство «привязки» для XBL. Имущество называлось
«поведение» в первом черновике. Этот проект содержал ряд
другие предложения, которые больше не рассматриваются. (В какой-то степени они
были заменены на XBL.)
Редакторы: Ян Хиксон
История
Гибкая компоновка коробки Модуль определяет ключевые слова flex и inline-flex для
‘display’ свойство, которое заставляет элемент отображаться как
либо столбец, либо ряд дочерних элементов.Дополнительные свойства
определить порядок дочерних полей (слева направо, снизу
сверху и т. д.) и как пространство распределяется между детьми и
промежутки между ними. Модуль в первую очередь предназначен для принуждения
ряды элементов управления в графическом интерфейсе пользователя и равны по высоте или ширине.
Редакторы: Таб Аткинс мл., Элика Дж. Этемад /
fantasai, Россен Атанасов, Алексей
Могилевский , Л. Дэвид Барон , Нил Дикин , Ян Хиксон , Дэвид Хаятт
История
Модуль изображений CSS определяет, как свойства могут ссылаться на изображения по URL-адресу.Все свойства
который может принимать изображения в качестве значения, например ‘background-image’ и
‘list-style-image’ используйте этот синтаксис. Он также определяет цвет
градиенты. как встроенный тип изображения.
Редакторы: Элика Дж. Этемад, Таб Аткинс мл.
История
Значения изображения и заменены
Контентный модуль определяет, как свойства могут относиться к изображениям с помощью
URL. Все свойства, которые могут принимать изображения в качестве значений, например
‘background-image’ и ‘list-style-image’ используйте этот синтаксис.Это также
определяет цветовые градиенты. Модуль уровня 4 расширяет одноименный модуль уровня 3, среди
прочее конические цветовые градиенты.
Фрагментация CSS Модуль определяет свойства, чтобы принудительно или избегать страницы и столбца
перерывы. Он сочетает в себе функции, которые ранее были в двух разных
спецификации, CSS Paged Media и Multi-column Layout.
Редакторы: Россен Атанасов, Элика Дж. Этемад /
фантазия
История
Модуль фрагментации CSS
Уровень 4 расширяет уровень 3 с помощью
контроль над полями при разрывах страниц и другие улучшения.
Редакторы: Россен Атанасов, Элика Дж. Этемад /
фантазия
История
Модуль преобразования CSS определяет 2D-преобразования (повороты, перемещения и т. д.), которые могут быть
применили к элементам после нормальную компоновку (т.е.е., а
transform не влияет на положение окружающих элементов).
Преобразования также доступны в SVG (как значения для атрибута преобразование ), и спецификация является совместной работой.
рабочих групп CSS и SVG.
Редакторы: Саймон Фрейзер, Дин Джексон, Дэвид Хаятт,
Крис Маррин, Эдвард О’Коннор, Дирк Шульце, Арье Грегор
Уровень 2 из преобразований CSS
Модуль расширяет уровень 1 с помощью 3D
трансформирует.
Преобразования 2D
Модуль заменен на CSS.
Модуль трансформирует.
Редакторы: Саймон Фрейзер, Дин Джексон, Дэвид Хаятт,
Крис Маррин, Эдвард О’Коннор
История
The 3D Transformations
Модуль заменен на CSS.
Модуль трансформирует.
Редакторы: Дин Джексон, Дэвид Хаятт, Крис Маррин
История
Модуль переходов определяет свойство для анимации переходов между
псевдоклассы (например,g., когда элемент входит или покидает ‘: hover’
государственный). В течение заданной задержки некоторые значения свойств постепенно
перейти от старого значения к новому, а не мгновенно,
как на уровне 2.
Редакторы: Дин Джексон, Дэвид Хаятт, Крис Маррин,
Сильвен Галино, Л. Дэвид Барон
История
Модуль анимации указывает, какие свойства изменяют свои значения во время анимации,
какие ценности они принимают последовательно и в течение какого времени.Это
не определяет, что вызывает запуск конкретной анимации, только
что происходит во время одного. (Сравните это с модулем переходов, который также анимирует
свойства, но между изменениями состояния, то есть псевдоклассами.)
Редакторы: Дин Джексон, Дэвид Хаятт, Крис Маррин
История
Web Animations совместное
спецификация рабочими группами CSS и SVG. CSS-переходы, CSS-анимация и SVG — все это обеспечивает
механизмы, которые генерируют анимированный контент на веб-странице.Хотя
три спецификации предоставляют много схожих функций, они
описаны в разных терминах. В данной спецификации предлагается
абстрактная анимационная модель, которая включает в себя общие черты
все три спецификации. Эта модель обратно совместима с
текущее поведение этих спецификаций, так что они могут быть
определены в терминах этой модели без каких-либо заметных изменений.
Мобильный профиль CSS описывает подмножество CSS, подходящее для портативных устройств,
например, мобильные телефоны.Этот профиль в дальнейшем заполняет поле «карманный».
тип носителя.
Редакторы: Сванте Шуберт, Робин Берджон, Тед Вугофски, Дуг Доминик,
Питер Старк, Tapas Roy
История
Тесты
Профиль печати CSS описывает подмножество CSS, подходящее для документов, напечатанных на
недорогие принтеры. Это дополнение к профилю печати XHTML.
Редакторы: Элика Дж. Этемад, Мелинда Грант, Джим Бигелоу
История
CSS TV профиль описывает
подмножество CSS, подходящее для документов, отображаемых на телевизоре
наборы, в том числе текстовые документы, транслируемые по цифровому телевидению.
Редакторы: Гленн Адамс, Тантек Челик, Шон Хейс,
Хокон Виум Ли
История
Условные правила CSS определяет несколько способов сделать правила стиля зависимыми от факторов
вне документа, например, на выходном носителе (‘@media’, для
большая часть уже на уровне 2), возможности пользовательского агента,
и URL-адрес документа.
Редакторы: Л. Дэвид Барон
История
Адаптация устройства CSS определяет (1) как исходный содержащий блок соотносится с
область просмотра и (2) как единицы измерения CSS (‘px’, ‘cm’, ‘pt’,
и т.п.) относятся к реальным единицам. Первоначальный содержащий блок — это
гипотетический прямоугольник в модели рендеринга CSS, определяющий
(0,0) положение и значение процентов в корневом элементе.
На уровне 2 CSS он равен области просмотра (т. Е. Окну или
страница, на которой нарисован документ). Этот модуль определяет
Правило ‘@viewport’, которое позволяет исходному содержащему блоку быть
больше или меньше окна просмотра. Он также может установить коэффициент масштабирования,
для изменения сопоставления между единицами CSS и реальными единицами.(‘@viewport’ обычно бесполезен для авторов, но позволяет читателям
избавиться от эффекта любого элемента это может происходить в документах HTML5.)
Редакторы: Руне Лиллесвин
История
Исключения CSS определяет
свойства, устанавливаемые для позиционированных элементов, чтобы они действовали как
«Исключения» и заставляют текст обтекать себя, подобно
как текст обтекает плавающие элементы.
CSS Shapes определяет
свойства для назначения формы (круг, многоугольник или произвольное изображение)
в блок CSS, чтобы длины строк внутри блока были
определяется этой формой, а не полями блока.В
форму также можно использовать для плавающих элементов, чтобы определить, как текст
снаружи поплавок оборачивается вокруг него.
Композиция и смешивание позволяет коробкам не только быть непрозрачными или полупрозрачными, но и
другими способами комбинировать с нижележащими блоками (цветовая разница,
цветовая маска, сдвиг цвета и т. д.) для различных эффектов. Этот модуль
сделано в сотрудничестве с SVG.
Редакторы: Рик Кабанье
История
Эффекты фильтра позволяет
графические фильтры, применяемые к элементу (после того, как он был
визуализирован, но до того, как он был составлен, см. Создание и смешивание). Фильтры могут
размыть элемент, добавить тень, изменить цвета, увеличить контраст,
добавить «текстуру» и т. д. Модуль определяет ряд общих
графические эффекты, но также позволяет использовать фильтры, написанные на OpenGL
(Язык затенения OpenGL ES).Этот модуль создан в сотрудничестве
с SVG.
Редакторы: Винсент Харди, Дин Джексон, Эрик
Дальстрём
История
CSS Masking предоставляет два
средство для частичного или полного скрытия частей визуальных элементов:
маскировка и вырезка. Маскировка описывает, как использовать другой
графический элемент или изображение в виде яркости или альфа-маски. Вырезка
описывает видимую область визуальных элементов. Этот модуль
определяет функции как для CSS, так и для SVG.
Редакторы: Дирк Шульце, Брайан Бертлз, Таб Аткинс
Младший
История
Анонимный блок, в котором заключено содержимое ячейки таблицы или сетки.
слот, и один или несколько блоков внутри гибкого бокса имеют общее, что все они могут быть выровнены по каждому
четырех краев контейнера или по центру между ними
края. Если флексбокс содержит несколько боксов, их также можно
разложить («по ширине») между двумя краями. Модуль Box Alignment определяет
различные свойства для таких выравниваний.Это расследуется
если свойства могут быть расширены для применения к ящикам в других
контексты, в частности нормальный поток. Это позволило бы, например,
содержимое плавающего блока должно быть выровнено по нижнему краю
float, аналогично тому, как ‘vertical-align: bottom’ выравнивает содержимое
ячейки таблицы. Еще одно возможное дополнение — контроль над
выравнивание с помощью гибких полей (например, ‘margin: auto’ без
его ограничения).
Редакторы: Элика Дж. Этемад / fantasai, Таб Аткинс
Младший
История
Модуль оформления текста определяет свойства, управляющие
стиль и расположение различных украшений вокруг текста, обычно
чтобы подчеркнуть это, и это не влияет на расположение текста
сам по себе: ‘text-decoration’ (подчеркивание, надчеркивание, мигание и т. д.),
‘выделение текста’ (восточноазиатские знаки ударения поверх идеографов)
и «тень текста». Эти свойства ранее были в текстовом модуле.
Редакторы: Элика Дж. Этемад, Кодзи Исии
История
Уровень 4 модуля оформления текста расширяет уровень 3 дополнительными возможностями
контроль над различными аспектами декора, такими как стиль
и расположение подчеркиваний.
Редакторы: Элика Дж. Этемад, Кодзи Исии
История
Модуль определения размеров определяет ключевые слова для использования в «ширине» и
свойства ‘height’, чтобы указать, что размер элемента должен
быть как можно более узким или максимально широким, а не
ширина, унаследованная от родительского элемента. Эти ключевые слова разделены
вне определения «ширина» и «высота» в базовой модели коробки и, вероятно, будут объединены обратно
в этот модуль позже.
Редакторы: Таб Аткинс, Элика Дж. Этемад / fantasai
История
Уровень 4 расширяет уровень 3 дополнительными возможностями
ключевые слова для выбора различных алгоритмов определения размера
поле, а также определяет свойство «соотношение сторон», чтобы дать окнам
фиксированное соотношение ширины и высоты, независимо от их размера.
Редакторы: Таб Аткинс, Элика Дж. Этемад / fantasai,
Джен Симмонс
История
Модуль Counter Styles определяет
Правило @ counter-styles, с помощью которого авторы могут определять свои собственные
стили нумерации списков, заголовков разделов, рисунков и т. д.В
стили нумерации с уровня 2 предопределены. Они включают десятичную дробь
(1, 2, 3, 4…), верхний римский (I, II, III, IV…), нижний альфа (a, b, c,
d…) и т. д., а также некоторые стили для маркированных списков, такие как disc
(•).
Редакторы: Таб Аткинс мл.
История
Модуль Каскадных переменных позволяет произвольно
данные (пары имя / значение), которые будут связаны с элементами. Данные
в виде свойств вида var-NAME: VALUE.В
свойства наследуются. Доступ к ним можно получить через DOM и
также упоминается в других свойствах через функционал var (NAME)
обозначение.
Модуль переполнения CSS
уровень 3 определяет свойство «переполнение», которое определяет, как
текст считается слишком широким или слишком высоким для своего поля. Текст
можно оставить для переполнения, обрезки или прокрутки.См. Модуль выделения CSS для различных
механизмы прокрутки и CSS
модуль фрагментации уровня 3 для контроля над тем, как текст
разбит на страницы.
Редакторы: Л. Дэвид Барон
История
Модуль переполнения CSS
level 4 расширяет модуль level-3 механизмом взлома
блок на несколько страниц с отображением одной или всех страниц
показывать в то же время. Псевдоэлемент позволяет выбрать
отдельные страницы и применить к ним некоторый стиль.
Редакторы: Л. Дэвид Барон, Флориан Ривоал
История
Модуль CSS Display
уровень 3 переопределяет свойство ‘display’ как сокращение для
три других свойства, каждое для более или менее независимого аспекта
свойства ‘display’: запускает ли элемент новый блок
или продолжается в строке; как оформлено содержимое элемента;
и есть ли у элемента метка сбоку. Модуль также
определяет новое свойство, которое делает то же самое, что и display: none (т.е.,
не отображать и не произносить элемент). Эти низкоуровневые свойства
Ожидается, что они будут полезны в основном в сценариях.
Редакторы: Таб Аткинс мл.
История
Модуль загрузки шрифтов CSS level 3 определяет часть DOM API для ‘@ font-face’
правило CSS. В частности, он определяет методы, позволяющие сценарию
явно загрузить шрифт (например, чтобы загрузить его раньше, чем средство визуализации
загрузит его сам) и будет проинформирован, когда шрифт будет загружен.
Редакторы: Таб Аткинс мл.
История
CSS изменит модуль
Уровень 1 позволяет автору давать подсказки рендереру о
какие элементы могут каким-либо образом изменить стиль (например,
из-за анимации или переходов) и где скорость имеет решающее значение.
Это может помочь рендереру решить, где ему следует поработать.
досрочно.
Редакторы: Таб Аткинс мл.
История
Модуль неэлементных селекторов
Уровень 1 определяет селекторы для других типов узлов в
древовидный документ, чем элементы.В частности, он обеспечивает
способы выбора атрибутов элементов.
Эти селекторы не действуют в CSS, поскольку стили только для CSS.
элементы. Они предназначены для других контекстов, в которых используются селекторы.
используется для выбора частей дерева, таких как Selectors API и
ЕГО 2.0. Таким образом, они предоставляют альтернативу XPath, когда XPath
непригоден для использования или нежелателен.
Редакторы: Йирка Косек, Таб Аткинс мл.
История
Геометрические интерфейсы определяет API для скриптов, которые манипулируют точками, прямоугольниками,
четырехугольники и матрицы преобразований.
Полный экран больше не
в разработке. Он содержал предложение по API и немного CSS.
селекторы для стиля элементов, которые отображаются на экране в развернутом виде.
Редакторы: Анне ван Кестерен, Тантек Челик
История
Модуль встроенного макета CSS описывает макет в строке и наложение строк, и
также стиль буквиц.Он заменяет модуль CSS Line Layout.
Редакторы: Дэйв Крамер, Элика Дж. Этемад / fantasai,
Стив Зиллес
История
Модуль псевдоэлементов CSS определяет различные псевдоэлементы, то есть части документов, которые
соответствуют чему-то визуализированному, но не непосредственно элементу в
исходный документ. Некоторые из них уже определены в CSS2.
( :: первая строка , :: первая буква и т. Д.),
несколько других являются новыми, например :: selection (selected
текст) и :: заполнитель (текст-заполнитель в
элемент ввода).
Модуль «Селекторы» описывает, как
использовать псевдоэлементы как часть селекторов.
Редакторы: Дэниел Глазман, Элика Дж. Этемад /
fantasai, Алан Стернс
История
Модуль Motion Path определяет
дополнительный способ установить положение и вращение абсолютно
позиционированные элементы. Положение задается траекторией (SVG
shape) и смещение вдоль этой траектории от 0 до 100%. В
в сочетании с анимацией, смещение также может быть анимировано.
Этот модуль является совместной работой рабочих групп SVG и CSS.
Редакторы: Дирк Шульце, Шейн Стивенс
История
Модуль CSS Scroll Snap определяет свойства для
контролировать некоторые аспекты прокрутки переполняющегося элемента: когда
прокручивая мышью или аналогичным устройством, элемент можно сделать
для «привязки» к определенным позициям, например, к первой строке дочернего элемента
элемент или центр изображения. Эти точки привязки могут быть либо
по близости (элемент фиксируется в позиции только тогда, когда
действие прокрутки закончилось рядом с этой позицией) или обязательное (
элемент всегда привязывается к ближайшей точке привязки при прокрутке
действие заканчивается).
Модуль CSS Round Display определяет новые свойства и новые ключевые слова для существующих свойств, чтобы
лучше обрабатывать круглые или закругленные окна просмотра. Он включает в себя, среди
другие вещи, медиа-запросы для выбора правил стиля на основе
форма области просмотра и полярные координаты для абсолютного
позиционирование.
Редакторы: Хёджин Сон, Джихе Хон
История
Модуль базового пользовательского интерфейса CSS описывает свойства и значения CSS для стилизации базового пользовательского интерфейса.
элементы.Он включает и расширяет CSS Basic User
Уровень интерфейса 3, среди прочего, со свойствами для
стиль вставки каретки.
Редакторы: Флориан Ривоал
История
Текстовый модуль CSS , уровень 4 включает и расширяет текстовый модуль CSS уровня 3.
Он определяет разрыв строки, выравнивание и выравнивание, пробелы
обработка и текстовые преобразования.
Редакторы: Элика Дж. Этемад / fantasai, Кодзи Исии,
Алан Стернс
История
Спецификации оперативной группы Houdini (совместное
рабочая группа CSS WG и TAG) стремятся указать низкоуровневый доступ к механизму рендеринга CSS, например
как в обычном браузере, включая e.g., синтаксический анализатор CSS,
модель коробки, загрузка шрифтов, обработка переполнения и прокрутка. An
приложение, использующее такой движок CSS, может, таким образом, переопределить или расширить
некоторые его особенности.
CSS Painting API уровня 1 является одним из
спецификации и определяет API для подключения к функциям, которые
нарисуйте поле CSS на экране, включая его фон, границы
и содержание. Его можно использовать, например, для рисования фона, заданного
алгоритм, а не изображение.
Редакторы: Шейн Стивенс, Ян Килпатрик, декан
Джексон
История
CSS Properties and Values API Level 1 является частью
спецификаций Houdini. Это определяет
API для регистрации новых свойств с помощью механизма CSS. В отличие
в модуль пользовательских свойств (который
позволяет декларативно определять свойства), API позволяет
свойства со специальным синтаксисом и свойства, которые не
наследовать.
CSS Typed OM Level 1 является частью спецификаций Houdini.Он определяет API для
эффективный доступ к значениям свойств в объектной модели CSS,
т.е. обычно в виде чисел, а не в виде строк.
Редакторы: Шейн Стивенс
История
Worklets Level 1 является частью спецификаций Houdini. Он определяет API для
вставьте код JavaScript в конвейер рендеринга.
Редакторы: Ян Килпатрик
История
CSS Layout API Level 1 является частью спецификаций Houdini.Он определяет
JavaScript API для прикрепления скриптов, которые реагируют на вычисляемый стиль и
дерево ящиков меняется.
Редакторы: Грег Уитворт, Ян Килпатрик, Таб.
Аткинс-Биттнер, Шейн Стивенс, Роберт О’Каллахан, Россен Атанасов
Модуль шрифтов уровня 4 расширяет уровень шрифтов 3. Он добавляет поддержку, среди прочего,
цветные шрифты, вариативные шрифты и эмодзи.
Редакторы: Джон Даггетт, Майлз К. Максфилд
История
CSS Rhythmic Sizing Level 1 предоставляет свойство для
установить расстояние между линиями, которое обычно задается линией
высота, которая должна быть округлена до кратного заданного значения.Это позволяет
линии должны оставаться выровненными по фиксированной сетке, даже если есть
случайные строки, которым нужно больше места (например, потому что они содержат
математическая формула или встроенное изображение). Этот модуль возможен
дополнение к модулю Line Grid.
Редакторы: Кодзи Исии, Элика Дж. Этемад / fantasai
История
Модуль Fill and Stroke определяет свойства для установки цветов и шаблонов заливки SVG.
формы и текста.Синтаксис CSS позволяет стилизовать формы SVG.
с (внешней) таблицей стилей, а не с атрибутами на каждом
форма сама. «Заполнение» относится к внутренней части форм,
«Штрих» к краям. Оба могут быть простых цветов, но также
узоры, градиенты или изображения.
Редакторы: Элика Дж. Этемад / fantasai, Tab
Аткинс-Биттнер
История
Модуль содержания предоставляет свойство «содержать», которое особенно полезно в
динамический GUI : Это
заявляет, что элемент не влияет на отображение других
элементы вне себя и не рисуют за пределами своего собственного ящика.Это означает, что элемент можно добавлять и удалять очень быстро,
без пересчета стиля других элементов. Например.,
такой элемент не увеличивает размер своего родителя и не
не увеличивать счетчики списка.
Редакторы: Таб Аткинс, Флориан Ривоал
История
2-й уровень сдерживания Модуль расширяет сдерживание
уровень 1 с дополнительными значениями для свойства «содержать».
Редакторы: Таб Аткинс, Флориан Ривоал
История
Анимации и переходы используют функции синхронизации для
укажите, как скорость анимации меняется в течение
анимация.(Анимация называет их «функциями замедления»,
отсюда и название модуля.) Наиболее распространенными видами являются
предопределенный. Но можно определить и другие, в том числе некоторые
которые пролетают мимо своей цели для эффекта отскока. Этот модуль
определяет возможные значения для всех свойств времени.
Редакторы: Брайан Бертлз, Дин Джексон, Мэтт Рэкоу,
Шейн Стивенс
История
Логические свойства и
Модуль значений предоставляет способы косвенного задания свойств,
в зависимости от направления и режима письма элемента или его
содержащий блок.Например, косвенная установка margin-inline-start
устанавливает одно из четырех свойств полей (margin-top, -right, -bottom
или -left), в зависимости от того, написан ли текст элемента слева
направо, справа налево, сверху вниз или снизу вверх. Это
полезен в простых общих таблицах стилей, таких как стиль User Agent.
листов, но иногда может также сокращать стили для документов,
смешивать текст с письмом слева направо и справа налево, в частности, для
элементы, макеты которых для текста с письмом справа налево и слева направо
(в основном) зеркальное отображение.
Редакторы: Россен Атанасов, Элика Дж. Этемад /
фантазия
История
Модуль CSS Shadow Parts определяет синтаксис селектора (а именно, псевдоэлемент ‘:: part ()’)
для выбора «частей» «теневого дерева».
CSS знает о «замененных элементах», элементах в документе, которые
не отображают собственный контент, а заменяются другим
объект, например изображение или «теневое дерево». Теневое дерево — это
объект, который, как правило, имеет один или несколько настраиваемых аспектов,
называемые «частями», которые настраиваются путем установки свойств CSS на
их.Например, теневое дерево может представлять календарь или встроенный
видеоплеер и можно настроить фон
цвет или шрифт на некоторых кнопках. Какие части существуют (и какие у них
name is), какие свойства применяются к ним и каковы их точные
эффект зависит от объекта. Этот модуль CSS определяет, как
напишите селекторы, выбирающие такую деталь. (См. Также CSS Scoping.)
Редакторы: Таб Аткинс-Биттнер, Фергал Дейли
История
Спецификация CSS Spatial
Уровень навигации 1 определяет общую модель направленного
навигация: вверх, вниз, влево, вправо, внутри группы или между группами
элементов; и он определяет функции и события JavaScript, которые
реализовать эту модель.Он не определяет, какие нажатия клавиш или другие
физические действия вызывают эти события. Это зависит от агента пользователя.
Модуль базового пользовательского интерфейса CSS
определяет свойства, которые помогают указать, что считается верхним, левым,
и т.п.
Редакторы: Джихе Хонг, Флориан Ривоал
История
Модуль CSS Color Adjust определяет способы, с помощью которых автор может адаптировать стиль к цвету пользователя.
схема, и, в частности, «светлая» цветовая схема (т.е., темный
текст на светлом фоне), «темная» схема (т. е. светлый текст на
темный фон) или удобную для печати схему (т. е. использование меньшего
чернила). Медиа-запрос позволяет узнать
если система имеет определенную цветовую схему и свойство позволяет
установите начальные значения цвета и фона на значения из
схема системы.
Модуль также определяет, как пользователь может установить цветовую схему на
страницу (по причинам доступности) и как автор может адаптировать
стиль к такой вынужденной схеме.
Модуль Color определяет ключевые слова
представляющие системные цвета. Они устарели, но они также
следуйте цветовой схеме системы.
Animation Worklet API определяет два API для создания анимации в JavaScript. Код для
такие анимации можно запускать в отдельном потоке (фон
процесс), так что основной поток не прерывается или может быть
с учетом приоритета.
Редакторы: Маджид Валипур, Роберт Флэк, Стивен
Макгрюер
История
Resize Observer определяет
API для скриптов, которые должны реагировать на изменения в элементе
размер.
Редакторы: Алекс Тотич, Грег Уитворт
История
Color Level 5 расширяет Color Level 4 обозначениями для относительных
цвета: цвета между другими цветами, более светлые или
темнее заданного цвета или дополнительных.
Редакторы: Крис Лилли, Уна Кравец, Леа Веру,
Адам Аргайл
История
CSS Custom Highlight API
Уровень 1 определяет библиотеку функций, которые могут быть вызваны
из сценария для выбора (выделения) одного или нескольких диапазонов текста в
документ и присвойте им имя. Он также определяет селектор CSS для
стиль таких именованных диапазонов текста из таблицы стилей.
Например, если диапазон текста был выбран скриптом и
присвоил имя «моя-ключевая-фраза», правило CSS
‘:: highlight (my-key-фраза) {color: blue} «делает этот текст синим.
Уровень 1 содержит только самые основные свойства CSS, такие как
«поля», «отступы», «фон», «цвет» и «шрифт» с
ограничения на допустимые значения. Это был первый уровень CSS.
должна быть завершена (в 1996 г.) и соответствовала возможностям
реализации того времени. В настоящее время это только исторический
интерес; все реализации должны поддерживать уровень 2 и
вероятно, большие части уровня 3 тоже.
Редакторы: Хокон Виум Ли, Берт Бос
SVG
Некоторые свойства предназначены специально для стилизации SVG (или аналогичных
графические языки) и определены в спецификации SVG, а не в
модуль CSS. Их можно использовать вместе с другими свойствами в
таблица стилей, но обычно не применяется к одним и тем же элементам. Они
указать такие параметры, как цвет обводок и заливок, а также
форма концов штрихов.
Что такое CSS, как он работает и для чего используется?
Подходит ли вам технология? Пройдите нашу 3-минутную викторину!
Ты выучишь: Если вам подходит карьера в сфере технологий Какая техническая карьера соответствует вашим сильным сторонам? Какие навыки вам понадобятся для достижения ваших целей
Помните HTML (язык гипертекстовой разметки)? Язык кодирования, который служит основой для всей веб-разработки? Что ж, если HTML — это первый язык, который вам захочется выучить, когда вы заинтересованы в создании веб-сайтов, то его двоюродный брат CSS — на втором месте.
Что такое CSS? И как это связано с HMTL?
CSS означает каскадные таблицы стилей с упором на «стиль». В то время как HTML используется для структурирования веб-документа (определения таких вещей, как заголовки и абзацы, а также для встраивания изображений, видео и других медиафайлов), CSS проходит через него и определяет стиль вашего документа — макеты страниц, цвета и шрифты определяются. с CSS. Думайте о HTML как о фундаменте (он есть в каждом доме), а о CSS как о эстетическом выборе (есть большая разница между викторианским особняком и современным домом середины века).
Как работает CSS?
CSS привносит стиль на ваши веб-страницы, взаимодействуя с элементами HTML. Элементы — это отдельные компоненты HTML веб-страницы, например абзац, которые в HTML могут выглядеть следующим образом:
Это мой абзац!
Если вы хотите, чтобы этот абзац отображался розовым и жирным шрифтом для людей, просматривающих вашу веб-страницу через веб-браузер, вы должны использовать код CSS, который выглядит следующим образом:
p {цвет: розовый; font-weight: жирный; }
В этом случае «p» (абзац) называется «селектором» — это часть кода CSS, определяющая, на какой элемент HTML будет влиять стиль CSS.В CSS селектор написан слева от первой фигурной скобки. Информация в фигурных скобках называется объявлением и содержит свойства и значения, которые применяются к селектору. Свойства — это такие вещи, как размер шрифта, цвет и поля, а значения — это настройки этих свойств. В приведенном выше примере «color» и «font-weight» являются свойствами, а «pink» и «bold» — значениями. Полный комплект
в скобках
{цвет: розовый; font-weight: жирный; }
— это объявление, и снова «p» (означает абзац HTML) — это селектор.Эти же основные принципы можно применять для изменения размеров шрифта, цвета фона, отступов полей и т. Д. Например. . .
Корпус
{background-color: lightblue; }
. . . сделает фон вашей страницы голубым или. . .
п {размер шрифта: 20 пикселей; красный цвет; }
. . .создаст абзац шрифтом 20 пунктов с красными буквами.
Внешний, внутренний или встроенный CSS?
Однако вам может быть интересно, как этот код CSS на самом деле применяется к содержимому HTML.Как и HTML, CSS пишется в виде простого текста с помощью текстового редактора или текстового процессора на вашем компьютере, и есть три основных способа добавить этот код CSS на ваши HTML-страницы. Код CSS (или таблицы стилей) может быть внешним, внутренним или встроенным. Внешние таблицы стилей сохраняются как файлы .css и могут использоваться для определения внешнего вида всего веб-сайта с помощью одного файла (вместо добавления отдельных экземпляров кода CSS к каждому элементу HTML, который вы хотите настроить). Чтобы использовать внешнюю таблицу стилей, ваш.html файлы должны включать раздел заголовка, который ссылается на внешнюю таблицу стилей и выглядит примерно так:
<заголовок>
Это свяжет файл .html с вашей внешней таблицей стилей (в данном случае mysitestyle.css), и все инструкции CSS в этом файле будут применяться к вашим связанным страницам .html.
Внутренние таблицы стилей — это инструкции CSS, записанные непосредственно в заголовок конкретного файла.html-страница. (Это особенно полезно, если у вас есть одна страница на сайте, которая имеет уникальный внешний вид.) Внутренняя таблица стилей выглядит примерно так. . .
<заголовок>
<стиль>
Тело {цвет фона: чертополох; }
P {размер шрифта: 20 пикселей; цвет: средне-голубой; }
. . . цвет фона чертополоха и абзацы из 20 пунктов, средний синий шрифт теперь будут применены к этой единственной странице .html.
Наконец, встроенные стили — это фрагменты CSS, записанные непосредственно в код HTML и применимые только к одному экземпляру кода.Например:
Обратите внимание на этот заголовок!
приведет к тому, что один конкретный заголовок на одной странице .html будет отображаться фиолетовым шрифтом размером 40 пунктов.
Вообще говоря, внешние таблицы стилей являются наиболее эффективным методом реализации CSS на веб-сайте (легче отслеживать и реализовывать стиль сайта из специального файла CSS), в то время как внутренние таблицы стилей и встроенный стиль могут использоваться в случае в индивидуальном порядке, когда необходимо внести индивидуальные изменения в стиль.
Итак, если HTML является основой, каркасами, стенами и балками, поддерживающими ваш веб-сайт, подумайте о CSS как цвете краски, стилях окон и ландшафтном дизайне, которые появятся позже. Вы ничего не добьетесь, не заложив сначала эту основу, но, как только вы это сделаете, вам захочется продолжить работу с каким-то стилем, а CSS — это билет, чтобы раскрыть ваш внутренний декоратор.
Подходит ли вам технология? Пройдите нашу 3-минутную викторину!
Ты выучишь: Если вам подходит карьера в сфере технологий Какая техническая карьера соответствует вашим сильным сторонам? Какие навыки вам понадобятся для достижения ваших целей
20 советов по оптимизации производительности CSS
В этой статье мы рассмотрим 20 способов оптимизации CSS, чтобы он загружался быстрее, с ним было проще работать и он был более эффективным.
Согласно последним отчетам HTTP Archive, Интернет остается раздутым беспорядком с мифическим средним веб-сайтом, для которого требуется 1700 КБ данных, разделенных на 80 HTTP-запросов, и требуется 17 секунд для полной загрузки на мобильном устройстве.
Полное руководство по снижению веса страницы содержит ряд предложений. В этой статье мы сконцентрируемся на CSS. По общему признанию, CSS редко является самым серьезным виновником, и типичный сайт использует 40 КБ на пяти таблицах стилей. Тем не менее, есть еще варианты оптимизации, которые вы можете сделать, и способы изменить то, как мы используем CSS, которые повысят производительность сайта.
Вы не сможете решить проблемы с производительностью, если не знаете, в чем заключаются ошибки. Браузерные DevTools — лучшее место для начала: запустите из меню или нажмите F12 , Ctrl + Shift + I или Cmd + Alt + I для Safari на macOS.
Все браузеры предлагают аналогичные возможности, а инструменты открываются медленно на плохо работающих страницах! Однако самые полезные вкладки включают следующие…
На вкладке Network отображается каскадный график ресурсов по мере их загрузки.Для достижения наилучших результатов отключите кеш и подумайте о снижении скорости сети. Ищите файлы, которые медленно загружаются, или блокируйте другие. Браузер обычно блокирует рендеринг браузера во время загрузки и анализа файлов CSS и JavaScript.
Вкладка Performance анализирует процессы браузера. Начните запись, выполните действие, например перезагрузку страницы, затем остановите запись, чтобы просмотреть результаты. Ищем:
Чрезмерное количество макетов / перекомпоновок действий, при которых браузер был вынужден пересчитать положение и размер элементов страницы.
Дорогая раскрашивает экшенов, где меняются пиксели.
Составление действий, при которых нарисованные части страницы объединяются для отображения на экране. Обычно это действие с наименьшей загрузкой процессора.
Браузеры на базе Chrome предоставляют вкладку Audits , на которой запускается инструмент Google Lighthouse. Он часто используется разработчиками прогрессивных веб-приложений, но также дает рекомендации по производительности CSS.
Параметры онлайн
В качестве альтернативы используйте инструменты онлайн-анализа, на которые не влияют скорость и возможности вашего устройства и сети.Большинство может протестировать из других мест по всему миру:
2. Сначала добивайтесь больших побед
CSS вряд ли будет прямой причиной проблем с производительностью. Однако он может загружать важные ресурсы, которые можно оптимизировать за считанные минуты. Примеры:
Активируйте сжатие HTTP / 2 и GZIP на своем сервере
Использование сети доставки контента (CDN) для увеличения количества одновременных HTTP-подключений и репликации файлов в другие места по всему миру
Удалите неиспользуемые файлы.
Изображения обычно являются основной причиной большого размера страницы, однако многие сайты не могут эффективно оптимизироваться:
Изменение размера растровых изображений. Смартфон начального уровня будет делать многомегапиксельные изображения, которые невозможно отобразить полностью на большом экране высокой четкости. Для некоторых сайтов требуются изображения шириной более 1600 пикселей.
Убедитесь, что вы используете соответствующий формат файла. Обычно JPG лучше всего подходит для фотографий, SVG — для векторных изображений, а PNG — для всего остального. Вы можете поэкспериментировать, чтобы найти оптимальный тип.
Используйте инструменты изображения, чтобы уменьшить размер файла за счет чередования метаданных и увеличения коэффициентов сжатия.
Тем не менее, имейте в виду, что x Кбайт данных изображения — это , а не эквивалент x Кбайт кода CSS. Двоичные изображения загружаются параллельно и требуют небольшой обработки для размещения на странице. CSS блокирует рендеринг и должен быть преобразован в объектную модель, прежде чем браузер сможет продолжить работу.
3. Замените изображения эффектами CSS
Редко бывает необходимо использовать фоновые изображения для границ, теней, закругленных краев, градиентов и некоторых геометрических фигур.Определение «изображения» с помощью кода CSS требует значительно меньшей полосы пропускания, и его легче изменить или анимировать позже.
4. Удалите ненужные шрифты
Службы
, такие как Google Fonts, позволяют легко добавлять пользовательские шрифты на любую страницу. К сожалению, одна или две строки кода могут получить сотни килобайт данных шрифта. Рекомендации:
Используйте только нужные шрифты.
Загружайте только нужные веса и стили — например, римский шрифт, 400, без курсива.
По возможности ограничивайте наборы символов.Шрифты Google позволяют выбирать определенные символы, добавляя значение & text = к URL-адресу шрифта — например, fonts.googleapis.com/css?family=Open+Sans&text=SitePon для отображения «SitePoint» в Open Sans.
Рассмотрите вариативные шрифты, которые определяют несколько весов и стилей путем интерполяции, чтобы файлы были меньше. В настоящее время поддержка ограничена Chrome, Edge и некоторыми версиями Safari, но она должна быстро расти. См. Как использовать вариативные шрифты.
Учитывайте шрифты ОС.Ваш веб-шрифт размером 500 КБ может быть фирменным, но заметит ли кто-нибудь, если вы переключитесь на общедоступные Helvetica или Arial? Многие сайты используют пользовательские веб-шрифты, поэтому стандартные шрифты ОС гораздо реже, чем были!
5. Избегайте
@import
Ат-правило @import позволяет включать любой файл CSS в другой. Например:
Кажется, это разумный способ загрузки более мелких компонентов и шрифтов. Это не . @import правила могут быть вложенными, поэтому браузер должен загружать и анализировать каждый файл последовательно.
Несколько тегов в HTML будут загружать файлы CSS параллельно, что значительно более эффективно, особенно при использовании HTTP / 2:
Впрочем, могут быть и более предпочтительные варианты…
6.Объединить и минимизировать
Большинство инструментов сборки позволяют объединить все части в один большой файл CSS, в котором удалены ненужные пробелы, комментарии и символы.
Конкатенация менее необходима для HTTP / 2, который передает и мультиплексирует запросы. В некоторых случаях отдельные файлы могут быть полезны, если у вас есть небольшие, регулярно меняющиеся ресурсы CSS. Однако большинству сайтов, вероятно, будет выгодна отправка одного файла, который немедленно кэшируется браузером.
Минификация может не принести значительных преимуществ, если у вас включен GZIP.Тем не менее, реальных недостатков нет.
Наконец, вы можете рассмотреть процесс сборки, который последовательно упорядочивает свойства в объявлениях. GZIP может максимизировать сжатие, когда в файле используются часто используемые строки.
7. Используйте современные методы макета
В течение многих лет для разметки страниц было необходимо использовать CSS float . Техника — это хитрость. Это требует большого количества кода и настройки полей / отступов, чтобы макеты работали. Даже в этом случае поплавки будут ломаться при меньших размерах экрана, если не будут добавлены медиа-запросы.
Современные альтернативы:
CSS Flexbox для одномерных макетов, которые (могут) переходить в следующую строку в соответствии с шириной каждого блока. Flexbox идеально подходит для меню, галерей изображений, карточек и т. Д.
CSS Grid для двумерных макетов с явными строками и столбцами. Сетка идеально подходит для макетов страниц.
Оба варианта проще в разработке, в них используется меньше кода, они могут адаптироваться к любому размеру экрана и отрисовываются быстрее, чем с плавающей точкой, потому что браузер изначально может определить оптимальную компоновку.
8. Уменьшите код CSS
Самый надежный и быстрый код — это код, который вам никогда не нужно писать! Чем меньше ваша таблица стилей, тем быстрее она будет загружена и проанализирована.
Все разработчики начинают с хорошими намерениями, но со временем CSS может раздуться по мере увеличения количества функций. Легче сохранить старый ненужный код, чем удалить его и что-то сломать. Несколько рекомендаций для рассмотрения:
Остерегайтесь больших фреймворков CSS. Маловероятно, что вы будете использовать большой процент стилей, поэтому добавляйте модули только по мере необходимости.
Организуйте CSS в файлы меньшего размера (части) с четкими обязанностями. Виджет карусели легче удалить, если CSS четко определен в файле widgets / _carousel.css .
Рассмотрите методологии именования, такие как БЭМ, для помощи в разработке дискретных компонентов.
Избегайте глубоко вложенных объявлений Sass / препроцессора. Расширенный код может стать неожиданно большим.
Избегайте использования ! Important для отмены каскада.
Избегайте встроенных стилей в HTML.
Инструменты, такие как UnCSS, могут помочь удалить избыточный код путем анализа вашего HTML, но будьте осторожны с состояниями CSS, вызванными взаимодействием JavaScript.
9. Держитесь за Каскад!
Развитие CSS-in-JS позволило разработчикам избегать глобального пространства имен CSS. Обычно во время сборки создаются случайно сгенерированные имена классов, поэтому конфликт компонентов становится невозможным.
Если CSS-in-JS улучшил вашу жизнь, продолжайте использовать его. Однако лучше понимать преимущества каскада CSS, чем работать против него в каждом проекте.Например, вы можете установить шрифты, цвета, размеры, таблицы и поля формы по умолчанию, которые универсально применяются к каждому элементу в одном месте. Объявлять каждый стиль в каждом компоненте требуется редко.
10. Упростите селекторы
Даже самые сложные селекторы CSS занимают миллисекунды для синтаксического анализа, но снижение сложности приведет к уменьшению размеров файлов и облегчению синтаксического анализа браузера. Вам действительно нужен такой селектор ?!
body> main.main> section.first h3: nth-of-type (odd) + p :: first-line> a [href $ = ".pdf "]
Опять же, будьте осторожны с глубоким вложением в препроцессоры, такие как Sass, где могут быть непреднамеренно созданы сложные селекторы.
11. Опасайтесь дорогой недвижимости
Некоторые свойства отображаются медленнее, чем другие. Для дополнительной дряблости попробуйте разместить тени на всех ваших элементах!
Производительность браузера будет отличаться, но, как правило, все, что вызывает перерасчет перед рисованием, будет более затратным с точки зрения производительности:
край-радиус
тень
непрозрачность
преобразование
фильтр
позиция: фиксированная
12.Принять CSS-анимацию
Нативные переходы и анимация CSS всегда будут быстрее, чем эффекты на основе JavaScript, которые изменяют те же свойства. CSS-анимация не будет работать в старых браузерах, таких как IE9 и ниже, но эти пользователи никогда не узнают, чего им не хватает.
Тем не менее, избегайте анимации ради этого. Незначительные эффекты могут улучшить взаимодействие с пользователем без ущерба для производительности. Излишняя анимация может замедлить работу браузера и вызвать у некоторых пользователей укачивание.
13. Избегайте анимации дорогих объектов недвижимости
Анимация размеров или положения элемента может привести к изменению макета всей страницы в каждом кадре. Производительность можно улучшить, если анимация влияет только на этап композитинга . Наиболее эффективное использование анимации:
непрозрачность и / или
преобразовать для перемещения (перемещения), масштабирования или поворота элемента (исходное пространство, используемое элементом, не изменяется).
Браузеры часто используют графический процессор с аппаратным ускорением для визуализации этих эффектов.Если ни один из них не идеален, рассмотрите возможность удаления элемента из потока страницы с position: absolute , чтобы его можно было анимировать на отдельном слое.
14. Укажите, какие элементы будут анимированы
Свойство will-change позволяет авторам CSS указывать, что элемент будет анимирован, чтобы браузер мог заранее оптимизировать производительность. Например, чтобы объявить, что к элементу будет применено преобразование :
.myelement {
будет-изменить: преобразовать;
}
Можно определить любое количество свойств, разделенных запятыми.Однако:
используйте will-change как последнее средство для устранения проблем с производительностью
не применяйте его ко многим элементам
дайте ему достаточно времени для работы: то есть не запускайте анимацию сразу.
15. Принять изображения SVG
Масштабируемая векторная графика (SVG) обычно используется для логотипов, диаграмм, значков и более простых диаграмм. Вместо того, чтобы определять цвет каждого пикселя, как растровые изображения JPG и PNG, SVG определяет формы, такие как линии, прямоугольники и круги в XML.Например:
Simpler SVG меньше, чем эквивалентные растровые изображения, и могут бесконечно масштабироваться без потери четкости.
SVG может быть встроен непосредственно в код CSS в качестве фонового изображения. Это может быть идеальным для небольших многоразовых значков и позволяет избежать дополнительных HTTP-запросов. Например:
.mysvgbackground {
background: url ('data: image / svg + xml; utf8, ') по центру без повтора;
}
16. Стилизация SVG с помощью CSS
Чаще SVG встраиваются непосредственно в документ HTML:
<круг cx = "400" cy = "300" r = "50" />
Это добавляет узлы SVG непосредственно в DOM.Следовательно, все атрибуты стиля SVG можно применить с помощью CSS:
.
круг {
ширина штриха: 1em;
}
.mysvg {
ширина штриха: 5 пикселей;
ход: # f00;
заполнить: # ff0;
}
Объем встроенного кода SVG уменьшен, и стили CSS можно повторно использовать или анимировать по мере необходимости.
Обратите внимание, что использование SVG в теге или в качестве фонового изображения CSS означает, что они отделены от DOM, и стили CSS не будут иметь никакого эффекта.
17.Избегайте использования растровых изображений Base64
Стандартные растровые изображения JPG, PNG и GIF могут быть закодированы в строку base64 в URI данных. Например:
кодировка base64 обычно на 30% больше, чем ее двоичный эквивалент
браузер должен проанализировать строку, прежде чем ее можно будет использовать
изменение изображения делает недействительным весь (кешированный) файл CSS.
Хотя выполняется меньшее количество HTTP-запросов, это редко дает заметное преимущество — особенно по HTTP / 2-соединениям. В общем, избегайте встраивания растровых изображений, если изображение вряд ли будет часто меняться, а результирующая строка base64 вряд ли будет превышать несколько сотен символов.
18. Рассмотрите критический CSS
Те, кто использует инструменты анализа страниц Google, часто будут видеть предложения «встроенный критический CSS» или «уменьшить количество таблиц стилей, блокирующих рендеринг» .Загрузка файла CSS блокирует рендеринг, поэтому производительность можно улучшить, выполнив следующие действия:
Извлеките стили, используемые для визуализации элементов над сгибом. Могут помочь такие инструменты, как criticalCSS.