Отречемся от старого мира (что выбросили, что изменили)

Как и во всякую революцию (а HTML5 — это, вне всякого сомнения, революция), не обошлось без потерь. В том числе и фатальных — некоторые HTML-элементы навсегда скинуты с корабля современности.

Прежде всего это тег <applet>, который, если вы все-таки применяете Java-апплеты на странице, придется теперь заменить <embed>. За ним последовали <center> и <font> — их употребление уже давно считалось дурным тоном, вместо этого предлагается использовать CSS. Туда же стройной колонной идут <big>, <strike>, <basefont>, <tt>.

Совсем без всякой замены выкинуты теги <blink> и <marquee>. Впрочем, если вы огорчены по этому поводу, я вас знать не знаю и разговаривать больше не хочу. Другая, давно назревшая безвозвратная потеря — это теги <frameset>, <frame> и <noframes>. Паре известных веб-приложений, сделавших ставку в интерфейсе на фреймовую структуру, придется пересмотреть свой код. Впрочем, <iframe> оставлен, и это хорошо (иначе революция была бы очень кровавой).

Еще немного потерь: уходит тег <acronym> (остается <abbr>), больше не с нами <isindex> (а вы правда помните, что он делал?), отправлен на покой <dir>.

Как видите, жертв немного. Хотя среди атрибутов потери более значительные. В основном они связаны с ликвидацией избыточного функционала, хорошо реализуемого через css. Так, исчезли атрибуты align для большинства строчных элементов alink, link, text, vlink и background для <body> (последние еще и для таблиц). Изрезали valign для col, colgroup, tbody, td, tfoot, th, thead и tr, width для hr, table, td, th, col, colgroup и pre.

Сурово обошлись с элементом <iframe>, его лишили атрибутов align, frameborder, marginheigh, marginwidth и scrolling.

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

Изменения в основном касаются перевода «отобразительного» значения элемента значению логическому. Теперь <em> больше не обозначает наклонный шрифт, это обозначение важности фрагмента текста:

-Вы прибыли из Иваново?

-Нет, я шиву! в Иваново, а прибыл из Омска!

В данном случае подчеркнута важность факта проживания. Если существует несколько степеней важности, элементы <em> теперь могут быть вложены друг в друга.

А вот тег <i> сейчас строго определяет отрезок текста, отличающийся от основного содержания. В принципе, это может быть что угодно — имя собственное, цитата, сложный технический термин, в общем, все, что на бумаге напечатали бы курсивом.

Тег <strong> выделяет фрагменты текста с высокой важностью, но, в отличие от <em>, не меняет интонации? Понимаете разницу? Ну, вот, например:

Сумма задолженности составляет <strong>$500</strong>, и я хочу получить деньги <em>сегодня</em>!

Остался еще элемент <b>, который теперь определяет отрезок текста, который надо выделить, но не интонационно, без указания на важность. Например, в статье о рок-группе имена участников могут быть выделены таким образом. Отличие от тега <i> тут как раз в интонационной составляющей, то есть в ее отсутствии.

Все понятно? Я искренне на это надеюсь, но особо не рассчитываю. Я не участвовал в разработке спецификации, и это снимает с меня, по крайней мере, часть ответственности за некоторые особенности нового стандарта. Впрочем, таких «некоторых» не очень много. Продолжим. Тег <small> больше не означает просто уменьшенный шрифт. Теперь он ограничивает логический блок, точнее часть текста, которая в бумажных документах представлена блоком с мелким шрифтом. Это может быть копирайт, отказ от ответственности или легендарное:

<small>Минимальная партия — 100500 Kr</small>

Старый элемент <hr> теперь означает логический разрыв текста на уровне параграфа. Как этот элемент будет отображаться, зависит только от воспроизводящего устройства.

Некоторому пересмотру подверглись элементы отображения списков. Во-первых, теперь атрибут start, устанавливающий начало отчета для тега <ol>, создающий нумерованный список, признанный незаконным в HTML 4, вновь признан легальным. Более того, появился новый атрибут reversed, устанавливающий обратный порядок отчета. В результате стали возможны конструкции вроде следующей:

<ol start= 2 reversed> <П>Кембрий</П> <П>Ордовик</П> <Н>Селур</Н> <И>Девон</И>

</ol>

Результат — на рис. 13.

Список «определений», создаваемый элементами <dl>, теперь определяется как связанный список для хранения групп пар имя-значение. Основное новшество заключается в том, что как имя, так и значение по новому стандарту могут содержать собственные элементы разметки и метаданные.

Рис. 13. Вот такой нумерованный список

Попытка использовать этот тег для отображения диалогов признана неудачной.

Еще некоторые изменения:

Для элемента <lable> теперь фокус не будет смещаться на ближайший <imput>, как это происходило в HTML4.

Тег <addres> сейчас привязан к обрамляющему его контейнеру <article> (если таковой отсутствует, то к <body>), соответственно, такой элемент может присутствовать для каждого <article> на странице, в том числе и для вложенных (а стандарт не запрещает и <article>, и <section> быть вложенными друг в друга).

<site> больше не может обрамлять имя автора, только название произведения.

Наконец, элемент <script> теперь предназначен не только для сценариев, но и для любых блоков пользовательских данных (атрибут linguage при этом отменен окончательно). Далее, в главе, посвященной WebGL, мы будем использовать его для хранения кода шейдеров:

<script id="shader-fs" type="x-shader/x-fragment"> precision mediump float;

#ifdef GL_ES precision highp float;

#endif

Varying vec4 vColor; void main(void) {

Gl_FragColor = vColor;

}

</script>

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *