Как и во всякую революцию (а 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>
Добавить комментарий