<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Paradigm.ru &#187; html</title>
	<atom:link href="http://paradigm.ru/tag/html/feed" rel="self" type="application/rss+xml" />
	<link>http://paradigm.ru</link>
	<description>Блог Александра Мусаева</description>
	<lastBuildDate>Wed, 23 Nov 2011 19:10:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>«Резиновость» в рамках разумного</title>
		<link>http://paradigm.ru/max-width-for-ie</link>
		<comments>http://paradigm.ru/max-width-for-ie#comments</comments>
		<pubDate>Thu, 27 Dec 2007 22:10:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Веб-дизайн]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[браузеры]]></category>

		<guid isPermaLink="false">http://www.paradigm.ru/2007/12/28/max-width-for-ie/</guid>
		<description><![CDATA[Как известно, для определения минимального и&#160;максимального значения размеров &#171;резиновых&#187; блоков в&#160;(X)HTML, предусмотрены свойства CSS max-width и&#160;max-height. Все браузеры уже года полтора правильно их&#160;интерпретируют. Кроме IE,&#160;разработчики которого по&#160;каким-то умным маркетинговым причинам клали болт на&#160;многие детали стандартов. Тем не&#160;менее, возможность задавать предельные значения для масштабируемых блоков очень полезна. Например, для того чтобы &#171;резиновая&#187; верстка не&#160;теряла товарный вид [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно, для определения минимального и&nbsp;максимального значения размеров &laquo;резиновых&raquo; блоков в&nbsp;(X)HTML, предусмотрены свойства CSS <code>max-width</code> и&nbsp;<code>max-height</code>. Все браузеры уже года полтора правильно их&nbsp;интерпретируют. Кроме IE,&nbsp;разработчики которого по&nbsp;каким-то умным маркетинговым причинам клали болт на&nbsp;многие детали стандартов.</p>

<p>Тем не&nbsp;менее, возможность задавать предельные значения для масштабируемых блоков очень полезна. Например, для того чтобы &laquo;резиновая&raquo; верстка не&nbsp;теряла товарный вид при максимизации окна браузера на&nbsp;большом мониторе, заставляя пользователя читать полуметровые строки текста.</p>

<p>Раньше я&nbsp;решал этот вопрос с&nbsp;помощью JavaScript: небольшая функция автоматически корректировала ширину &laquo;резиновых&raquo; контейнеров при изменении размера окна браузера. Вчера был найден довольно более красивый способ заставить IE&nbsp;ограничивать масштабируемые блоки. Тоже на&nbsp;основе&nbsp;JS. <span id="more-137"></span></p>

<p>В&nbsp;имлементации CSS IE&nbsp;есть своя-собственная конструкция&nbsp;&#8212; <code>expression</code>, чье значение может вычисляться с&nbsp;помощью client-side скрипта. Например, так:</p>

<div><pre><code class="css">div {
   width: expression(750 + "px");
}</code></pre></div>

<p>Что эквивалентно:</p>

<div><pre><code class="css">div {
   width: 750px;
}</code></pre></div>

<p>Используя expression в&nbsp;сочетании со&nbsp;стандартными свойствами CSS, можно добиться необходимого эффекта в&nbsp;отношении масштабируемых блоков:</p>

<div><pre><code class="html">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Limiting width&lt;/title&gt;
&lt;style type="text/css"&gt;
div#cont { 
// min-width и max-width для IE
   width:expression(document.body.clientWidth &gt; 776 ? 
      "777px" : (document.body.clientWidth &lt; 334 ? "333px" : "auto"));
// то же, для всех остальных
   max-width: 777px;
   min-width: 333px;

   height:320px;
   text-align:center;
   color:black;
   background:#f5f5f5;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div id="cont"&gt;Hello World!&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre></div>

<p>Файл лежит здесь: <a href="http://things.paradigm.ru/limited-width.html">http://things.paradigm.ru/limited-width.html</a>. Я&nbsp;проверил работоспособность этого кода в&nbsp;IE&nbsp;5.55, 6,&nbsp;7,&nbsp;Firefox и&nbsp;Opera. Теоретически, должно работать и&nbsp;в&nbsp;IE&nbsp;5.01, т.к. expression появился именно в&nbsp;ней, но&nbsp;проверить не&nbsp;начем&nbsp;&#8212; эта версия на&nbsp;моем компьютере почему-то не&nbsp;уживается с&nbsp;пятью другими инсталяциями IE&nbsp;(:</p>

<p>Точно таким&nbsp;же образом, как и&nbsp;ширину, можно контролировать высоту блоков. Разница в&nbsp;том, что вместо параметра <code>document.body.clientWidth</code>, потребуется использовать <code>this.scrollHeight</code>, а&nbsp;изменять, вместо <code>width</code>, CSS свойство <code>height</code>.</p>

<p>Основано на&nbsp;<a href="http://b23.ru/clx">материалах</a> perishablepress.com.</p>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/max-width-for-ie/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Идентификация &#171;тела&#187;</title>
		<link>http://paradigm.ru/using-id-with-body</link>
		<comments>http://paradigm.ru/using-id-with-body#comments</comments>
		<pubDate>Sat, 22 Dec 2007 22:48:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.paradigm.ru/2007/12/23/using-id-with-body/</guid>
		<description><![CDATA[В статье рассматриваются примеры использования атрибута id тега body для оформления специфических элементов веб-страниц. Автор: Chris Coyier, css-tricks.com Оригинал: http://css-tricks.com/id-your-body-for-greater-css-control-and-specificity/ Перевод: Александр Мусаев, paradigm.ru Представим, такую ситуацию: по какой-то причине у нас возникла необходимость изменить цвет ссылок, но не на всем сайте, а только на одной странице с контактами. На других страницах их оформление по [...]]]></description>
			<content:encoded><![CDATA[<p>В статье рассматриваются примеры использования атрибута <code>id</code> тега <code>body</code> для оформления специфических элементов веб-страниц.</p>

<p><strong>Автор:</strong> Chris Coyier, <a href="http://css-tricks.com">css-tricks.com</a>
<strong>Оригинал:</strong><a href=" http://css-tricks.com/id-your-body-for-greater-css-control-and-specificity/"> http://css-tricks.com/id-your-body-for-greater-css-control-and-specificity/</a>
<strong>Перевод:</strong> Александр Мусаев, <a href="http://paradigm.ru">paradigm.ru</a></p>

<p>Представим, такую ситуацию: по какой-то причине у нас возникла необходимость изменить цвет ссылок, но не на всем сайте, а только на одной странице с контактами. На других страницах их оформление по прежнему должно оставаться стандартным. Существует несколько способов добиться этого: <span id="more-118"></span></p>

<ul>
<li><strong>Для страницы контактов можно определить отдельный CSS файл.</strong> Это не идеальный вариант, влекущий за собой дополнительную работу. При необходимости внести любое изменение в таблицу стилей, понадобится каждый раз редактировать два отдельных файла.</li>
<li><strong>Для всех ссылок на странице контактов можно задать отдельный класс.</strong> Способ так же не идеален, по причине своей избыточности и противоречия семантическому подходу (почему у всех ссылок на одной странице сайта класс определен, в то время как на всех остальных — нет, при том, что никакой логической разницы между ними не наблюдается?).</li>
<li><strong>Лучший вариант решения — задать уникальный идентификатор элементу <code>body</code> на нужной странице.</strong> Это наиболее грамотное решение задачи, при котором можно использовать один единственный список стилей, ограничившись добавлением в него всего одного селектора.</li></ul>

<h3>Реализация</h3>

<p>Во-первых, зададим значение тага id для тега body нужной страницы:</p>

<p><pre><code class="html">   ...
&lt;/head&gt;</p>

<p>&lt;body id="contact-page"&gt;
   ...
</code></pre></p>

<p>Во-вторых, добавим новый селектор в CSS файл, определив в нем альтернативный цвет для всех ссылок внутри контейнера <code>body</code> с заданным идентификатором:</p>

<p><pre><code class="css">a {
color: blue;
}</p>

<p>body#contact-page a {
   color: red;
}</code></pre></p>

<p>Как еще можно использовать этот метод?
Описанная техника может быть не менее полезной при оформлении навигационных элементов. Рассмотрим конкретный пример:</p>

<p><img src="http://paradigm.ru/;-)/2007/12/tabbednav.jpg" width="466" height="54" alt="" /></p>

<p>На скриншоте закладка «Forums» выделена как активная. По всей видимости это реализовано изменением в ее CSS оформлении (например, сдвигом фонового изображения). HTML код может выглядеть так:</p>

<p><pre><code class="html">...
&lt;li&gt;&lt;a href="/fieldtips"&gt;Field tips&lt;/a&gt;&lt;/li&gt;
&lt;li class="active"&gt;&lt;a href="/forums"&gt;Forums&lt;/a&gt;&lt;/li&gt;
...</code></pre></p>

<p>В данном случае, нужное изменение в стиле задается в описании класса «active», который определен для соответствующего элемента списка. Но что произойдет, когда мы перейдем на другую страницу? Понадобится перенести определитель класса на соответствующий элемент списка, что не очень удобно, т.к. требует уникальности кода навигационного блока на каждой странице. А если понадобится добавить в список еще один элемент, это потребует еще большей работы. Так не годится.</p>

<p>Поступим иначе. Во-первых, для того чтобы не повторять код навигационного меню на каждой странице, запишем его в отдельный файл, после чего его можно будет включать с помощью нехитрого PHP кода:</p>

<p><pre><code class="php">&lt;?php include_once("nav.html"); ?&gt;</code></pre></p>

<p>Далее, вместо того, чтобы задавать класс только для активного элемента меню, определим уникальные классы для всех, после чего зададим идентификатор контейнеру <code>body</code>.</p>

<p><pre><code class="html">   ...
&lt;/head&gt;</p>

<p>&lt;body id="field-tips"&gt;
   ...
   &lt;li class="fieldtips"&gt;&lt;a href="/fieldtips"&gt;Field tips&lt;/a&gt;&lt;/li&gt;
   &lt;li class="forums"&gt;&lt;a href="/forums"&gt;Forums&lt;/a&gt;&lt;/li&gt;
   ...</code></pre></p>

<p>Теперь мы имеем возможность определять специфику оформления активного элемента с помощью CSS:</p>

<p><pre><code class="css">#field-tips li.fieldtips, #forums li.forums {
   background-position: bottom;
}</code></pre></p>

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

<p>Еще немного облегчить себе жизнь можно автоматизировав идентификацию тега body:</p>

<p><pre><code class="html">&lt;body id="&lt;?= basename($_SERVER['PHP_SELF'], ".php")?&gt;"&gt;</code></pre></p>

<p>Теперь <code>id</code> на каждой странице не придется прописывать вручную. Его значение будет соответствовать имени соответствующего файла (например, index для <code>index.php</code>).</p>

<p>Прим. переводчика: Я бы хотел добавить, что аналогичного результата можно добиться альтернативным способом — генерацией HTML кода меню на серверной стороне. При этом можно было бы добиться сокращения объема кода, избавив себя от необходимости в идентификаторах для всех элементов меню, кроме активного, и определению CSS класса для каждого из них. Код мог бы выглядеть так:</p>

<p><pre><code class="php">&lt;?php</p>

<p>function generate_nav($menu_items, $active_page = false) {
    if(!is_array($menu_items) || !count($menu_items)) {
        exit();
    }</p>

<pre><code>$html = '';

foreach($menu_items as $lnk =&amp;gt; $ttl) {
    $a = ($active === $lnk)?' class="active"':'';
    $html .= '&amp;lt;li'.$a.'&amp;gt;&amp;lt;a href="'.$lnk.'"&amp;gt;'.$ttl.'&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;';
}

return'&amp;lt;ul&amp;gt;'.$html.'&amp;lt;/ul&amp;gt;';
</code></pre>

<p>}</p>

<p>$menu = array(
        'contact' =&gt; 'Contact',
        'design' =&gt; 'Design to fit',
        'fields' =&gt; 'Fields tips',
        'forums' =&gt; 'Forums',
        'store' =&gt; 'Store'
    );</p>

<p>$active = basename($_SERVER['PHP_SELF'], ".php");</p>

<p>echo generate_nav($menu_items, $active_page);</p>

<p>?&gt;</code></pre></p>

<p>(в примере предполагается, что каждой странице соответствует файл с аналогичным именем и расширением <code>.php</code>)</p>

<p>Но это решение использует принципиально другой подход, не относящийся к теме статьи. Ценность приведенного в ней решения в помощью CSS заключается в том, что такой вариант пригоден для использования на хостинге, где PHP или другие серверные средства генерации динамического контента отсутствуют.
Кстати в последнем случае вставку навигационного блока с помощью PHP кода можно было бы заменить на SSI директиву:</p>

<p><pre><code class="ssi">&lt;!--#include virtual=”hav.html” --&gt;</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/using-id-with-body/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XRAY: HTML-штангельциркуль</title>
		<link>http://paradigm.ru/xray</link>
		<comments>http://paradigm.ru/xray#comments</comments>
		<pubDate>Fri, 14 Dec 2007 21:55:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Веб-разработка]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[букмарклеты]]></category>
		<category><![CDATA[инструменты]]></category>

		<guid isPermaLink="false">http://www.paradigm.ru/2007/12/15/xray/</guid>
		<description><![CDATA[Пиксельная линейка&#160;&#8212; довольно полезный инструмент, используемый при &#171;отладке&#187; кода веб-страниц. С&#160;ее&#160;помощью можно проверять размеры различных блоков, правильность их&#160;позиционирования и&#160;другие подобные детали. На&#160;свете существует множество реализаций этого средства, как в&#160;виде встроенной фичи специализированных редакторов, так и&#160;в&#160;виде stand-alone утилиты. В&#160;качестве примера первого варианта можно привести Dreamweaver, о&#160;котором шла речь в&#160;одном из&#160;недавних постов. Что&#160;же касается отдельных программ&#160;&#8212; ни&#160;одна [...]]]></description>
			<content:encoded><![CDATA[<p>Пиксельная линейка&nbsp;&#8212; довольно полезный инструмент, используемый при &laquo;отладке&raquo; кода веб-страниц. С&nbsp;ее&nbsp;помощью можно проверять размеры различных блоков, правильность их&nbsp;позиционирования и&nbsp;другие подобные детали. На&nbsp;свете существует множество реализаций этого средства, как в&nbsp;виде встроенной фичи специализированных редакторов, так и&nbsp;в&nbsp;виде stand-alone утилиты. В&nbsp;качестве примера первого варианта можно привести Dreamweaver, о&nbsp;котором шла речь в&nbsp;<a href="http://www.paradigm.ru/2007/12/13/future-of-css/">одном из&nbsp;недавних постов</a>. Что&nbsp;же касается отдельных программ&nbsp;&#8212; ни&nbsp;одна из&nbsp;них сейчас не&nbsp;приходит на&nbsp;ум.&nbsp;У&nbsp;меня на&nbsp;компьютере когда-то была установлена &laquo;линейка&raquo;, но&nbsp;давным-давно потерялась из-за общей склонности к&nbsp;этому всех мелких программ (особенно под Windows, когда раз в&nbsp;год-два возникает необходимость профилактической переустановки ОС&nbsp;и&nbsp;всего софта заодно). Найти линейку снова&nbsp;&#8212; несложно (и&nbsp;<a href="http://b23.ru/cja">гугл в&nbsp;помощь</a> тем, кто захочет это сделать), но&nbsp;сейчас я&nbsp;бы хотел рассказать об&nbsp;одной более удобной и&nbsp;гораздо более функциональной альтернативе, которую нашел на&nbsp;прошлой неделе.</p>

<p>Она называется XRAY и&nbsp;представляет собой букмарклет, который может демонстрировать разную полезную информацию о&nbsp;всех &laquo;внутренностях&raquo; страницы. В&nbsp;частности, размеры всех элементов, координаты их&nbsp;расположения, CSS-свойства, названия HTML тагов, соответствующих отображаемым блокам, и&nbsp;некоторые другие детали. Для того, чтобы увидеть все эти данные в&nbsp;специальном окошке, достаточно нажать на&nbsp;букмарклет и&nbsp;кликом отметить интересующий элемент.</p>

<p>Ниже приведен скриншот главной страницы paradigm.ru в&nbsp;&laquo;просвеченном&raquo; виде: <span id="more-74"></span></p>

<p><img src="http://paradigm.ru/;-)/2007/12/xray.png" width="500" height="290" alt="" /></p>

<p>Удобство заключается в&nbsp;том, что реализация выполнена на&nbsp;JavaScript, и&nbsp;для получения возможности пользоваться такой штукой нет необходимости устанавливать какие-либо программы или расширения для браузера (последнее бывает крайне неудобно, когда рабочих мест больше одного). Понадобится просто перетащить ссылку с&nbsp;сайта <a href="http://westciv.com/xray/">XRAY</a> на&nbsp;панель браузера с&nbsp;линками. Не&nbsp;стану копировать ее&nbsp;в&nbsp;этот пост, т.к. возможны модификации скрипта и&nbsp;наиболее свежую версию лучше брать на&nbsp;домашней странице.</p>

<p>По&nbsp;заявлению разработчиков, букмарклет дружит со&nbsp;всеми распространенными браузерами (Internet Explorer 6+, Safari, Firefox, Camino и&nbsp;Mozilla).</p>

<p>Ссылки на&nbsp;тему:</p>

<ul><li><a href="http://westciv.com/xray/">XRAY: look beneath the skin</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/xray/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Первый взгляд на HTML 5</title>
		<link>http://paradigm.ru/html5-preview</link>
		<comments>http://paradigm.ru/html5-preview#comments</comments>
		<pubDate>Mon, 10 Dec 2007 02:50:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Стандарты]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[браузеры]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[стандарты]]></category>

		<guid isPermaLink="false">http://www.paradigm.ru/2007/12/10/html5-preview/</guid>
		<description><![CDATA[Preamble В&#160;статье рассматриваются новые интересные возможности, которые предоставит пятая версия стандарта HTML. Приводится несколько примеров кода с&#160;применением новых тегов, а&#160;так&#160;же поясняются понятия HTML- и&#160;XML-сериализации с&#160;описанием преимуществ применения каждой из&#160;них. Вводная &#171;лирическая&#187; часть текста сокращена, т.к. она во&#160;многом пересекается с&#160;ранее опубликованным обзорным постом об&#160;HTML 5, в&#160;котором был приведен фрагмент интервью того&#160;же автора. Автор: Лахлан Хант, http://lachy.id.au [...]]]></description>
			<content:encoded><![CDATA[<h3>Preamble</h3>

<p>В&nbsp;статье рассматриваются новые интересные возможности, которые предоставит пятая версия стандарта HTML. Приводится несколько примеров кода с&nbsp;применением новых тегов, а&nbsp;так&nbsp;же поясняются понятия HTML- и&nbsp;XML-сериализации с&nbsp;описанием преимуществ применения каждой из&nbsp;них.</p>

<p>Вводная &laquo;лирическая&raquo; часть текста сокращена, т.к. она во&nbsp;многом пересекается с&nbsp;ранее опубликованным <a href="http://www.paradigm.ru/2007/11/29/what-is-html5/">обзорным постом об&nbsp;HTML 5</a>, в&nbsp;котором был приведен фрагмент интервью того&nbsp;же автора.</p>

<p><strong>Автор:</strong> Лахлан Хант, <a href="http://lachy.id.au/">http://lachy.id.au</a><br />
<strong>Оригинал:</strong> <a href="http://www.alistapart.com/articles/previewofhtml5">http://www.alistapart.com/articles/previewofhtml5</a><br />
<strong>Перевод:</strong> Александр Мусаев, <a href="http://paradigm.ru/">http://paradigm.ru</a><br /></p>

<h3>Введение</h3>

<p>В&nbsp;ходе непрерывного развития интернета, к&nbsp;языку гипертекстовой разметки предъявляется все более серьезные требования. HTML 4&nbsp;находился в&nbsp;употреблении на&nbsp;протяжении уже более десятка лет, и&nbsp;многочисленные инновации, применяемые сейчас на&nbsp;веб-сайтах, делают ограничения его спецификации все более ощутимыми. Веб-разработчикам давно требуется более широкая функциональность, чем та,&nbsp;которую может представить это стандарт.</p>

<p>Пятая версия HTML содержит множество новых возможностей для создания интерактивных сайтов и&nbsp;веб-приложений, взаимодействия с&nbsp;формами, работы с&nbsp;различными программными интерфейсами, внедрения в&nbsp;страницы мультимедиа-контента, структурирования документов и&nbsp;т.д. <span id="more-58"></span></p>

<h3>Структура</h3>

<p>HTML 5&nbsp;предоставляет множество новых элементов, благодаря которым структурирование веб-документов будет существенно упрощено. Множество страниц, основанных на&nbsp;HTML 4,&nbsp;содержали в&nbsp;себе типичные структурные фрагменты, таких как заголовок, колонки текста, нижний колонтитул и&nbsp;т.д. На&nbsp;сегодняшний день обычным решением считается определение этих блоков с&nbsp;помощью контейнеров <code>div</code> с указанием для каждого из&nbsp;них имени соответствующего класса или уникального идентификатора.</p>

<p><img src="http://paradigm.ru/;-)/2007/12/01structure-div.gif" width="500" height="250" alt="" /></p>

<p>На&nbsp;иллюстрации приведена типовая разметка страницы с&nbsp;двумя колонками, сделанная с&nbsp;помощью контейнеров <code>div</code> с&nbsp;атрибутами <code>class</code> и&nbsp;<code>id</code>. В&nbsp;ней содержится &laquo;шапка&raquo;, горизонтальный блок навигационных элементов, блок для основного текста страницы, вспомогательная колонка справа от&nbsp;него и&nbsp;нижний колонтитул.</p>

<p>Элементы <code>div</code> активно используются по&nbsp;той причине, что текущая версия стандарта HTML испытывает недостаток в&nbsp;семантических элементах, с&nbsp;помощью которых можно было&nbsp;бы описывать перечисленные выше блоки страниц более конкретно. В&nbsp;стандарте HTML 5&nbsp;учитывается этот недостаток и&nbsp;предоставляется ряд новых тегов для отдельного описания каждого блока типовой разметки.</p>

<p><img src="http://paradigm.ru/;-)/2007/12/02structure-html5.gif" width="500" height="250" alt="" /></p>

<p>Контейнеры <code>div</code> заменяются в&nbsp;нашем примере новыми элементами: <code>header</code>, <code>nav</code>, <code>section</code>, <code>article</code>, <code>aside</code>, и&nbsp;<code>footer</code>. HTML-код при этом принимает следующий вид:</p>

<div><pre><code>&lt;body&gt;
  &lt;header&gt;...&lt;/header&gt;
  &lt;nav&gt;...&lt;/nav&gt;
  &lt;article&gt;
    &lt;section&gt;
      ...
    &lt;/section&gt;
  &lt;/article&gt;
  &lt;aside&gt;...&lt;/aside&gt;
  &lt;footer&gt;...&lt;/footer&gt;
&lt;/body&gt;</code></pre></div>

<p>Существует ряд причин отдавать предпочтение перечисленным выше новым тегам. Например, при их&nbsp;использовании снимается существовавшее ранее ограничение в&nbsp;шесть уровней заголовков (<code>h1</code>-<code>h6</code>). В&nbsp;спецификации подробно описан алгоритм <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/section-sections.html#outlines">формирования оглавления</a>, в&nbsp;котором не&nbsp;только учитываются новые структурные элементы, но&nbsp;и&nbsp;сохраняется обратная совместимость с&nbsp;предыдущей версией стандарта. Это нововведение может быть использовано для автоматической генерации оглавлений, что упростит навигацию внутри веб-страниц.</p>

<p>В&nbsp;следующем примере совместно используются контейнеры <code>section</code> и&nbsp;<code>h1</code>:</p>

<div><pre><code>&lt;h1&gt;Level 1&lt;/h1&gt;
&lt;section&gt;
  &lt;h1&gt;Level 2&lt;/h1&gt;
  &lt;section&gt;
    &lt;h1&gt;Level 3&lt;/h1&gt;
  &lt;/section&gt;
&lt;/section&gt;</code></pre></div>

<p>Обратите внимание, что для лучшей совместимости с&nbsp;существующими браузерами, помимо <code>h1</code>&nbsp;так&nbsp;же возможно использование заголовков других уровней (<code>h2</code>-<code>h6</code>).</p>

<p>Когда предназначения секций страницы может быть автоматически определено по&nbsp;специфичным именам тегов, появляется возможность организации более легкой и&nbsp;эффективной навигации по документу. Например, пользователи смогут одним кликом проматывать оглавление, быстро переходя к&nbsp;содержательной части большого документа, или переходить от&nbsp;одной статьи к&nbsp;следующей. Что самое интересное, при этом становится вовсе необязательным добавление в&nbsp;страницу вспомогательных навигационных ссылок. Код при этом становится менее &laquo;захламлен&raquo; второстепенными деталями, без которых можно обойтись.</p>

<p>Элемент <code>head</code> интерпретируется как заголовок секции. Такие контейнеры при необходимости могут содержать не&nbsp;только, собственно, название, но&nbsp;и&nbsp;подзаголовок, историю изменений, ссылку на&nbsp;автора и&nbsp;любую другую информацию, которую логично отнести к&nbsp;заголовочной части.</p>

<div><pre><code>&lt;header&gt;
  &lt;h1&gt;A Preview of HTML 5&lt;/h1&gt;
  &lt;p class=&quot;byline&quot;&gt;By Lachlan Hunt&lt;/p&gt;
&lt;/header&gt;

&lt;header&gt;
  &lt;h1&gt;Example Blog&lt;/h1&gt;
  &lt;h3&gt;Insert tag line here.&lt;/h3&gt;
&lt;/header&gt;</code></pre></div>

<p>Элемент <code>footer</code> представляет собой завершающий блок секции, к&nbsp;которой относится (аналог нижнего колонтитула для страницы &laquo;бумажного&raquo; документа). Такие блоки, как правило, содержат вспомогательную информацию о&nbsp;секции. Например, ссылки на&nbsp;связанные материалы, информацию о&nbsp;правах на&nbsp;копирование и&nbsp;т.д.</p>

<div><pre><code>&lt;footer&gt;© 2007 Example Inc.&lt;/footer&gt;</code></pre></div>

<p><code>nav</code> предназначен для навигационных ссылок, что полезно как для межстраничных переходов внутри сайта, так и&nbsp;для внутристраничной навигации (для организации оглавления).</p>

<div><pre><code>&lt;nav&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;/&quot;&gt;Home&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;/products&quot;&gt;Products&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;/services&quot;&gt;Services&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;/about&quot;&gt;About&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;</code></pre></div>

<p>Контейнер <code>aside</code> используется для вспомогательных материалов, например, для определения дополнительных колонок с&nbsp;второстепенным текстом (сайдбаров).</p>

<div><pre><code>&lt;aside&gt;
  &lt;h1&gt;Archives&lt;/h1&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;/2007/09/&quot;&gt;September 2007&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;/2007/08/&quot;&gt;August 2007&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;/2007/07/&quot;&gt;July 2007&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/aside&gt;</code></pre></div>

<p>Элемент <code>section</code> интерпретируется как секция общего назначения. Такой секцией может быть, например, параграф.</p>

<div><pre><code>&lt;section&gt;
&lt;h1&gt;Chapter 1: The Period&lt;/h1&gt;
&lt;p&gt;It was the best of times, it was the worst of times,
   it was the age of wisdom, it was the age of foolishness,
   it was the epoch of belief, it was the epoch of incredulity,
   it was the season of Light, it was the season of Darkness,
   ...&lt;/p&gt;
&lt;/section&gt;</code></pre></div>

<p><small>(в&nbsp;примере приведена выдержка из&nbsp;&laquo;<a href="http://www.gutenberg.org/etext/98">Повести о&nbsp;двух городах</a>&raquo; Чарльза Диккенса)</small></p>

<p><code>article</code> определяет независимые секции документа, страницы или сайта. Этот элемент может использоваться для выделения новостей, сообщений на&nbsp;форуме, постов или комментариев на&nbsp;блоге и&nbsp;т.д.</p>

<div><pre><code>&lt;article id=&quot;comment-2&quot;&gt;
  &lt;header&gt;
    &lt;h4&gt;&lt;a href=&quot;#comment-2&quot; rel=&quot;bookmark&quot;&gt;Comment #2&lt;/a&gt;
        by &lt;a href=&quot;http://example.com/&quot;&gt;Jack O'Niell&lt;/a&gt;&lt;/h4&gt;
    &lt;p&gt;&lt;time datetime=&quot;2007-08-29T13:58Z&quot;&gt;August 29th, 2007 at 13:58&lt;/time&gt;
  &lt;/header&gt;
  &lt;p&gt;That's another great article!&lt;/p&gt;
&lt;/article&gt;</code></pre></div>

<h3>Аудио- и&nbsp;видеоматериалы</h3>

<p>В&nbsp;последние годы аудиозаписи и&nbsp;видеоролики получили широкое распространение в&nbsp;интернете благодаря многочисленным сервисам, облегчающим их&nbsp;публикацию (YouTube, Google Video, MySpace, etc.). Из-за недостатка встроенных возможностей HTML, большинство сайтов, размещающих подобный контент, используют Flash, в&nbsp;качестве вспомогательного средства. Выбор этой технологии обычно обоснован тем, что Flash на&nbsp;данный момент имеет наиболее широкую поддержку среди браузеров, по-сравнению с&nbsp;альтернативными технологиями, с&nbsp;помощью которых можно было&nbsp;бы обеспечить воспроизведение мультимедиа-контента (QuickTime, Windows Media).</p>

<p>Огромное количество мультимедиа-плееров, написанных на&nbsp;Flash, является подтверждением того, что разработчики чаще всего предпочитают самостоятельно формировать их&nbsp;интерфейс, не&nbsp;смотря на&nbsp;то,&nbsp;что в&nbsp;большинстве случаев пользователям предоставляется одна и&nbsp;та&nbsp;же функциональность (воспроизведение, пауза, перемотка и&nbsp;управление громкостью). Планируется, что в&nbsp;будущем эти функции будут поддерживаться самими браузерами, что обеспечит базовую возможность для встраивания аудио- и&nbsp;видеозаписей в&nbsp;веб-страницы, а&nbsp;так&nbsp;же возможность управлять этими элементами через DOM API.</p>

<p>С&nbsp;помощью новых тегов <code>video</code> и&nbsp;<code>audio</code> это будет действительно просто. Большая часть функций их&nbsp;API будет совпадать, с&nbsp;одной лишь разницей в&nbsp;ориентации на&nbsp;воспроизведение визуального и&nbsp;невизуального материала.</p>

<p>У&nbsp;<a href="http://my.opera.com/desktopteam/blog/2007/11/08/experimental-video-build-released-on-opera-labs">Opera</a> и&nbsp;<a href="http://webkit.org/blog/140/html5-media-support/">WebKit</a> уже есть релизы с&nbsp;частичной поддержкой тега <code>video</code>. Уже сейчас можно загрузить экспериментальную версию браузера <a href="http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/">Opera</a> или последнюю еженочную сборку <a href="http://nightly.webkit.org/">WebKit</a> для демонстрации работы приведенных ниже примеров кода. Opera имеет поддержку <a href="http://en.wikipedia.org/wiki/Theora">Ogg Theora</a>, а&nbsp;WebKit понимает <a href="http://en.wikipedia.org/wiki/QuickTime#QuickTime_framework">все форматы</a>, что и&nbsp;QuickTime, включая кодеки сторонних разработчиков.</p>

<p>Самый простой способ вставки видеозаписи в&nbsp;веб-страницу состоит в&nbsp;применении контейнера <code>video</code>, как показано на&nbsp;следующем примере. Атрибут <code>controls</code> предназначен для определения того, нужно&nbsp;ли будет отобразить интерфейс стандартного медиаплеера или нет (в&nbsp;нашем случае элементы управления воспроизведением будут отображены).</p>

<div><pre><code>&lt;video src=&quot;video.ogv&quot; controls poster=&quot;poster.jpg&quot; 
   width=&quot;320&quot; height=&quot;240&quot;&gt;

   &lt;a href=&quot;video.ogv&quot;&gt;Download movie&lt;/a&gt;

&lt;/video&gt;</code></pre></div>

<p>Необязательный атрибут <code>poster</code> может быть использован для определения статического изображения, отображаемого в&nbsp;контейнере <code>video</code> до&nbsp;того, как начнется воспроизведение записи. Существуют форматы видео, которые имеют аналогичную встроенную возможность (напрмиер, MPEG4), но&nbsp;использование описанного выше подхода позволяет добиться этой функциональности без привязки к&nbsp;конкретному кодеку.</p>

<p><img src="http://paradigm.ru/;-)/2007/12/04opera-video.jpg" width="372" height="250" alt="" /></p>

<p>Точно таким&nbsp;же образом можно встраивать в&nbsp;документы аудиозаписи с&nbsp;помощью элемента <code>audio</code>. Большинство атрибутов у&nbsp;тегов audio и&nbsp;<code>video</code> совпадают, но&nbsp;у&nbsp;audio по&nbsp;понятным причинам отсутствуют <code>width</code>, <code>height</code> и&nbsp;<code>poster</code>.</p>

<div><pre><code>&lt;audio src=&quot;music.oga&quot; controls&gt;
    &lt;a href=&quot;music.oga&quot;&gt;Download song&lt;/a&gt;
&lt;/audio&gt;</code></pre></div>

<p>В&nbsp;стандарте HTML 5&nbsp;предусмотрен элемент source для вставки ссылок на&nbsp;аудио- и&nbsp;видеофайлы в&nbsp;нескольких альтернативных форматах, из&nbsp;которых браузер сможет делать выбор наиболее предпочтительного варианта, на&nbsp;основе поддерживаемых им&nbsp;кодеков и&nbsp;указанных в&nbsp;коде типов формата контента. При использовании вложенных тегов <code>source</code>, атрибут <code>src</code> контейнеров <code>audio</code> и&nbsp;<code>video</code> должен быть опущен, в&nbsp;противном&nbsp;же случае, теги <code>source</code> будут проигнорированы.</p>

<div><pre><code>&lt;video poster=&quot;poster.jpg&quot;&gt;
    &lt;source src=&quot;video.3gp&quot; type=&quot;video/3gpp&quot; 
       media=&quot;handheld&quot;&gt;
    &lt;source src=&quot;video.ogv&quot; type=&quot;video/ogg&quot;
       codecs=&quot;theora, vorbis&quot;&gt;
    &lt;source src=&quot;video.mp4&quot; type=&quot;video/mp4&quot;&gt;
&lt;/video&gt;

&lt;audio&gt;
  &lt;source src=&quot;music.oga&quot; type=&quot;audio/ogg&quot;&gt;
  &lt;source src=&quot;music.mp3&quot; type=&quot;audio/mpeg&quot;&gt;
&lt;/audio&gt;</code></pre></div>

<p>Для разработчиков, которые сами желают контролировать функционирование пользовательского интерфейса и&nbsp;обеспечивать лучшее его соответствие общему дизайну страниц, предоставлен специальный API, через который можно управлять процессом воспроизведения. В&nbsp;этом API определены методы <code>play()</code> и&nbsp;<code>pause()</code> (смысл которых понятен из&nbsp;названия), а&nbsp;так&nbsp;же свойство <code>currentTime</code>, которое в&nbsp;следующем примере используется для &laquo;перемотки&raquo; видеозаписи в&nbsp;начало.</p>

<div><pre><code>&lt;video src=&quot;video.ogg&quot; id=&quot;video&quot;&gt;&lt;/video&gt;

&lt;script&gt;
  var video = document.getElementById(&quot;video&quot;);
&lt;/script&gt;

&lt;p&gt;
   &lt;button type=&quot;button&quot; onclick=&quot;video.play();&quot;&gt;Play&lt;/button&gt;
   &lt;button type=&quot;button&quot; onclick=&quot;video.pause();&quot;&gt;Pause&lt;/button&gt;
   &lt;button type=&quot;button&quot; onclick=&quot;video.currentTime = 0;&quot;&gt;
      &lt;&lt; Rewind&lt;/button&gt;
&lt;/p&gt;</code></pre></div>

<p><small>(<a href="http://people.opera.com/howcome/2007/video/simple.html">похожий пример</a> на opera.com)</small></p>

<p>Существует множество других атрибутов и&nbsp;функций API, помимо перечисленных в&nbsp;данной статье. Их&nbsp;подробное описание можно найти в&nbsp;актуальной на&nbsp;данный момент <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/section-video.html#video">рабочей версии спецификации</a>.</p>

<h3>Представление документов</h3>

<p>В&nbsp;отличии от&nbsp;предыдущих версий HTML и&nbsp;XHTML, описанных в&nbsp;терминах их&nbsp;собственного синтаксиса, HTML 5&nbsp;описывается согласно терминам Document Object Model (DOM). Для внутреннего представления документа браузером используется древовидная структура.</p>

<p>Ниже приведен простейший пример структуры документа, состоящего из&nbsp;названия страницы, заголовка и&nbsp;одного абзаца текста:</p>

<p><img src="http://paradigm.ru/;-)/2007/12/03dom.gif" width="500" height="150" alt="" /></p>

<p>Такое дерево содержит в&nbsp;себе элемент <code>title</code> в&nbsp;контейнере <code>head</code>, а&nbsp;так&nbsp;же <code>h1</code>&nbsp;и&nbsp;<code>p</code>&nbsp;в <code>body</code>.</p>

<p>Основная причина (и&nbsp;преимущество) выбора DOM для определения стандарта HTML 5&nbsp;состоит в&nbsp;том, что сам язык в&nbsp;таком случае может быть описан независимо от&nbsp;синтаксиса. Существуют два основных типа синтаксиса, согласно которым может быть представлен HTML документ: HTML-сериализация (так&nbsp;же известная как HTML 5)&nbsp;и&nbsp;XML-сериализация (или XHTML 5).</p>

<p>HTML-сериализация основана на&nbsp;обычном для более ранних версий синтаксисе HTML (созданном на&nbsp;базе SGML). Ее&nbsp;определение ориентировано на&nbsp;лучшее соответствие тому, как в&nbsp;действительности браузеры обрабатываю HTML.</p>

<div><pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;An HTML Document&lt;/title&gt;
  &lt;/head&gt;

  &lt;body&gt;
    &lt;h1&gt;Example&lt;/h1&gt;
    &lt;p&gt;This is an example HTML document.
  &lt;/body&gt;
&lt;/html&gt;</code></pre></div>

<p>Как и&nbsp;в&nbsp;предыдущих версиях HTML, некоторые теги остаются опциональными, и&nbsp;их&nbsp;наличие автоматически подразумевается.</p>

<p>XML-сериализация использует XML 1.0 и&nbsp;пространства имен, так&nbsp;же как и&nbsp;XHTML 1.0.</p>

<div><pre><code>&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
  &lt;head&gt;
    &lt;title&gt;An HTML Document&lt;/title&gt;
  &lt;/head&gt;

  &lt;body&gt;
    &lt;h1&gt;Example&lt;/h1&gt;
    &lt;p&gt;This is an example HTML document.&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;</code></pre></div>

<p>В отличие от&nbsp;предыдущего примера, здесь присутствует атрибут <code>xmlns</code>, а&nbsp;так же закрывающий тег <code>p</code> (чье наличие в&nbsp;контексте XML обязательно).</p>

<p>Для определения разницы между сериализациями, браузеры будут использовать значение MIME-типа. Любой документ, определенный как <code>text/html</code>, должен соответствовать требованиям HTML-сериализации. В&nbsp;случае&nbsp;же если MIME-тип имеет значение <code>application/xhtml+xml</code>, должны быть удовлетворены требования XML-сериализации.</p>

<p>Выбор подходящего типа сериализации возлагается на&nbsp;веб-мастера, т.к. ни&nbsp;один из&nbsp;двух возможных вариантов изначально не&nbsp;может считаться предпочтительным абсолютно во&nbsp;всех случаях.</p>

<p><strong>Преимущества использования HTML-сериализации:</strong></p>

<ul>
<li>Обратная совместимость.</li>
<li>Хорошо знакомый синтаксис по&nbsp;предыдущим версиям стандарта HTML.</li>
<li>&laquo;Мягкие&raquo; синтаксические правила, которые прощают мелкие ошибки. Благодаря этому, пользователи с&nbsp;меньшей вероятностью смогут увидеть сообщение от&nbsp;браузера о&nbsp;невозможности отображения документа (даже если ошибки в&nbsp;нем действительно присутствуют).</li>
<li>Удобный, лаконичный синтаксис, в&nbsp;котором можно опускать некоторые теги и&nbsp;значения ряда атрибутов.</li></ul>

<p><em>Примечание переводчика:</em> многие из&nbsp;перечисленных преимуществ так&nbsp;же являются и&nbsp;недостатками. В&nbsp;частности, снижение жесткости синтаксических правил автоматически провоцирует порождение небрежного, &laquo;грязного&raquo; кода.</p>

<p><strong>Преимущества применения XHTML-сериализации:</strong></p>

<ul>
<li>Жесткие синтаксические правила XML заставляют писать более качественную разметку, что часто облегчает дальнейшую работу с&nbsp;контентом.</li>
<li>Интеграция с&nbsp;другими основанными на&nbsp;XML стандартами (например, SVG и&nbsp;MathML).</li>
<li>Совместимость со&nbsp;стандартными средствами обработки XML (часто применяется при обработке и&nbsp;публикации материалов).</li></ul>

<h3>Содействие развитию стандарта</h3>

<p>Не&nbsp;смотря на&nbsp;то,&nbsp;что работа над HTML 5&nbsp;идет семимильными шагами, до&nbsp;ее&nbsp;завершения остается еще немалое количество времени (по&nbsp;сегодняшним оценкам потребуется еще 10-15&nbsp;лет). В&nbsp;течении этого времени, отзывы со&nbsp;стороны веб-дизайнеров, разработчиков CMS и&nbsp;браузеров, а&nbsp;так&nbsp;же иных специалистов, остаются крайне актуальными для успешного развития проекта. Инициатива всех желающих внести свой вклад в&nbsp;развитие HTML 5&nbsp;не&nbsp;только приветствуется, но&nbsp;и&nbsp;активно поощряется.</p>

<p>Вспомогательные материалы и ссылки по теме:</p>

<ul>
<li><a href="http://www.w3.org/html/wg/html5/diff/">Отличия от&nbsp;HTML 4</a>, в&nbsp;которых перечислены все изменения, произошедшие относительно предыдущей версии.</li>
<li><a href="http://www.w3.org/TR/html-design-principles/">Принципы HTML-дизайна</a>&nbsp;&#8212; обсуждение принципов, на&nbsp;основании которых сейчас принимаются решения относительно процесса проектирования. </li>
<li><a href="http://dev.w3.org/html5/html-author/">Руководство веб-разработчика по&nbsp;HTML 5</a>&nbsp;&#8212; предназначено для помощи веб-дизайнерам и&nbsp;разработчикам в&nbsp;понимании всего, что им&nbsp;необходимо знать относительно HTML 5.&nbsp;Содержит рекомендации и&nbsp;демонстрационные примеры.</li>
<li><a href="http://www.w3.org/html/wg/">W3C&#8217;s HTML WG</a></li>
<li><a href="http://lists.w3.org/Archives/Public/public-html/">Список рассылки HTML WG</a></li>
<li><a href="http://esw.w3.org/topic/HTML/">Вики HTML WG</a></li>
<li><a href="http://www.whatwg.org/mailing-list">Список рассылки WHATWG</a></li>
<li><a href="http://forums.whatwg.org/">Форум WHATWG</a></li>
<li><a href="http://blog.whatwg.org/">Блог WHATWG</a></li></ul>

<p>Обсуждение на Хабре: <a href="http://habrahabr.ru/blog/webdev/32158.html">http://habrahabr.ru/blog/webdev/32158.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/html5-preview/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>HTML5: о том, как это может быть</title>
		<link>http://paradigm.ru/what-is-html5</link>
		<comments>http://paradigm.ru/what-is-html5#comments</comments>
		<pubDate>Thu, 29 Nov 2007 20:51:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Стандарты]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[стандарты]]></category>

		<guid isPermaLink="false">http://www.paradigm.ru/2007/11/29/what-is-html5/</guid>
		<description><![CDATA[Когда я&#160;в&#160;первый раз услышал о&#160;пятой версии HTML, первое, что пришло в&#160;голову,&#160;&#8212; это первоапрельская шутка. В&#160;тот раз, прочитав краткий список новых возможностей языка разметки, я&#160;действительно решил, что это байка и&#160;не&#160;стал искать дополнительных опровержений ее&#160;существования. Как выяснилось, напрасно. Новая версия стандарта действительно существует, хотя и&#160;в&#160;черновом варианте. Ее&#160;разработка была инициирована группой WHATWG (Web Hypertext Application Technology Working Group), [...]]]></description>
			<content:encoded><![CDATA[<p>Когда я&nbsp;в&nbsp;первый раз услышал о&nbsp;пятой версии HTML, первое, что пришло в&nbsp;голову,&nbsp;&#8212; это первоапрельская шутка. В&nbsp;тот раз, прочитав краткий список новых возможностей языка разметки, я&nbsp;действительно решил, что это байка и&nbsp;не&nbsp;стал искать дополнительных опровержений ее&nbsp;существования. Как выяснилось, напрасно. Новая версия стандарта действительно существует, хотя и&nbsp;в&nbsp;черновом варианте. Ее&nbsp;разработка была инициирована группой <a href="http://whatwg.org/">WHATWG</a> (Web Hypertext Application Technology Working Group), а&nbsp;через некоторое время поддержана подразделением <a href="http://w3c.org/">W3C</a>&nbsp;&#8212; <a href="http://www.w3.org/html/wg/">HTML WG</a>.</p>

<p>В&nbsp;HTML5&nbsp;появится немалое количество новых возможностей, например, встроенные средства для более эффективного создания интерсактивных веб-приложений, интеграции мультимедийного контента, etc. В&nbsp;принципе, это хорошо и&nbsp;правильно, тем не&nbsp;менее, само существование и&nbsp;развитие этого стандарта порождает вопросы относительно его позиционирования. Для чего нужно возрождать HTML, когда уже много лет W3C рекомендует переход на&nbsp;XHTML, а&nbsp;в&nbsp;перспективе&nbsp;&#8212; на&nbsp;еще более суровый стандарт XHTML2? На&nbsp;фоне этих рекомендаций, логика которых вполне понятна, HTML5&nbsp;кажется шагом назад, не&nbsp;смотря на&nbsp;нововведения в&nbsp;его функциональности.</p>

<p>Я&nbsp;нашел интервью одного из&nbsp;инсайдеров WHATWG, где затрагивается эта тема. Ниже приведен перевод ответов на&nbsp;некоторые наиболее интересные вопросы оттуда, в&nbsp;которых Lachlan Hunt говорит об&nbsp;HTML5 и&nbsp;предназначении этого стандарта.</p>

<blockquote><strong>[Q] &#8230;Итак, что&nbsp;же представляет собой HTML5?</strong>

[A] HTML5&nbsp;представляет собой новое поколение стандарта HTML, над которым сейчас ведется разработка в&nbsp;WHATWG. Это попытка документировать и&nbsp;стандартизировать многие возможности HTML и&nbsp;DOM, которые уже давно и&nbsp;активно применяются разработчиками, но&nbsp;при этом имеют очень слабое описание в&nbsp;HTML4&nbsp;а&nbsp;в более ранних версиях стандарта&nbsp;&#8212; вообще не&nbsp;присутствуют. Кроме того, HTML5&nbsp;предлагает нововведения, разработанные для удовлетворения актуальных на&nbsp;сегодняшний день нужд разработчиков.

<strong>[Q] Как HTML5&nbsp;уживется с&nbsp;XHTML2? Найдется&nbsp;ли применение им&nbsp;обоим?</strong>

Спецификация XHTML2&nbsp;находилась в&nbsp;закрытой разработке, начиная с&nbsp;2001-2002&nbsp;годов, и&nbsp;рассчитывалась для замены стандарта HTML. Тем не&nbsp;менее, сейчас в&nbsp;ней имеются серьезные недостатки, кроме того качество этой спецификации оставляет желать лучшего. В&nbsp;ней изначально не&nbsp;предполагалась обратная совместимость и&nbsp;был определен ряд новых возможностей, которые будет либо невозможно, либо крайне трудно реализовать в&nbsp;наиболее распространенных на&nbsp;сегодняшний день браузерах. Многие из&nbsp;нас так&nbsp;же видели двусмысленность и&nbsp;недостатки в&nbsp;описаниях некоторых деталей, что могло сделать их&nbsp;совместимость недостижимой.

В&nbsp;итоге, мы&nbsp;скорее всего так никогда и&nbsp;не&nbsp;увидим имплементацию XHTML2&nbsp;в&nbsp;основных браузерах. W3C принял решение продолжить работу над спецификацией XHTML2&nbsp;в&nbsp;рамках отдельной группы, но&nbsp;смысл этого шага остался понятен тогда очень немногим. Для разъяснения ситуации была опубликована статья &laquo;<a href="http://www.w3.org/2007/03/vision">Architectural vision for HTML/XHTML2/Forms Chartering</a>&raquo;.

Если разработка XHTML2&nbsp;когда-нибудь завершится, скорее всего применение этого стандарта будет ограничено внутренними корпоративными сетями, где разработчики имеют больше возможностей влиять на&nbsp;выбор аппаратного и&nbsp;программного обеспечения на&nbsp;клиентских машинах. В&nbsp;то&nbsp;же время HTML5&nbsp;ориентирован на&nbsp;использование в&nbsp;глобальной сети. Таким образом, HTML5 и&nbsp;XHTML2&nbsp;могут существовать одновременно, будучи ориентированы на&nbsp;разные рынки, но,&nbsp;с&nbsp;моей точки зрения, существование XHTML2&nbsp;необязательно.

<strong>[Q] Что такое WHATWG и&nbsp;какова его роль? Некое подобие подпольной группы сопротивления, состоящей из&nbsp;злобных гиков?</strong>

[A] В&nbsp;2004&nbsp;году Apple, Mozilla и&nbsp;Opera обеспокоились пренебрежительным отношением W3C к&nbsp;стандарту HTML, а&nbsp;заодно и&nbsp;к&nbsp;нуждам разработчиков. Эти компании противостояли инициативе W3C полностью перейти на&nbsp;XML и&nbsp;оставить HTML в&nbsp;прошлом.

На&nbsp;сегодняшний день, WHATWG&nbsp;&#8212; растущее сообщество производителей браузеров, веб-разработчиков и&nbsp;других людей, заинтересованных в&nbsp;создании нового поколения HTML и&nbsp;сопутствующих технологий, целенаправленно ориентированных на&nbsp;разработку и&nbsp;внедрение приложений для WWW.

Если&nbsp;бы не&nbsp;было WHATWG, мы&nbsp;до&nbsp;сих пор оставались&nbsp;бы в&nbsp;прошлом 10-летней давности. Прямым результатом их&nbsp;деятельности является открытие в&nbsp;W3C специальной группы для продолжения работы над HTML5. В&nbsp;отличии от&nbsp;иных рабочих групп W3C, она открыта для всех желающих принять участие. На&nbsp;момент написания этих строк, на&nbsp;рассылку WHATWG подписаны более 700&nbsp;человек, и&nbsp;еще 300&nbsp;учувствуют в&nbsp;W3C HTML WG.&nbsp;Среди них есть представители четырех главных разработчиков браузеров&nbsp;&#8212; Mozilla, Opera, Safari и&nbsp;IE,&nbsp;а&nbsp;так же множество веб-программистов, дизайнеров и&nbsp;других заинтересованных лиц.
</blockquote>

<p>Такие дела. Не&nbsp;могу сказать, что подписываюсь под высказываниями LH,&nbsp;т.к. смысл в&nbsp;переходе от&nbsp;HTML к&nbsp;XHTML все&nbsp;же есть (и&nbsp;смысл немалый), но&nbsp;констатация ряда фактов в&nbsp;этом интервью наводит на&nbsp;некоторые размышления.</p>

<p>В&nbsp;любом случае, каких-то революционных изменений не&nbsp;произойдет. HTML5&nbsp;&#8212; это скорее смена направления развития. На&nbsp;wiki WHATWG сказано, что стандарт выйдет (внимание!) не&nbsp;ранее 2022&nbsp;года (: А&nbsp;если учесть, что в&nbsp;оценке сроков разработчики обычно выдают слишком оптимистичные значения, так и&nbsp;вовсе можно расслабиться. Такие сроки делают цель проекта призрачной и&nbsp;аморфной. За&nbsp;это время слишком многое может измениться, и&nbsp;не&nbsp;исключено, что появится какой-нибудь XHTML3&nbsp;с&nbsp;исправленными недочетами второй версии. Посмотрим.</p>

<p>Ссылки по&nbsp;теме:</p>

<ul>
<li><a href="http://webstandardsgroup.org/features/lachlan-hunt.cfm"> Ten questions for Lachlan Hunt</a> @ WSG</li>
<li><a href="http://www.whatwg.org/">WHATWG community</a></li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML 5&nbsp;Working Draft</a></li>
<li><a href="http://www.w3.org/2007/03/vision"> Architectural vision for HTML/XHTML2/Forms Chartering</a> @ W3C</li>
<li><a href="http://www.w3.org/2007/03/html-pressrelease">W3C Relaunches HTML Activity</a></li>
<li><a href="http://dev.opera.com/articles/view/an-html5-style-google-suggest/">An HTML5-style &laquo;Google Suggest&raquo;</a>&nbsp;&#8212; интересная статья на&nbsp;dev.opera.com, в&nbsp;которой приводится пример использования динамических элементов интерфейса из&nbsp;HTML5.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/what-is-html5/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

