О спецификации css2


Содержание

Веб-библиотека

Поиск

О спецификации CSS2

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

Спецификация разрабатывалась для представления в электронном и в печатном виде. Хотя оба эти представления, без сомнения, будут схожи, читатели обнаружат и некоторые различия. Например, в печатной версии, очевидно, невозможен переход по гиперссылкам, а в электронной версии не будет номеров страниц. В случае других несовпадений главной версией спецификации считается электронный вариант.

Лекция 1. О спецификации CSS2

Эта спецификация определяет Каскадные таблицы Стилей, уровень 2 (CSS2). CSS2 — это язык таблиц стилей, позволяющий авторам и пользователям подключать стили (например, шрифты, пробелы и звуковые сигналы) в структурированные документы (например, документы HTML и приложения XML). CSS2 упрощает создание и обслуживание Web-сайта путём разделения структуры и стиля представления документов.

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

Этот документ был просмотрен Членами W3C и другими заинтересованными сторонами и одобрен Директором как Рекомендации W3C. Это неизменяемый документ, он может использоваться как справочный материал или цитироваться в других документах. Задачей W3C является привлечение внимания к Рекомендациям и этой спецификации и её широкое распространение. Это расширит функциональные возможности Web.

Список текущих Рекомендаций W3C и другую техническую документацию можно найти на: http://www.w3.org/TR.

Публичная дискуссия о возможностях CSS проходит на: www-style@w3.org.

Спецификация CSS2 доступна в следующем формате:

Спецификация CSS2 (fb2)

Название: Спецификация CSS2

Содержание

Лекция 1. О спецификации CSS2

Лекция 2. CSS2. Введение

Лекция 3. Соответствие: Требования и Рекомендации

Лекция 4. Синтаксис CSS2 и базовые типы данных

Лекция 5. Селекторы

Лекция 6. Установка значений свойств. Каскадирование и Наследование

Лекция 7. Типы носителя

Лекция 8. Модель бокса

Лекция 9. Модель визуального форматирования

Лекция 10. Модель визуального форматирования. Детали

Лекция 11. Визуальные эффекты


Лекция 12. Генерируемое содержимое, автоматическая нумерация и списки

Лекция 13. Страничные носители

Лекция 14. Цвета и фон

Лекция 15. Шрифты

Лекция 16. Текст

Лекция 17. Таблицы

Лекция 18. Интерфейс пользователя

Лекция 19. Звуковые таблицы стилей

Дополнение. Приложение A. Образец таблицы стиля для HTML 4.0

Дополнение. Приложение B. Изменения по сравнению с CSS1

Дополнение. Приложение C. Замечания по реализации и выполнению для шрифтов

Дополнение. Приложение D. Грамматика CSS2

Дополнение. Приложение F. Индекс свойств

Дополнение. Приложение G. Индекс дескрипторов

Лекция 1. О спецификации CSS2

Эта спецификация определяет Каскадные таблицы Стилей, уровень 2 (CSS2). CSS2 — это язык таблиц стилей, позволяющий авторам и пользователям подключать стили (например, шрифты, пробелы и звуковые сигналы) в структурированные документы (например, документы HTML и приложения XML). CSS2 упрощает создание и обслуживание Web-сайта путём разделения структуры и стиля представления документов.

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

Этот документ был просмотрен Членами W3C и другими заинтересованными сторонами и одобрен Директором как Рекомендации W3C. Это неизменяемый документ, он может использоваться как справочный материал или цитироваться в других документах. Задачей W3C является привлечение внимания к Рекомендациям и этой спецификации и её широкое распространение. Это расширит функциональные возможности Web.

Список текущих Рекомендаций W3C и другую техническую документацию можно найти на: http://www.w3.org/TR.

Публичная дискуссия о возможностях CSS проходит на: www-style@w3.org.

Спецификация CSS2 доступна в следующем формате:

HTML: http://www.w3.org/TR/1998/REC-CSS2-19980512 и в других форматах на W3C.

В случае разночтений между различными формами спецификации, http://www.w3.org/TR/1998/REC-CSS2-19980512 имеет приоритет.

Английская версия этой спецификации является единственным нормативным документом. Однако переводы этого документа можно найти по адресу http://www.w3.org/Style/css2-updates/translations.html. (обратно)

Список ошибок и опечаток, найденных в этой спецификации (в английской версии), находится в http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html


Об ошибках, замеченных Вами в этом документе, сообщайте, пожалуйста, по адресам: css2-editors@w3.org и a_pyramidin@yahoo.com (переводчик русской версии).

Официальная нормативная версия этой спецификации возможна только на английском языке и находится по адресу: http://www.w3.org/TR/1998/REC-CSS2-19980512.

