<?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; переводы</title>
	<atom:link href="http://paradigm.ru/tag/%d0%bf%d0%b5%d1%80%d0%b5%d0%b2%d0%be%d0%b4%d1%8b/feed" rel="self" type="application/rss+xml" />
	<link>http://paradigm.ru</link>
	<description>Блог Александра Мусаева</description>
	<lastBuildDate>Sat, 08 May 2010 16:13:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>IE6, CSS и интервью с Алексом Могилевским</title>
		<link>http://paradigm.ru/2008/04/ie-css-special-features</link>
		<comments>http://paradigm.ru/2008/04/ie-css-special-features#comments</comments>
		<pubDate>Thu, 24 Apr 2008 18:46:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Веб-дизайн]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[браузеры]]></category>
		<category><![CDATA[интервью]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[стандарты]]></category>

		<guid isPermaLink="false">http://paradigm.ru/?p=281</guid>
		<description><![CDATA[Популярность шестой версии Internet Explorer является причиной траты немалого времени на&#160;адаптацию кода страниц, идентично отображаемых во&#160;всех других браузерах, а&#160;иногда&#160;&#8212; и&#160;вовсе камнем преткновения, не&#160;позволяющим использовать в&#160;работе какую-то часть стандарта. Зачастую оформление страницы естесственным образом разделяется у&#160;меня на&#160;три этапа. На&#160;первом происходит, собственно, разработка дизайна с&#160;тестированием в&#160;Firefox (выбор браузера обоснован множеством удобных расширений). На&#160;втором&#160;&#8212; проверка, что все номально [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://paradigm.ru/;-)/2008/04/00ie.png" alt="" title="Internet Explorer" width="130" height="130" align="left" class="alignleft" /></p>
<p>Популярность шестой версии Internet Explorer является причиной траты немалого времени на&nbsp;адаптацию кода страниц, идентично отображаемых во&nbsp;всех других браузерах, а&nbsp;иногда&nbsp;&#8212; и&nbsp;вовсе камнем преткновения, не&nbsp;позволяющим использовать в&nbsp;работе какую-то часть стандарта. Зачастую оформление страницы естесственным образом разделяется у&nbsp;меня на&nbsp;три этапа. На&nbsp;первом происходит, собственно, разработка дизайна с&nbsp;тестированием в&nbsp;Firefox (выбор браузера обоснован множеством удобных расширений). На&nbsp;втором&nbsp;&#8212; проверка, что все номально отображается в&nbsp;Opera, Safari и&nbsp;IE7. А&nbsp;на&nbsp;третьем&nbsp;&#8212; доработка под IE6&nbsp;(иногда даже не&nbsp;надфилем, а&nbsp;молотком и&nbsp;пассатижами).</p>
<p>Хорошая статья на эту тему была опубликована пару дней назад на сайте <a href="http://css-tricks.com/">CSS-Tricks</a>. Ниже привожу ее перевод (повествование ведется от&nbsp;лица автора).</p>
<p><strong>Автор:</strong> Крис Койер, <a href="http://css-tricks.com">css-tricks.com</a></strong><br />
<strong>Перевод:</strong> Александр Мусаев, <a href="http://paradigm.ru">paradigm.ru</a></strong><br />
<strong>Оригинал статьи:</strong> &laquo;IE&nbsp;CSS Bugs That&#8217;ll Get You Every Time&raquo;, <a href="http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/">http://css-tricks.com/ie-css-bugs-thatll-get-you-every-time/</a></strong></p>
<p>Когда IE6&nbsp;только появился, в&nbsp;нем была лучшая поддержка CSS среди существовавших в&nbsp;то&nbsp;время браузеров. Но&nbsp;это было 7&nbsp;лет назад. А&nbsp;различные мелкие недоработки в&nbsp;реализации CSS, преследуют веб-разработчиков до&nbsp;сих пор и&nbsp;часто становятся причиной отказа от&nbsp;использования той или иной техники.</p>
<p>Не&nbsp;смотря на&nbsp;то,&nbsp;что я&nbsp;стараюсь не&nbsp;ограничиваться возможностями шестой версии IE,&nbsp;все&nbsp;же понимаю важность корректного отображения страниц везде, где это возможно. Ниже перечислены основные вредоносные недочеты&nbsp;IE.</p>
<h3>Блочная модель</h3>
<p>Вероятно, это самый распространенный и&nbsp;один из&nbsp;самых неприятных багов в&nbsp;IE&nbsp;до&nbsp;шестой версии. Допустим, мы&nbsp;хотим определить блок:</p>
<pre><code class="css">div#box {
   width: 100px;
   border: 2px solid black;
   padding: 10px;
}</code></pre>
<p>IE6&nbsp;сделает ширину блока равной 100px. В&nbsp;действительности ширина должна быть равна 124px, и&nbsp;все современные браузеры отобразят блок именно так.</p>
<p>Это мелкое отличие в&nbsp;рендеринге может вызвать немало неприятностей при верстке страниц. Думаю, поведение IE&nbsp;может быть в&nbsp;какой-то мере оправдано с&nbsp;точки зрения логики, но&nbsp;в&nbsp;любом случае оно противоречит спецификации.</p>
<p>Чтобы избежать этих проблем, я&nbsp;вообще не&nbsp;использую свойство <code>padding</code> для элементов, отвечающих за&nbsp;разметку страницы. Вместо этого можно задавать отступ непосредственно для тех элементов, которые содержат контент (например, <code>&lt;p&gt;</code>).</p>
<h3>Удвоение полей</h3>
<p>Ошибка проявляется при определении свойств <code>float</code> и&nbsp;<code>margin</code>.</p>
<pre><code class="css">div#box {
   float: right;
   margin-right: 20px;
}</code></pre>
<p>IE6&nbsp;увеличит ширину поля с&nbsp;20&nbsp;до&nbsp;40px. Обычно эффект пропадает после добавления элементу <code>&lt;div&gt;</code> свойства <code>display:inline;</code>. Но&nbsp;ценой такого решения станет отсутствие возможности задавать ширину для такого <code>&lt;div&gt;</code>, так&nbsp;же как и&nbsp;для всех других inline-элементов.</p>
<p>Как и&nbsp;в&nbsp;предыдущем случае, проблему можно обойти. Понадобится либо добавить <code>padding</code> для родительского элемента, либо задать его в&nbsp;самом <code>&lt;div&gt;</code>. На&nbsp;свойство <code>padding</code> действие бага не&nbsp;распространяется.</p>
<h3>Ограничений ширины и&nbsp;высоты</h3>
<p>Применение свойств <code>min-width</code> и&nbsp;<code>min-height</code> само по&nbsp;себе является очень естесственным и&nbsp;логичным. Поэтому осознание факта их&nbsp;недоступности остается весьма безрадостным. IE&nbsp;6&nbsp;не&nbsp;просто воспринимает их&nbsp;неправильно, а&nbsp;вообще игнорирует.</p>
<p><code>min-height</code> может быть очень полезен, например, для нижнего колонтитула страницы (иногда называемого &laquo;подвалом&raquo;). Допустим, мы&nbsp;хотим ограничить его высоту величиной 100px, чтобы обеспечить полное отображение фоновой картинки. При этом фиксация высоты свойством height остается нежелательной, т.к. объем текста в&nbsp;блоке может увеличиться.</p>
<p>Если ограничиться указанием <code>min-height</code>, для IE&nbsp;6&nbsp;это будет равноценным полному отсутствию опрелеления высоты. Зато указание <code>height</code> будет воспринято по&nbsp;смыслу именно как <code>min-height</code>. Иногда этим можно воспользоваться.</p>
<h3>&laquo;Эффект лестницы&raquo;</h3>
<p>Предполагается, что последовательность плавающих объектов должна выстраиваться в&nbsp;линию. Везде происходит именно так, но&nbsp;IE&nbsp;6&nbsp;зачем-то добавляет невидимый перенос строки после каждого блока, что приводит к&nbsp;ступенчатому отображению элементов. Проблема исправляется обнулением <code>line-height</code>. Более подробно это описано в&nbsp;<a href="http://paradigm.ru/2008/03/06/preventing-stepdown/">отдельной заметке</a>.</p>
<h3>Отсутствие hover</h3>
<p>Большинство современных браузеров допускает определение псевдо-классов <code>hover</code> для любых элементов. В&nbsp;IE&nbsp;6&nbsp;это возможно только для &lt;a&gt;. И&nbsp;даже в&nbsp;нем <code>hover</code> не&nbsp;будет отображаться при отсутствии атрибута <code>href</code>. Можно воспользоваться <a href="http://www.xs4all.nl/~peterned/csshover.html">хитрым фиксом</a> или просто смириться.</p>
<h3>Альфа-канал для PNG</h3>
<p>Удивительно, что в&nbsp;браузере Microsoft так долго отсутствовала поддержка этого формата (до&nbsp;седьмой версии). Cуществует огромное количество возможных решений и&nbsp;они описаны <a href="http://css-tricks.com/the-different-techniques-for-applying-the-png-hack/">отдельным постом</a>. Стоит помнить, что обычные PNG файлы (без прозрачности) отображаются нормально и&nbsp;их&nbsp;использование этого формата зачастую предпочтительнее GIF.</p>
<h3>Ссылки по&nbsp;теме</h3>
<p>Пожалуй, дополню этот пост всего одной ссылкой, которую просто не&nbsp;могу не&nbsp;дать&nbsp;&#8212; на&nbsp;<a href="http://b23.ru/pc9" rel="nofollow">интервью с&nbsp;архитектором Internet Explorer Алексом Могилевским</a>, выложенное вчера на&nbsp;Хабре в&nbsp;качестве дополнения к&nbsp;подкасту <a href="http://b23.ru/pcm" rel="nofollow">Radio-T #82</a>.</p>
<div class="i"><a href="http://b23.ru/pc9" rel="nofollow"><img src="http://paradigm.ru/;-)/2008/04/01alex-mogilevsky-interview.jpg" alt="" title="01alex-mogilevsky-interview" width="489" height="280" /></a></div>
<p>Интервью так&nbsp;же можно скачать с&nbsp;<a href="http://narod.yandex.ru/disk/126159000/mogila.m4a">Народ.диска</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://paradigm.ru/2008/04/ie-css-special-features/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Первый взгляд на HTML 5</title>
		<link>http://paradigm.ru/2007/12/html5-preview</link>
		<comments>http://paradigm.ru/2007/12/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></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>
