Внимание!
Этот документ является переводом, который может содержать ошибки и опечатки.
Оригинал этой страницы доступен по адресу http://www.w3.org/Style/spec-mark-up.html.
Все авторские права принадлежат W3C.
Перевод сделан Склепко Тарасом при поддержке Reginform и автобазар Украины - rstcars.
(Languages: en ja ru tl uk)
(Эта страница использует CSS стили)
CSS2 и различные модули CSS3 имеют специфические разметки в HTML. Разметка позволяет задавать стили различным видам информации (именам свойств, примечаниям, примерам и т.д.), но прежде всего она позволяет различным программам считываться согласно ее спецификации.Эти программы могут сделать список всех свойств, извлекать синтаксис понятный им, проверять примеры и т.д. В следующих разделах содержатся подробности.
В CSS2 и CSS3 разметка не одинакова. Технология CSS3 младше на несколько лет CSS2 и является ее доработкой. Так как она более компактна и семантична.
Разметка опубликованных текстов CSS не является точно такой же, как разметка, которую авторы использовали при написании текста. Последние сокращения, расширяются автоматически перед тем как документ будет опубликован. Например, авторы почти никогда не создавали ссылки. Вместо этого, они включают теги или специальные символы, которые показывают роль слова (название свойства, принадлежность к техническому термину, библиографические ссылки и т.д.), и каждое такое слово автоматически связано с его определением.
Чем меньше разработчикам необходимо набирать текста, тем меньше ошибок будет допущено при работе и больше времени останется на работу над содержанием. Кроме того, поскольку, компьютер добавляет ссылки и многую другую разметку, поэтому, в итоге, документ будет более последовательным. В то же время это по-прежнему полноценный HTML документ, который можно изменять и просматривать. Он просто имеет меньше ссылок и немного меньше цветов, чем окончательный документ.
Такие последовательные документы имеют ряд преимуществ. Например, таблица содержания, индекс и список всех свойств создаваемый автоматически. Кроме того, различные автоматические проверки могут быть выполнены, прежде чем опубликован документ, например: все ли свойства, которые встречаются в тексте, определены? вся ли грамматика полная? все примеры правильные? все библиографические ссылки определены?
CSS3 модули не всегда являются опубликованными в документе. Хотя разметка, которую используют авторы включена, читатели никогда её не увидят.
Двумя важными характеристиками этой разметки (и программ, которые ее читают) являются:
Свойства отдельных слов, заключенных в одинарные кавычки, например,
'font' 'text-indent'
Это все, что автор должен прописать. Слова автоматически заключенные в элемент <a> с классом "property" будут генерироваться в ссылку с определенными свойствами:
<a class=property href="#font0">'font'</a> <a class=property href="#text-indent">'text-indent'</a>
Все имена свойств являются разметкой, кроме случаев, когда они входят в пример или в некоторые части CSS кода. Определение свойства также не имеет кавычек.
Строчный CSS, также заключается в одинарные кавычки или две одинарные кавычки, например:
'color: blue' ''display: none''
Автор пишет только одинарные кавычки, при этом текст обрамляется в тег <span> с классом "css" при публикации. Если используются две одинарные кавычки, одна пара кавычек удаляется:
<span class=css>'color: blue'</span> <span class=css>'display: none'</span>
Ключевые слова CSS (кроме имен свойств) должны быть заключены в две одинарные кавычки, чтобы отличить их от свойств:
''none''
В результате в опубликованном документе слово обрамляется в одинарные кавычки и тег <span>
<span class=css>'none'</span>
Значения типов заключаются в угловые скобки и в элементы <var>. Например:
<var><integer></var> <var><color></var> <var><percentage></var>
[Разметка определений такого типа еще не разработана.]
Например, определение термина заключено в <dfn> элемент (означает, что оно в итоге будет в алфавитном индексе ):
<dfn>dog</dfn>
Для ссылки на определения, автор может использовать некоторые строчные элементы (<em>, <span> и т.д.) и текст автоматически будет обрамлен в <a> элемент, который ссылается на определение.
Если использование этих строчных элементов и определения не буквально, то название атрибута может быть использовано для точного термина:
<dfn title="dog">dogs</dfn> <em>dog</em> <span title="dog">dog</span>
Результат выглядит следующим образом:
<dfn id=dogs0 title="dog">dogs</dfn> <em><a href="#gogs0">dog</a></em> <span title="dog"><a href="#dogs0">dog</a></span>
Таблица свойств определений:
| Имя: | Обрамление (padding) |
| Значение: | [ <length> | <percentage> ]{1,4} |
| Начальное: | (см. отдельные свойства) |
| Применимо к: | все элементы |
| Наследование: | нет |
| Процентное: | ширина(width*) контентного блока |
| Информация: | визуальная |
| Вычисленное значение: | см. отдельные свойства |
| *) Если контентный блок является горизонтальным, в противном случае вертикальным | |
Который создается следующим образом:
<table class=propdef>
<tr>
<td>Имя:
<td><dfn>padding</dfn>
<tr>
<td>Значение:
<td>[ <var><length></var> | <var><percentage></var>
]{1,4}
<tr>
<td>Начальное:
<td>(см. отдельные свойства)
<tr>
<td>Применимо к:
<td>все элементы
<tr>
<td>Наследование:
<td>нет
<tr>
<td>Процентное:
<td>ширина(width*) контентного блока
<tr>
<td>Информация:
<td>визуальная
<tr>
<td>Вычисленное значение:
<td>см. отдельные свойства
<tr>
<td colspan=2 class=footnote>*) Если контентный блок является горизонтальным, в противном случае вертикальным
</table>
Таблица имеет класс "propdef" и имя свойства, которое обрамлено в <DFN> элемент (но оно не в одинарных кавычках). При публикации документа, идентификатор атрибута будет автоматически обрамляться в <DFN> элемент и свойство имени добавляется в алфавитный указатель и индекс свойства.
Определение дескрипторов (характеристик шрифтов, внутри @font-face правила) являются аналогичными. Они выглядят так:
| Имя: | Высота(x-height) |
| Значение: | <number> |
| Начальное: | неопределено |
| Информация: | визуальная |
Таблица имеет класс "descdef" и выглядит следующим образом:
<table class="descdef"> <tr><td>Имя: <td><dfn>высота(x-height)</dfn> <tr><td>Значение: <td><номер> <tr><td>Начальное: <td>неопределено <tr><td>Информация: <td>визуальная </table>
Есть два вида библиографических ссылок: нормативные и информативные. Авторские типы оформляются как
[[!CSS3BOX]] [[!UNICODE4]]
где "CSS3BOX" и " UNICODE4" являются ярлыками элементов, которые определяются во внешних(1) базах данных. Информационные ссылки те же, но без восклицательного знака:
[[SELECT]] [[MEDIAQ]]
В опубликованном документе, такие ссылки будут расширены в ссылки на библиографию следующим образом:
<a href="#CSS3BOX" rel=biblioentry>[CSS3BOX]<!--{{CSS3BOX}}--></a>
<a href="#UNICODE4" rel=biblioentry>[UNICODE4]<!--{{UNICODE4}}--></a>
<a href="#SELECT" rel=biblioentry>[SELECT]<!--{{SELECT}}--></a>
<a href="#MEDIAQ" rel=biblioentry>[MEDIAQ]<!--{{MEDIAQ}}--></a>
Причиной включения этого комментария является то, что она позволяет окончательному документу, который будет редактироваться, не снимая элементы <a> восстановить библиографию, несмотря на отсутствие двойных квадратных скобок. (В теории, в опубликованных спецификациях никогда ничего не изменилось, но практика и теория не всегда одинаковы ...)
Библиография генерируется автоматически из библиографических ссылок и данных внешних библиографических баз данных. В результате вставляем на место следующие два комментария в исходнике:
<!--normative--> <!--informative-->
Перечень нормативных ссылок идет после информативных ссылок.В результате опубликованный документ выглядит следующим образом:
<!--begin-normative-->
<!-- Sorted by label -->
<dl class=bibliography>
<dt style="display: none"><!-- keeps the doc valid if the DL is empty -->
<!---->
<dt id=CSS3LINE>[CSS3LINE]
<dd>Michel Suignard; Eric A. Meyer. <cite>CSS3 module: line.</cite> 15 May
2002. W3C Working Draft. (Work in progress.) URL: <a
href="http://www.w3.org/TR/2002/WD-css3-linebox-20020515">http://www.w3.org/TR/2002/WD-css3-linebox-20020515</a>
</dd>
<!---->
<dt id=CSS3SYN>[CSS3SYN]
<dd>L. David Baron. <cite>CSS3 module: Syntax.</cite> 13 August 2003. W3C
Working Draft. (Work in progress.) URL: <a
href="http://www.w3.org/TR/2003/WD-css3-syntax-20030813">http://www.w3.org/TR/2003/WD-css3-syntax-20030813</a>
</dd>
<!---->
</dl>
<!--end-normative-->
Простейшая разметка, котороя ставит слово или фразу в алфавитный индекс <span> с классом "Index":
<span class=index>containing block</span>
Когда термин должен отображаться в инлексе отлично от его представления в тексте, текст атрибута тайтл (title) используется для индекса:
<span class=index title="box">boxes</span> <span class=index title="inherited value">inherit a value</span>
Когда этот термин должен появиться в индексе, по двум или более различным записям, название атрибута тайтл (title) содержит различный текст, разделенный вертикальной чертой:
<span class=index title="outer edge|margin edge">outer (margin) edge</span>
Когда термин должен быть представлен раньше, чем другой термин, название атрибута тайтл (title) должно содержать подзапись, разделенную двумя восклицательными знаками:
<span class=index title="edge!!outer">outer edge</span> <span class=index title="edge!!inner">inner edge</span>
Конечно, эти условия можно комбинировать:
<span class=index title="edge!!outer|edge!!margin">outer edge</span>
В случае определения экземпляра объекта термина, элемент <DFN> заменяет элемент span и класс упраздняется:
<dfn>padding</dfn>
Название атрибута может быть вставлено в <DFN> элемент точно так же, как и в <span>.
Все индексы условий автоматически получают идентификатор атрибута.
Алфавитный индекс, который создается из индекса условий, автоматически вставляется в документ по месту следующиего комментария:
<!--index-->
Результат выглядит следующим образом:
<!--begin-index--> <ul class=indexlist> <li>anonymous, <a href="#anonymous0"><strong>#</strong></a> <li>'writing-mode', <a href="#writing-mode"><strong>#</strong></a> </ul> <!--end-index-->
Примеры разметки с классом “example” могут быть либо <div>, либо <pre>. Если в бывшем примере приводится пояснительный текст или изображение, последний пример ничего не содержит, кроме кода:
<div class=example> ... </div> <pre class=example> ... </pre>
Данные как правило, имеют подписи. Рисунок и надпись заключаются в <div> с классом "figure" следующим образом:
<div class="figure"> <p><img src="box.png" alt="Прямоугольники имеют четыре стороны [schema]"> <p class=caption>Отношения между четырьмя… </div>
Класс "note" указывается ненормативного. Он обычно используется в тегах <p>, <div> или <span>.
<p class=note>Обратите внимание, что…
Номера разделов обычно добавляются автоматически. Они заключаются в элемент span с классом "secno" и выглядят следующим образом:
<span class=secno>1. </span>
Подразделы нумеруются 1.1., 1.1.1 и т.д.
CSS3 имеет только один <h1> element, который является таким же, как и элемент <title> (без знаков препинания и сокращений).
Содержание генерируется автоматически и вставить его на место можно следующим комментарием:
<!--toc-->
Результат выглядит следующим образом:
<!--begin-toc--> <ul class=toc> <li><a href="#dependencies"><span class=secno>1. </span>Зависимости от других модулей</a> <li><a href="#introduction"><span class=secno>2. </span>Введение</a> </ul> <!--end-toc-->
[To do]
Рабочая группа CSS использует разнообразные инструменты для разработки, тестирования и другого использования спецификаций указанных выше. Некоторые инструменты это CGI скрипты, часть из которых это Perl программы или Sed скрипты. Но большая часть обработки производится с различными комбинациями из инструментов С в HTML-XML утилитах.