Данный перевод НЕ является официальным документом W3C.

Все Авторские Права Принадлежат W3C.

Данный документ может содержать ошибки перевода и опечатки.

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

Спецификация начинается общим представлением CSS и постепенно всё более углубляется в технические подробности и специфику. Для быстрого доступа к информации служат общие и специализированные оглавления в начале каждого раздела и индексы — в электронном и печатном виде.

CSS: спецификация и каскад

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

Не будем зацикливаться на раздувании споров. Вместо этого углубимся в теорию и проведем время с пользой.

Пример под рукой

Используем тот же пример, который использовался в опросе . Я заменил color на background и использовал более приятные цвета.

Вот, что получилось:

Как видите, оба блока синего цвета. Но почему? Причина этого заключается в том, что и .red , и .blue имеют одинаковый уровень специфичности. Поэтому браузер выбирает последний стиль в CSS-коде. В примере – это .blue .

Если поменять местами объявления классов в CSS, то получим следующее:

Так как .red был объявлен после .blue , то блоки стали красными. Логика браузера при каскадной сортировке выглядит следующим образом: он перемещается вниз по таблице стилей, пока не обнаружит самое специфичное правило. Приведенные выше правила обладают равной специфичностью, поэтому объявление .red после .blue приводит к окрашиванию блоков в красный цвет.

Базовое введение в спецификацию

Будем использовать тот же пример, чтобы разобраться с применением спецификации.

Используем селектор ID

Селектор повышает приоритетность правила в спецификации. id будет приоритетнее, чем class . Поэтому в следующем примере новое правило #green станет специфичнее, чем .red и .blue , несмотря на расположение в CSS.

Использование селекторов ID в CSS допустимо. Но лучше привязывать стили к классам, элементам и атрибутам HTML.

Добавляем атрибут style

Добавим в первый div атрибут style . Это сделает правило #green менее специфичным, потому что атрибуты style приоритетнее любого правила в CSS, кроме !important .

В следующем примере я установил фиолетовый цвет для #green в атрибуте style . В результате он становится специфичнее всех остальных стилей (в том числе определенных в .red и .blue ).

Добавляем !important


Последнее правило, рассматриваемое в данной статье – !important . Этот модификатор выигрывает в любом случае.

Я добавлю !important в класс .red . В результате все блоки станут красными. Так как !important имеет наибольший приоритет. Но использовать этот модификатор необходимо с умом. Ведь из-за его важности ни один элемент не может быть специфичнее, чем !important .

Заключение

Понимание каскада и спецификации CSS важно. Эти знания помогут вам стать профессиональным веб-разработчиком.

Данная публикация представляет собой перевод статьи « CSS specificity and the cascade » , подготовленной дружной командой проекта Интернет-технологии.ру

Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification W3C Recommendation 07 June 2011!

Поздравляю всех сопереживавших и не состарившихся за время ожидания, спецификация CSS 2.1 сегодня была официально переведена в статус рекомендации, о чем на сообщает запись на странице этой версии редакции!

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

Запись будет обновляться по мере поступления подробностей…

Upd. 1 Через некоторое время и на главной странице спецификации было замечено перенесение CSS 2.1 в «Com­pleted work».

Читают сейчас

Похожие публикации

  • 3 октября 2020 в 11:57

Англоязычные доклады, CSS, Gr > +17 2,1k 24 0

Где и как использовать мультиколонки (CSS Columns)

Насколько хорошо вы знаете CSS? (+ мини-тест)

Вакансии

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 51

Саша, не знаю, может я конечно скептик, но считаю какими-то искусственными такие вещи, как SASS.

Позиция нужна, когда теперь надо закрепить фон в 10px от правого края, сейчас это реализуется только удлинением картинки с прозрачным фоном или фоном подложки. Это первое, что пришло в голову.

Нестандартным синтаксисам (помимо необходимости использования дополнительной серверной программной прослойки) не хватает широкой поддержки со стороны редакторов кода.

background-position-x/y — чтобы задать общее для нескольких элементов правило с единым фоновым изображением, а затем переопределить для каждого из элементов только одну координату без необходимости дублирования другой координаты, одинаковой для всех элементов из набора.


Спецификация CSS 2.1

WWW Consorcium выпустил черновик спецификации CSS 2.1

http://www.w3.org/TR/css3-roadmap/ — информация о том, что планируется включить в спецификацию CSS 3

Re: Спецификация CSS 2.1

А в чем суть основный отличий этого черновика CSS2.1 от того черновика, на который я ссылаюсь при работе уже более года?

Re: Спецификация CSS 2.1

Re: Спецификация CSS 2.1