<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>
<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>
<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>
<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>
<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>
<p>Элемент <code>footer</code> представляет собой завершающий блок секции, к&nbsp;которой относится (аналог нижнего колонтитула для страницы &laquo;бумажного&raquo; документа). Такие блоки, как правило, содержат вспомогательную информацию о&nbsp;секции. Например, ссылки на&nbsp;связанные материалы, информацию о&nbsp;правах на&nbsp;копирование и&nbsp;т.д.</p>
<pre><code>&lt;footer&gt;© 2007 Example Inc.&lt;/footer&gt;</code></pre>
<p><code>nav</code> предназначен для навигационных ссылок, что полезно как для межстраничных переходов внутри сайта, так и&nbsp;для внутристраничной навигации (для организации оглавления).</p>
<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>
<p>Контейнер <code>aside</code> используется для вспомогательных материалов, например, для определения дополнительных колонок с&nbsp;второстепенным текстом (сайдбаров).</p>
<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>
<p>Элемент <code>section</code> интерпретируется как секция общего назначения. Такой секцией может быть, например, параграф.</p>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<p>Для разработчиков, которые сами желают контролировать функционирование пользовательского интерфейса и&nbsp;обеспечивать лучшее его соответствие общему дизайну страниц, предоставлен специальный API, через который можно управлять процессом воспроизведения. В&nbsp;этом API определены методы <code>play()</code> и&nbsp;<code>pause()</code> (смысл которых понятен из&nbsp;названия), а&nbsp;так&nbsp;же свойство <code>currentTime</code>, которое в&nbsp;следующем примере используется для &laquo;перемотки&raquo; видеозаписи в&nbsp;начало.</p>
<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>
<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>
<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>
<p>Как и&nbsp;в&nbsp;предыдущих версиях HTML, некоторые теги остаются опциональными, и&nbsp;их&nbsp;наличие автоматически подразумевается.</p>
<p>XML-сериализация использует XML 1.0 и&nbsp;пространства имен, так&nbsp;же как и&nbsp;XHTML 1.0.</p>
<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>
<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/2007/12/html5-preview/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->