Речь пойдёт о Document Type Definition (или DTD, <!DOCTYPE ...> короче говоря).
На пути к совсем семантической вёрстке, нам понадобится DTD или же стандарт XML Schema. В данной статье я рассмотрю первое и покажу, как с помощью 2 строк и одного CSS-стиля сделать кроссбраузерный, W3-валидный документ с использованием собственного тэга — <rur>
Разобравшись с изложенным мною методом, любой может создавать валидные документы с использованием собственных тэгов, которые могут не только сделать макет документа более гибким, но и более семантически-правильным, логичным и понятным, как для роботов, так и для людей, которые будут заниматься дальнейшей его поддержкой.
Итак, нам требуется внедрить в XHTML свой тэг, который обозначал бы знак рубля. Для того, чтобы страница была одобрена валидатором, она должна быть не только well-formed (Прим.: синтаксически правильной в терминах «XMLSpec»), но и валидной, т.е. составленной в соответствии с дескриптором типа документа, известным, как DTD.
Я пользуюсь DTD XHTML 1.0 Strict, описание валидных документов для которого можно найти по знакомому URL http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
Изучив структуру документа, мы найдём следующие строки:
Эти строки показывают, что в документе могут быть использованы тэги br, span, bdo, map. Наш тэг называется rur. Теперь осталось как-то внедрить его в уже созданный DTD. Стандарт DTD позволяет наращивать дескрипторы типов документов. Я не буду на это останавливаться, а покажу сразу код DOCTYPE-заголовка для валидного XHTML 1.0 — Strict документа:
Приведенный код означает, что мы добавляем для сущности special.pre тип тэга rur, который не имеет параметров и может содержать Parsed Character Data.
Для проверки работоспособности кода, вживим в любой валидный XHTML-макет указанный выше заголовок и следующий код:
JS-код, я думаю вполне понятен — он ищет тэги <rur> в теле документа и подставляет в них контент — букву «Р», которая является графической основой знака рубля. Если у клиента нет JS, то выводится остаётся просто «руб.»
Да! И совсем забыл CSS для нашего рубля!
Кстати, он у вас может быть совсем другим!
Вот как-то так. Я думаю, Хабролюди с полна оценят эту скромную работку и поймут её ценность. Спасибо за внимание!
Для проверки, Вы можете открыть исходный код с моего сервера по адресу: http://www.ridev.ru/valid-rur.htm
Я намеряно запихнул CSS внутрь, чтобы был один файл.
На пути к совсем семантической вёрстке, нам понадобится DTD или же стандарт XML Schema. В данной статье я рассмотрю первое и покажу, как с помощью 2 строк и одного CSS-стиля сделать кроссбраузерный, W3-валидный документ с использованием собственного тэга — <rur>
Разобравшись с изложенным мною методом, любой может создавать валидные документы с использованием собственных тэгов, которые могут не только сделать макет документа более гибким, но и более семантически-правильным, логичным и понятным, как для роботов, так и для людей, которые будут заниматься дальнейшей его поддержкой.
Итак, нам требуется внедрить в XHTML свой тэг, который обозначал бы знак рубля. Для того, чтобы страница была одобрена валидатором, она должна быть не только well-formed (Прим.: синтаксически правильной в терминах «XMLSpec»), но и валидной, т.е. составленной в соответствии с дескриптором типа документа, известным, как DTD.
Я пользуюсь DTD XHTML 1.0 Strict, описание валидных документов для которого можно найти по знакомому URL http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
Изучив структуру документа, мы найдём следующие строки:
- <!--=================== Text Elements ====================================-->
-
- <!ENTITY % special.pre
- "br | span | bdo | map">
* This source code was highlighted with Source Code Highlighter.
Эти строки показывают, что в документе могут быть использованы тэги br, span, bdo, map. Наш тэг называется rur. Теперь осталось как-то внедрить его в уже созданный DTD. Стандарт DTD позволяет наращивать дескрипторы типов документов. Я не буду на это останавливаться, а покажу сразу код DOCTYPE-заголовка для валидного XHTML 1.0 — Strict документа:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
- [<!ENTITY % special.pre "br | span | bdo | map | rur">
- <!ELEMENT rur (#PCDATA)>
- <!ATTLIST rur>]>
* This source code was highlighted with Source Code Highlighter.
Приведенный код означает, что мы добавляем для сущности special.pre тип тэга rur, который не имеет параметров и может содержать Parsed Character Data.
Для проверки работоспособности кода, вживим в любой валидный XHTML-макет указанный выше заголовок и следующий код:
- Знак рубля (<rur>руб.</rur>) появился в обращении 1 июля 2007 года.
-
- <script type="text/javascript">
- //<![CDATA[
- i=0;
- while (true)
- {
- var elem = document.getElementsByTagName ('rur')[i];
-
- if (!elem) {break;}
- elem.innerHTML = "Р";
- i++;
-
- }
- //]]>
- </script>
* This source code was highlighted with Source Code Highlighter.
JS-код, я думаю вполне понятен — он ищет тэги <rur> в теле документа и подставляет в них контент — букву «Р», которая является графической основой знака рубля. Если у клиента нет JS, то выводится остаётся просто «руб.»
Да! И совсем забыл CSS для нашего рубля!
- /*знак рубля*/
- rur
- {
- text-decoration: line-through;
- margin: 0.1em;
- }
* This source code was highlighted with Source Code Highlighter.
Кстати, он у вас может быть совсем другим!
Вот как-то так. Я думаю, Хабролюди с полна оценят эту скромную работку и поймут её ценность. Спасибо за внимание!
Для проверки, Вы можете открыть исходный код с моего сервера по адресу: http://www.ridev.ru/valid-rur.htm
Я намеряно запихнул CSS внутрь, чтобы был один файл.