Может быть в том, что они его «зарелизили»?

Re: Спецификация CSS 2.1

Но тогда это неинтересно, тем более, что зарелизен черновик.

Там дата постоянно меняется, как только что-то меняется в тексте. Это «что-то в тексте» меня и интересует, так как старой версии для прогона diff’ом у меня нет. Может, пособите?

Re: Спецификация CSS 2.1

Re: Спецификация CSS 2.1

Ждем поддержки в MSIE10 :)

Re: Спецификация CSS 2.1

В любом случае, мелкомягкие, как обычно, будут поддерживать какой-то свой, «такой как у всех, но другой» (с) вариант css2.1.

Re: Спецификация CSS 2.1

>В любом случае, мелкомягкие, как обычно, будут поддерживать какой-то свой, «такой как у всех, но другой» (с) вариант css2.1

А 80 с хреном процентов леммингов схавают :)

Re: Спецификация CSS 2.1

У какого-то чувака, кажется, на Meyerweb, есть огромнейший набор тестов CSS2. По нему можно и составить табличку того, что какой браузер какой версии gets wrong (даже по ACID2 можно, Minefield, кстати, только две строки неправильно показывает). Найти бы еще чувака, который бы составил такую таблицу.

Re: Спецификация CSS 2.1

А такие таблицы есть и не одна. Подробно, по фичам, какая версия какого браузера поддерживает или нет.

Не могу найти в букмарках, но что-то такое было однозначно. Вроде даже на лоре когда-то проскакивали линки.

В целом, IE сосет (кто бы сомневался, ага), остальные (gecko/opera) более-менее ровно. У кого-то больше одного, у другого — другое, но в целом растут, в отличии от.

Re: Спецификация CSS 2.1


«список изменений от второй версии» — ну кто так пишет, а?

Re: Спецификация CSS 2.1

Да пох на gecko с оперой. Главное — как сайты показывает. А пока сайты в основной массе заточены под IE — сосать будет все, кроме IE.

Re: Спецификация CSS 2.1

>Да пох на gecko с оперой. Главное — как сайты показывает. А пока сайты в основной массе заточены под IE — сосать будет все, кроме IE.

Как раз наоборот. Может ты по таким сайтам ходишь, вот и говоришь. А я вижу как раз другое. Под firefox, opera сайты работают нормально, а под IE одни глюки. Тем более, каждый css-шник тратит треть своего времени на то, чтобы в IE всё выглядело так же, как и в нормальных браузерах.

Re: Спецификация CSS 2.1

Ну, например, softodrom.ru :) под фоксом показывается неадекватно. На иксбитовском форуме — не все фичи поддерживаются.

Re: Спецификация CSS 2.1

Сделай выводы о квалификации софтодромовских и ixbt-шных веб-мастеров.

Re: Спецификация CSS 2.1

> В целом, IE сосет (кто бы сомневался, ага), остальные (gecko/opera) более-менее ровно. У кого-то больше одного, у другого — другое, но в целом растут, в отличии от.

Да мне «в общем» не надо — это я и так знаю. Меня детали интересуют, ибо сайты делаю. %)

О спецификации css2

Представьте ситуацию: вы приходите в магазин и просите килограмм муки. Продавец с порога огорошивает вас новостью, что вчера в международном эталоне килограмма была обнаружена неточность, поэтому, пока эталон уточняется, с сегодняшнего дня все переходят на старинные фунты и пуды. Вы, чертыхаясь, достаете калькулятор, пересчитываете килограмм в фунты, отвешиваете эту жуткую дробь и идете домой готовить пирог. Когда пирог уже готов, выясняется, что ваш калькулятор считал в русских фунтах , а продавец использовал английские — и рецепт оказался безнадежно испорчен. Вы идете в магазин ругаться (почему вам не уточнили, в каких фунтах надо было считать) и… видите в руках у продавца новенькие гири с маркировкой «1 килограмм»! Но по виду похожие на «дореформенные» пятикилограммовые.

Бред? Конечно! Есть же какие-то базовые стандарты, которые не могут так внезапно меняться по прихоти. Да, они могут уточняться и совершенствоваться — но не так, что прежние эталоны вдруг станут полностью негодными, а потом радикально изменят своё значение. Улучшение стандартов — однонаправленный, поступательный процесс исправления мелких неточностей, а не чередование периодов относительной ясности с полосами полной неразберихи, то туда, то обратно. Так требует здравый смысл.

Почему же не менее бредовые истории оказались возможны в вебе?

У веба ведь тоже есть свои стандарты. Или… не совсем стандарты?

1. Веб-стандарты: позвольте отрекомендовать?

Все веб-разработчики знают, что стандарты для веба создает специально обученная организация — W3C (WWW Consortium, Консорциум Всемирной Паутины). Продвинутые (по их собственному мнению) веб-разработчики знают, что «верстать по стандартам — хорошо, а не по стандартам — плохо», и что валидатор на сайте этого самого W3C «светится зеленым», когда «всё по стандарту». Продвинутые (по мнению опытных коллег) веб-разработчики знают, что на этом же сайте выложены спецификации почти всех веб-технологий, и именно в них объясняется, почему браузеры ведут себя так, как ведут. А если браузеры ведут себя по-разному — то кто из них прав, а кому пора отсылать багрепорт. Действительно продвинутые веб-разработчики (в природе почти не встречаются) какие-то из этих спецификаций даже читали:)

Вот страничка «All Standards and Drafts» — «Все стандарты и черновики». Подвоха пока не видно. Зато видно, что спецификаций действительно много — они даже разбиты по темам. Нас интересует подраздел «CSS». Раскроем его…

Вот так сюрприз! Под шапкой «законченная работа» видим две категории: «Рекомендации» и «Заметки группы». Ниже — черновики разной степени готовности: просто «Черновик», загадочный «Последний звонок» (с грозной пометкой крайнего срока рядом), «Кандидат в рекомендации»… В самом низу — устаревшие и отмененные документы, в основном датированные далекими 1990-ми. А где же, собственно, стандарты?

У многих людей, еще не знакомых с «внутренней кухней» веб-стандартов, это вызывает удивление. Рекомендация — обычно что-то необязательное, вспомогательное. Как она может быть стандартом? Может, она — еще не совсем стандарт, а лишь «нечто, рекомендованное в стандарты»?

А впереди будет еще «страньше и чудесатее». Но прежде чем продолжать удивляться, давайте немного помечтаем.

2. Мечты об идеале


Чего логично ожидать от стандарта какой-либо технологии? На мой взгляд (не претендую на окончательную истину):

  1. Надежности и предсказуемости. Стандарт должен храниться в одном и том же месте и не должен меняться внезапно. Любые изменения должны легко отслеживаться. И не затрагивать того, что работает — без мегакрайней необходимости.
  2. Универсальности. Стандарт должен быть один для всех. На то он и стандарт.
  3. Реалистичности. Стандарт не должен содержать «взаимоисключающих параграфов», выдвигать абсурдных или заведомо невыполнимых требований.
  4. Актуальности и расширяемости. Нужна возможность оперативного включения в стандарт новых требований отрасли, путем выпуска новых версий, добавления новых модулей и т.п. Механизм перехода со старой версии на новую должен быть четким, прозрачным и безвозвратным. Новую версию должна в будущем сменять лишь еще более новая, а не «ожившая» старая (последнее кажется очевидным, но… похоже, не для W3C!).
  5. Открытости. Разработчики стандарта должны прислушиваться к мнениям и потребностям тех, кто непосредственно работает с этой технологией. Приоритеты в разработке стандарта должны диктоваться именно этим.

Если вы не согласны с этим списком (наверняка же я что-то упустил или что-то переоценил) — добро пожаловать поспорить в комментах! А пока вернемся к нашей реальности.

3. Жизненный цикл спецификации CSS

Внутри своей рабочей группы (в нашем случае — рабочей группы CSS) работа над спецификацией ведется всё время — от появления идеи до публикации окончательной редакции. На ее страничке «Текущая работа» можно оценить общее состояние дел, а все черновые варианты, над которыми идет работа в данный момент, можно найти здесь.

А «для всего мира» спецификация W3C начинается с того, что рабочая группа выкладывает на сайт W3C первый публичный черновик (Working Draft, WD). Этот черновик уже можно обсуждать, вносить предложения по улучшению и решению спорных вопросов (в черновиках обычно много пометок красным — это они), предлагать свои альтернативы и т.п. Участвовать может любой желающий — достаточно написать письмо на www-style@w3.org.

На стадии WD могут начинать экспериментировать с реализацией этой фичи и браузеры. На этой стадии нужны префиксы — чтобы разные экспериментальные реализации не пересекались и друг другу не мешали.

По мере «взросления» черновика публикуется несколько промежуточных версий, всё более подробных и проработанных, с всё меньшим количеством красного текста. Порой сам синтаксис фичи много раз меняется, и браузерам, успевшим реализовать старый вариант, приходится переделывать реализацию чуть ли не с нуля (поэтому браузеры часто подолгу тянут с внедрением фичи, если только не они сами ее предложили). Но статус у всех этих промежуточных редакций один и тот же — WD, черновик. Что у самого первого (фактически «голой» идеи), что у того, который уже на 90% готов!

Наконец, когда вся рабочая группа CSS решает, что все спорные вопросы улажены и теоретически спецификацию можно считать готовой, она выпускает особую версию черновика — с пометкой, что это планируется его окончательная редакция, и указанием крайнего срока, до которого еще можно вносить замечания и уточнения. Такое «последнее китайское предупреждение», что кто не успеет со своими возражениями — тот опоздает. Как третий звонок в театре. Поэтому эта стадия называется Last Call Working Draft (LCWD) или просто Last Call (LC), что можно перевести как «последний звонок» (хотя точнее по смыслу — финальный черновик).

Сроку «подумать» после «последнего звонка» дают месяц-два. То ли ради перестраховки, то ли из-за бюрократии W3C обычно накидывает еще месяцев пару. После этого спецификация получает самый важный, пожалуй, статус — кандидат в рекомендации (Candidate Recommendation, CR). Это значит, что спецификация готова фактически, и браузеры могут смело ее реализовывать. Без всяких префиксов! А кто реализовал с префиксами — просто убирать их.

Когда минимум два браузера независимо друг от друга реализовали спецификацию, и эти реализации оказались полностью совместимы (а чтобы проверить совместимость реализаций, требуется разработать официальные наборы тестов), спецификация получает следующий статус — предложенная рекомендация (Proposed Recommendation, PR). И наконец, когда предложенную рекомендацию утвердит W3C-шное начальство, спецификация публикуется в окончательном статусе — рекомендация (Recommendation, Rec). По установленному в W3C рабочему процессу «рекомендация аналогична стандартам, публикуемым другими организациям».

Т.е. у W3C рекомендация — это и есть стандарт. После этого спецификация уже не меняется. Она может лишь устареть и со временем замениться новой.

Казалось бы, логичная цепочка. Пока спецификация в процессе разработки — она черновик, когда практически готова или совсем готова — она «почти стандарт» или «совсем стандарт». Но это в теории. А на деле нередко бывает так, что спецификация оказывается забракована уже на стадии CR. На которой браузерам можно внедрять ее без префиксов. И спецификация «откатывается» назад в LC («совсем последний» черновик). Когда внедрять без префиксов еще нельзя. Иногда такая чехарда CRLCCR и обратно происходит несколько раз. И «фичи», вроде бы давно признанные готовыми, внезапно опять формально оказываются экспериментальными!

Самый впечатляющий, пожалуй, пример — CSS Basic User Interface Module Level 3 (CSS3 UI). С января 2012 года его статус — финальный черновик (LC), хотя до того он был кандидатом в рекомендации (CR) аж с… 2004-го года! И это не исключительный случай.

4. Версии о версиях

CSS 2.1 — последняя «монолитная» спецификация CSS. До нее были CSS 1 (до сих пор числится в «рекомендациях», но последняя редакция 2008 года предостерегает от нее в пользу CSS 2.1) и CSS2 (которую CSS 2.1 заменила). Спецификации под названием «CSS3» нет! Начиная с CSS 2.1, весь CSS разрабатывается не версиями, а «уровнями»: основа (сам CSS 2.1) считается 2-м уровнем, над которым надстраиваются функциональные модули сначала 3-го уровня, а затем 4-го (напр. модуль селекторов 4-го уровня, поскольку селекторы 3-го уровня — уже готовый стандарт) и последующих уровней. Причем развиваться они могут с разной скоростью, например, когда до CR «дозреет» модуль таблиц 3-го уровня (пока даже не написанный!), те же селекторы могут «прокачаться» уровня до 7-го. Так что сам по себе уровень модуля не говорит о его готовности ничего. И есть ли какой-либо смысл в «валидации CSS3» (проверке, входит ли свойство в словарь, определенный в модулях 3-го уровня), если часть этих модулей уже давно стандарт и вот-вот устареет, а часть еще не написана вообще?

Модули, добавляющие в CSS принципиально новую функциональность (напр. расширяющие сам базовый синтаксис) пристраиваются не «поверх», а «рядом» — с самого базового уровня, 1-го. Таков модуль CSS-переменных 1-го уровня. Да-да, не все модные новинки — «CSS3»! (Хотя… смотря что понимать под «CSS3» — см. добавление ниже.)

Что же мы имеем в итоге? Номер уровня — не показатель ни актуальности, ни готовности стандарта. Статус спецификации — показатель, но недостаточно надежный и информативный. Как же узнать, что является действующим и актуальным стандартом CSS на текущий момент?

Ближе всего к искомому — документ, лежащий по красивому адресу http://www.w3.org/TR/CSS/: «снимок», или «срез» CSS (CSS snapshot). Правда, сейчас там документ 2011 года, отражающий состояние дел 2010-го. И статус у него самый несерьезный — «заметка» (Working Group Note). Т.е. просто «пометки для себя». Так в W3C помечают то, что в стандарты не прошло и на это звание даже не претендует — грубо говоря, «отходы» процесса стандартизации. А жаль…

Вот и приходится следить за уже знакомой нам «Текущей работой». То, что в первых трех табличках зелененькое (и не собирается «желтеть», как было с упомянутым CSS3 UI) — скорее всего, можно считать если не стандартом, то наиболее близким к нему.

Добавление от 7.09.2012: буквально на следующий день после публикации этой статьи произошел показательный случай. Таб Аткинс, один из активистов рабочей группы CSS, написал в своем блоге заметку о CSS4, главная мысль которой — никакого CSS4 нет и не будет. На беду, в этой же заметке он написал, что «термин “CSS3” относится ко всему, выпущенному после CSS2.1», на что сразу же получил немало гневных возражений от других активистов рабочей группы CSS (в частности, от Сильвена Галино, по мнению которого «“модуль фонов и границ 4-го уровня относится к CSS3” — звучит как пьяный бред»). Если эта безверсионно-уровневая система приводит к такой путанице среди самих авторов спецификаций — представляете, каково же простым веб-разработчикам.

5. Есть ли другой путь?

В принципе, есть. Это путь WHATWG, которым идет развитие «живого стандарта HTML», параллельно с HTML5 в W3C (хотя с недавних пор их пути начали расходиться). «Живость» стандарта означает то, что он в любой момент и готов, и не готов: ничто не мешает браузерам реализовывать спецификацию прямо в том виде, как есть (без всяких префиксов), но и ничто не заставляет их реализовывать сразу всю спецификацию целиком. Как следствие — никто не может гарантировать, что хотя бы 80% браузеров поддержат хотя бы 80% спецификации. И узнавать фактическое положение дел с поддержкой браузерами той или иной части стандарта придется на сторонних сайтах типа caniuse.com.

В чем этот путь точно превосходит W3Cшный процесс, так это в актуальности: спецификация всегда новейшая. Настолько, что реализация даже месячной давности может внезапно оказаться устаревшей (были прецеденты). С надежностью и предсказуемостью тут… так себе. И можно понять сопредседателя рабочей группы CSS, который резко возражает против перевода всей разработки CSS на этот путь. Особенно с учетом того, что в CSS сейчас и так куча модулей, разрабатываемых независимо, и редакторам спецификаций приходится прилагать немало усилий, чтобы согласовать эти модули друг с другом.


Но и у тех, кто критикует теперешний процесс W3C за медлительность, есть веские резоны. Если W3C не выпускает стандарт де-юре, браузеры создают его де-факто — прогресс не стоит на месте, новинки внедряются в каждом релизе, а релизы нынче чуть ли не ежемесячно. И если в начале 2000-х «вылизывать» спецификацию годами, сглаживая «острые углы» и противоречия, было еще кое-как можно, то теперь это равнозначно тому, что место общего единого стандарта займет «отсебятина» лидера гонки. Такое мы уже видели в 90-х, в эпоху господства IE. Что ни говори, но 13 лет «утряски» спецификации CSS2.1 (c 1998 по 2011-й!) — очевидный перебор. Веб столько терпеть не станет. А объемы спецификаций только растут…

Но поспешность в таком деле, как разработка стандартов, тоже вредна. Не поспеши W3C в 1998-м году утвердить спецификацию CSS2 — заведомо нереалистичную, от которой тут же отказались все браузеры — возможно, не пришлось бы 13 лет доводить ее «до ума».

6. А что, если…

…как-нибудь соединить обстоятельность и основательность W3Cшного процесса с оперативностью и динамизмом «живого стандарта»?

Вот вышеупомянутый «слепок» CSS — тот самый, который в «текущей работе» помечен как «новейший стабильный CSS» — что мешает ему стать «живым стандартом»? По большому счету это просто список модулей, признанных рабочей группой достаточно «созревшими» для реализации браузерами. Факт наличия модуля в этом списке важнее формального статуса самого модуля: даже если модуль откатился из кандидата в рекомендации к «последнему звонку», разработчиков браузеров это не запутает. Там же можно будет прояснить подлинный статус формально «готовых», но фактически устаревших модулей (как с тем же CSS3 UI) и перечислить «рискованные» фичи. И будет всё актуальное состояние CSS доступно по одному адресу — как, наверное, и планировалось!

Что-то подобное уже давно происходит со спецификацией WCAG 2, у которой есть статичная «основная часть» и постоянно обновляемые практические рекомендации, развивающиеся вполне по логике «живого стандарта». Оправдан ли такой подход для CSS? Добро пожаловать в комменты с любыми мнениями и аргументами!

Прочитайте онлайн Спецификация CSS2 | Дополнение. Приложение B. Изменения по сравнению с CSS1

Дополнение. Приложение B. Изменения по сравнению с CSS1

Это приложение является информативным, но не нормативным.

CSS2 построен на основе CSS1, и все действительные таблицы стилей CSS1 являются действительными таблицами стилей CSS2. Изменения между спецификацией CSS1 (см. ) и данной спецификацией делятся на три группы: новая функциональность, обновлённые описания функциональности CSS1 и изменения по сравнению с CSS1.

В дополнение к функциональности CSS1, CSS2 поддерживает:

[x]. Понятие типов носителя.

[x]. Значение ‘inherit’ для всех свойств.

[x]. Страничные носители

[x]. Звуковые таблицы стилей

[x]. Несколько опций интернационализации, включая стили нумерации списков, поддержку двунаправленного текста и чувствительных к языку знаков кавычек.

[x]. Расширенный механизм выбора шрифта, включая смысловой подбор, синтез и загружаемые шрифты. Введены также понятие системных шрифтов и новое свойство ‘font-size-adjust’.

[x]. Таблицы, включая новые значения ‘display’ и ‘vertical-align’.

[x]. Относительное и абсолютное позиционирование, включая фиксированное позиционирование.

[x]. Новые типы боксов (наряду с блок- и инлайн-): compact и run-in.

[x]. Возможность контролировать переполнение, сжатие и видимость содержимого в модели визуального форматирования.

[x]. Возможность специфицировать максимальные и минимальные ширину и высоту в модели визуального форматирования.

[x]. Расширенный механизм селекторов, включая дочерние селекторы, смежные селекторы и селекторы атрибутов.

[x]. Генерируемое содержимое, счётчики и автоматическую нумерацию и маркёры.

[x]. Оттенение текста с помощью нового свойства ‘text-shadow’.


[x]. Различные новые псевдоклассы, :first-child, :hover, :focus, :lang.

[x]. Системные цвета и шрифты.

[x]. Курсоры.

[x]. Динамические схемы.

Спецификация CSS1 была короче и компактнее. Данная спецификация намного объёмнее и более читабельна. Большая часть нового материала описывает новую функциональность, но описания из CSS1 также расширены. За исключением немногих случаев, описанных ниже, обновлённые описания не изменили ни синтаксис, ни семантику.

Хотя все действительные таблицы стилей CSS1 являются таковыми и в CSS2, есть несколько случаев, когда таблицы стилей CSS1 будут иметь другие значения при интерпретации в качестве таблиц CSS2. Большинство изменений обусловлено опытом разработки, но есть также и корректировка некоторых ошибок.

[x]. Значение «!important» изменено. В CSS1 «!important» в таблице стилей автора имел преимущество перед «!important» таблицы стилей пользователя. В CSS2 сделано наоборот.

[x]. В CSS2 значения цвета ужаты в соответствии с гаммой устройства, а не с гаммой sRGB, как в CSS1.

[x]. В CSS1 просто указано, что ‘margin-right’ игнорировалось, если ‘margin-left’ и ‘width’ были установлены. В CSS2 выбор между смягчением ‘margin-right’ или ‘margin-left’ зависит от направления письма.

[x]. В CSS1 некоторые свойства (например, ‘padding’) имели значения, ссылающиеся на ширину родительского элемента. Это было ошибкой; значение всегда должно ссылаться на ширину элемента уровня блока, и данная спецификация отражает это путём ввода термина «containing block/содержащий блок».

[x]. Начальное значение ‘display’ — ‘inline’ в CSS2, а не ‘block’, как в CSS1.

[x]. В CSS1 свойство ‘clear’ применялось ко всем элементам. Это было ошибкой, и в CSS2 свойства применяются только к элементам уровня блока.

[x]. В CSS1 ‘:link’ , ‘:visited’ и ‘:active’ были взаимоисключающими; в CSS2 ‘:active’ может появляться вместе с ‘:link’ или ‘:visited’ .

[x]. Предлагаемый фактор масштаба между смежными индексами ‘font-size’ в таблице размеров шрифтов уменьшен с 1.5 до 1.2.

[x]. Теперь наследуется вычисленное, а не текущее, значение ‘font-size’.

[x]. CSS1-описание ‘inside’ (для ‘list-style-position’), допускало воздействие на левое поле текста, а не на позицию маркёра. В CSS2 такая интерпретация правила устранена.

[x]. См. также нормативный раздел .

Спецификация CSS2 (fb2)

Добавлена: 09.09.2012 Версия: 1.0.
Кодировка файла: windows-1251

[url=https://coollib.net/b/142454]
[b]Спецификация CSS2 (fb2)[/b]
[/url]

Аннотация

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

Лингвистический анализ текста:
Приблизительно страниц: 291 страниц — немного выше среднего (235)
Средняя длина предложения: 119.28 знаков — немного выше среднего (84)
Активный словарный запас: очень низкий 989.99 уникальных слова на 3000 слов текста
Доля диалогов в тексте: 0.01% — очень мало (26%)
Подробный анализ текста >>

Bach’s home page

Johann Sebastian Bach was a prolific composer.


Чтобы установить голубой цвет текста элемента H1, можно написать такое правило CSS:

Правило CSS состоит из двух главных частей: селектора (‘H1’) и объявления (‘color: blue’). Объявление имеет две части: свойство (‘color’) и значение (‘blue’). Поскольку в предыдущем примере делается попытка использовать только одно из свойств, необходимое для отображения документа HTML, он может быть квалифицирован как таблица стилей. В комбинации с другими таблицами стилей (возможность комбинировать таблицы стилей является одним из фундаментальных свойств CSS) оно (свойство) определит конечный вид документа.

Спецификация HTML 4.0 определяет, как правила таблиц стилей могут быть специфицированы для документов HTML: или внутри документа HTML, или в таблицах стилей. Чтобы поместить в документ таблицу стилей, используйте элемент STYLE:

Bach’s home page

Bach’s home page

Johann Sebastian Bach was a prolific composer.

Для максимальной гибкости мы рекомендуем, чтобы авторы специфицировали внешние таблицы стилей; они могут быть изменены без модификации документа-источника HTML, а также могут раздельно использоваться несколькими документами. Чтобы сослаться на внешнюю таблицу стилей, Вы можете использовать элемент LINK:

Bach’s home page

Bach’s home page

Johann Sebastian Bach was a prolific composer.

Элемент LINK специфицирует:

[x]. тип гиперссылки: «stylesheet»;

[x]. размещение таблицы стилей: в атрибуте «href»;

[x]. тип таблицы стилей, на которую ссылаются: «text/css».

Чтобы продемонстрировать тесную взаимосвязь между таблицей стилей и структурной разметкой, мы продолжим использовать элемент STYLE в этом пособии. Давайте добавим больше цветов:

Bach’s home page

Bach’s home page

Johann Sebastian Bach was a prolific composer.

Таблица стилей теперь содержит два правила: первое устанавливает цвет элемента BODY в ‘red’, а второе — цвет элемента H1 в ‘blue’. Поскольку для элемента P не специфицирован цвет, он будет наследовать цвет от своего элемента-предка, а именно — от BODY. Элемент H1 является также дочерним элементом элемента BODY, но второе правило переопределяет наследуемое значение. В CSS часто возникают такие конфликты между различными значениями, и данная спецификация описывает, как их разрешить.

В CSS2 имеется более 100 различных свойств, в том числе — ‘color’. Рассмотрим некоторые другие:

Bach’s home page

Bach’s home page

Johann Sebastian Bach was a prolific composer.

Первое, что нужно отметить, это несколько объявлений, сгруппированных внутри блока, заключённого в фигурные скобки (<. >) и разделённых знаком точка с запятой, хотя последнее объявление может также заканчиваться точкой с запятой.

Первое объявление элемента BODY устанавливает семейство шрифтов «Gill Sans». Если этот шрифт недоступен, ПА (часто называемый «браузер») будет использовать семейство шрифтов ‘sans-serif’, которое является одним из пяти семейств шрифтов, известных всем ПА. Дочерние элементы элемента BODY унаследуют значение свойства ‘font-family’.

Второе объявление устанавливает размер шрифта элемента BODY в 12 пунктов. Единица измерения «пункт» используется обычно в типографской печати для обозначения размеров шрифта и других размеров. Это пример абсолютных единиц измерения, которые не определяются относительно окружения.

Третье объявление использует относительные единицы измерения, которые определяются относительно своего окружения. Единица «em» относится к размеру шрифта элемента. В нашем случае поля вокруг элемента BODY шире размера шрифта в три раза.

(обратно) CSS может использоваться с любым структурированным форматом документа, например, с приложениями eXtensible Markup Language [XML10]. На самом деле XML намного больше зависит от таблиц стилей, чем HTML, поскольку авторы могут создавать свои собственные элементы, которые не известны ПА и не могут ими выводиться.

Илон Маск рекомендует:  Универсальный селектор
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL