<?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>Теги HTML</title>
	<atom:link href="http://www.tegi-html.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tegi-html.ru</link>
	<description>Все теги. Язык разметки. Гипертекст.  HTML5. Все доступные теги и атрибуты языка гипертекстовой разметки</description>
	<lastBuildDate>Mon, 30 Sep 2013 12:42:33 +0000</lastBuildDate>
	<language>ru-RU</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.7.27</generator>
	<item>
		<title>Почему SVG теги опубликованы на сайте теги HTML</title>
		<link>http://www.tegi-html.ru/pochemu-svg/</link>
		<comments>http://www.tegi-html.ru/pochemu-svg/#comments</comments>
		<pubDate>Sun, 12 Aug 2012 10:09:46 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[SVG теги]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=446</guid>
		<description><![CDATA[Файлы SVG формата могут самостоятельно располагаться на сайтах в сети Интернет. Их подключают к страницам используя тег img или через css свойство  background-image блочных тегов. Но, с появлением HTML5 графику формата SVG можно интегрировать непосредственно в тело страницы. Об этом говорится во введении от w3c. А вот и маленький пример от консорциума: &#60;!doctype html&#62;  &#60;title&#62;SVG [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Файлы SVG формата могут самостоятельно располагаться на сайтах в сети Интернет. Их подключают к страницам используя тег img или через css свойство  background-image блочных тегов.</p>
<p>Но, с появлением HTML5 графику формата SVG можно интегрировать непосредственно в тело страницы. Об этом говорится во <a title="Введение от W3C" href="http://www.tegi-html.ru/vvedenie-ot-w3c/#svg">введении от w3c</a>.</p>
<p>А вот и маленький пример от консорциума:</p>
<pre><code>&lt;!doctype html&gt; </code>
&lt;title&gt;SVG in text/html&lt;/title&gt; 
   &lt;p&gt; A green circle: 
     <strong>&lt;svg&gt; &lt;circle r="50" cx="50" cy="50" fill="green"/&gt; &lt;/svg&gt; </strong> 
   &lt;/p&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/pochemu-svg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG. Масштабируемая векторная графика. Часть 4</title>
		<link>http://www.tegi-html.ru/svg-vektornaya-grafika-4/</link>
		<comments>http://www.tegi-html.ru/svg-vektornaya-grafika-4/#comments</comments>
		<pubDate>Sun, 12 Aug 2012 09:34:07 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[SVG теги]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=444</guid>
		<description><![CDATA[Градиенты и текстуры. А как же градиенты, спросите вы, но я отвечу &#8212; это тоже просто. В спецификации определено два типа градиента: линейный и радиальный. Градиенты положено помещать внутрь тэга контейнера &#60;defs&#62; (от англ. definitions &#8212; определения), это говорит о том, что содержимое предназначено для многократного применения. Линейный градиент определен парным тэгом &#60;linearGradient&#62;, (а что [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>
<div lang="en-US">Градиенты и текстуры.</div>
</div>
<div align="JUSTIFY">А как же градиенты, спросите вы, но я отвечу &#8212; это тоже просто. В спецификации определено два типа градиента: линейный и радиальный.</div>
<div align="JUSTIFY">Градиенты положено помещать внутрь тэга контейнера &lt;defs&gt; (<em>от англ. definitions &#8212; определения</em>), это говорит о том, что содержимое предназначено для многократного применения. Линейный градиент определен парным тэгом &lt;linearGradient&gt;, (а что же должно быть внутри?) который включает в себя тэги &lt;stop /&gt;. В спецификации об этом сказано: &#171;Буйство красок, чтобы использовать в градиенте определено элементами &#8216;stop&#8217;, которые являются дочерними элементами ‘linearGradient’ элемента или ‘radialGradient’ элемента.&#187; Разберем вышесказаное на примере градиента для нашего первого элемента (прямоугольника с фоном):</div>
<dl>
<dd>
<pre>&lt;defs&gt;
        &lt;linearGradient id="sky_n_water"&gt;
                &lt;stop offset="0%" stop-color="#09f" /&gt;
                &lt;stop offset="35%" stop-color="#9ff" /&gt;
                &lt;stop offset="36%" stop-color="#fff" /&gt;
                &lt;stop offset="100%" stop-color="#09f" /&gt;
        &lt;/linearGradient&gt;
&lt;/defs&gt;</pre>
</dd>
</dl>
<div><a href="http://4.bp.blogspot.com/-w--xgLmeBO8/TqcDBDLCMpI/AAAAAAAAAHc/uFgJxWEa-rA/s1600/ps.jpg"><img src="http://4.bp.blogspot.com/-w--xgLmeBO8/TqcDBDLCMpI/AAAAAAAAAHc/uFgJxWEa-rA/s320/ps.jpg" alt="" width="320" height="244" border="0" /></a></div>
<div align="JUSTIFY">Вот они наши запланированые переходы в верхней части от темно-синего к светло-синему, а ниже от белого к темно-синему изображающие небо и воду.</div>
<div align="JUSTIFY">Рекомендую, для проектирования градиентов использовать Фотошоп и для этого несколько причин. Во-первых в &#171;Редакторе градиентов&#187; мы видим удобную шкалу на которой размещаем наши контрольные точки (тэги &lt;stop /&gt;) и offset атрибут мы видим в поле &#171;Позиция&#187;, что можно считать вторым плюсом, а в третьих на &#171;Палитре цветов&#187; поставив галочку в &#171;Только Web-цвета&#187; мы в поле &#171;#&#187; видим код RGB 0099ff, который можно смело сокращать до трех цифр 09f и писать их в stop-color атрибут.</div>
<div><a href="http://2.bp.blogspot.com/-JfeHGQFvmlU/TqcCju6cPFI/AAAAAAAAAHE/0ZEfHWvevac/s1600/part4_html_19f6894a.png"><img src="http://2.bp.blogspot.com/-JfeHGQFvmlU/TqcCju6cPFI/AAAAAAAAAHE/0ZEfHWvevac/s1600/part4_html_19f6894a.png" alt="" border="0" /></a></div>
<div align="JUSTIFY"><br clear="LEFT" />Вот так легко и просто, но на практике мы получим прямоугольник с градиентом идущим слева-направо, вместо желанного сверху-вниз. Градиент надо повернуть и нам поможет атрибут gradientTransform = &#171;rotate(90)&#187;, который необходимо указать в тэге &lt;linearGradient&gt;.</div>
<div align="JUSTIFY">Применим теперь наш первый градиент на практике:</div>
<dl>
<dd>
<pre>&lt;defs&gt;
        &lt;linearGradient id="sky_n_water"  gradientTransform="rotate(90)"&gt;
          &lt;stop offset="0%" stop-color="#09f" /&gt;
          &lt;stop offset="35%" stop-color="#9ff" /&gt;
          &lt;stop offset="36%" stop-color="#fff" /&gt;
          &lt;stop offset="100%" stop-color="#09f" /&gt;  
        &lt;/linearGradient&gt;
        &lt;/defs&gt;
        &lt;style type="text/css"&gt;&lt;![CDATA[
          #bg {fill:url(#sky_n_water) #09f; stroke="none"}
        ]]&gt;&lt;/style&gt;
&lt;rect id="bg" width="100%" height="100%"/&gt;</pre>
</dd>
</dl>
<p>А вот и новые свойства для нашей «кочки»:</p>
<dl>
<dd>
<pre>&lt;linearGradient id="grass"&gt;
    &lt;stop offset="0" stop-color="#6c0" /&gt;
    &lt;stop offset="1" stop-color="#9f3" /&gt;
&lt;/linearGradient&gt;

.grass {fill:url(#grass) #6c0; stroke:#090; stroke-width:1}</pre>
</dd>
</dl>
<div align="JUSTIFY">Обратите внимание, на этот раз для параметра offset я использовал не проценты (0 и 1 соответствуют 0% и 100%, а если бы нам понадобилась середина мы написали бы 0.5 вместо 50%).</div>
<div align="JUSTIFY">Радиальный градиент для цветка сделать тоже не сложно. Отличается только тэг обрамляющий наши точки остановки цвета, вместо linearGradient используется radialGradient</div>
<dl>
<dd>
<pre>&lt;radialGradient id="flower"&gt;
   &lt;stop stop-color="#f00" offset="0"/&gt;
   &lt;stop stop-color="#f00" offset="0.3"/&gt;
   &lt;stop stop-color="#fff" offset="0.3"/&gt;
   &lt;stop stop-color="#fff" offset="1"/&gt;
&lt;/radialGradient&gt;
.flower {stroke:#ccc; stroke-width:0.01; fill:url(#flower) #f00}</pre>
</dd>
</dl>
<div align="JUSTIFY">Текстуры в нашем проекте не используются, хотя их успешно можно было бы применить для раскрашивания наших «кочек». Дело в том, что в SVG для текстурирования используются не только растровые текстуры, но и векторные (что важнее). И наши цветочки можно было бы вынести из основного рисунка и поместить в определения &lt;defs&gt; заключив их в тэге &lt;pattern&gt;. Таким образом присвоив текстуре (паттерну) идентификатор мы сможем использовать ее для заливки. Обязательно попробуйте эту методику в ваших проектах — не пожалеете.</div>
<h1>Трансформации</h1>
<div align="JUSTIFY">Спецификацией предусмотренно несколько видов трансформации &#8212; это перемещение (translate), масштабирование (scale), поворот (rotate), наклон по оси Х (skewX), наклон по оси Y (skewY) и matrix, которая в своих шести параметрах может включать сумму нескольких трансформаций. Но поскольку тема матричного представления двумерного пространства выходит за рамки данной статьи примем как факт, что те из вас кто изучал &#171;Высшую математику&#187; разберутся с матричными трансформациями сами, а те кто не изучал либо будут использовать последовательность простых трансформаций, либо найдут учебник по вышке и изучат матрицы самостоятельно. (заранее огорчу &#8212; к Морфиусу, Тринити и Нэо наши матрицы отношения не имеют, а их изучение скучнее просмотра одноименного фильма).</div>
<div align="JUSTIFY">Вот матричные трансформации для цветков. Каждая, из них, увеличивает цветок в десять раз и переносит на новое место.</div>
<dl>
<dd>
<pre>transform="matrix(10,0,0,10,45,75)"
 transform="matrix(10,0,0,10,125,60)"
 transform="matrix(10,0,0,10,160,85)"</pre>
</dd>
</dl>
<div align="JUSTIFY">Заменить ее обычными можно так:</div>
<dl>
<dd>
<pre>transform = “scale(10) translate(45,75)”</pre>
</dd>
</dl>
<div align="JUSTIFY">Важно помнить, что последовательность трансформаций имеет важное значение. Поясню почему&#8230; Ось вращения для объекта всегда совпадает с 0,0 и если сначала его переместить, а затем повернуть, то результат будет сильно отличаться от того, который получиться при повороте с последующим перемещением. Тоже касается и масштабирования, так как при увеличении уже перемещенного объекта увеличится и расстояние его перемещения.</div>
<div><a href="http://3.bp.blogspot.com/-m8r4npnIXL4/TqcClnBgqPI/AAAAAAAAAHU/1qmOGpStSEs/s1600/part4_html_m735dd3f1.png"><img src="http://3.bp.blogspot.com/-m8r4npnIXL4/TqcClnBgqPI/AAAAAAAAAHU/1qmOGpStSEs/s1600/part4_html_m735dd3f1.png" alt="" border="0" /></a></div>
<div align="JUSTIFY"><br clear="LEFT" />В проекте мы не применяем трансформацию «skewX» или «skewY» предназначенные для наклона объекта по горизонтали или вертикали, но они возможно вам пригодятся для проектов реализующих псевдо3D.Например, из трех прямоугольников можно создать куб, как показано на рисунке.</div>
<div><a href="http://4.bp.blogspot.com/-odw6d4XKpBk/TqcD2TP7n_I/AAAAAAAAAHk/ucyNL4mhtkw/s1600/hummocks.jpg"><img src="http://4.bp.blogspot.com/-odw6d4XKpBk/TqcD2TP7n_I/AAAAAAAAAHk/ucyNL4mhtkw/s320/hummocks.jpg" alt="" width="320" height="200" border="0" /></a></div>
<div align="JUSTIFY">Для «кочек» я выбрал следующие значения [(3,0,0,3,1000,500), (4,0,0,4,480,410), (6,0,0,6,-150,260)] и получил очередной файл SVG. Да, эта картина грубовата и не сглажена фильтрами и спецэффектами Фотошоп, но я нахожу другой факт более важным &#8212; наш SVG весит 7,5 кБ, а этот JPEG с размером 400*250 и качеством 60% уже 18 кБ (а если пытаться сохранить в полном кач-ве и с полным разрешением, то вышло бы &#8212; 300 кБ). Еще один плюс &#8212; SVG сам масштабируется под разрешение экрана и размер рабочей области браузера, а под растр нам пришлось бы придумывать ухищрения.</div>
<div align="JUSTIFY">И у нас в SVG есть простор для совершенствования, постаравшись мы можем еще уменьшить размер файла, добавив несколько атрибутов изменить стиль линий. Да и визуальные фильтры разработаны W3C, но пока, правда, реализованы не во всех браузерах. Мой любимый Google Chrome в числе передовиков и полностью поддерживает все спецификации консорциума W3C.</div>
<h1>Визуальные фильтры.</h1>
<div align="JUSTIFY">Не углубляясь в подробности сразу показываю код визуального фильтра:</div>
<dl>
<dd>
<pre>&lt;filter id="BlurFar"&gt;&lt;feGaussianBlur stdDeviation="1.5" /&gt;&lt;/filter&gt;
&lt;filter id="BlurNear"&gt;&lt;feGaussianBlur stdDeviation="0.5" /&gt;&lt;/filter&gt;
&lt;filter id="BlurSmall"&gt;&lt;feGaussianBlur stdDeviation="0.1" /&gt;&lt;/filter&gt;

  &lt;g transform="matrix(3,0,0,3,1000,500)" filter="url(#BlurFar)"&gt;
  &lt;g transform="matrix(4,0,0,4,480,410)" filter="url(#BlurNear)"&gt;
   &lt;path d="m0,100 q100,-100 200,0z" filter="url(#BlurSmall)" /&gt;<strong> </strong></pre>
</dd>
</dl>
<div><a href="http://1.bp.blogspot.com/-0Oscse37J3Q/TqcCkZRqUxI/AAAAAAAAAHM/0cqb4Ob7BhU/s1600/part4_html_m4fea0b13.jpg"><img src="http://1.bp.blogspot.com/-0Oscse37J3Q/TqcCkZRqUxI/AAAAAAAAAHM/0cqb4Ob7BhU/s1600/part4_html_m4fea0b13.jpg" alt="" border="0" /></a></div>
<div align="JUSTIFY">Вот такие, незначительные, изменения привносят в наш пейзаж немного реалистичности, за счет DOF (<em>от англ. depth of field &#8212; на русский переведу, как глубина резкости</em>). Парный тэг &lt;filter&gt; как и градиенты располагают внутрь контейнера &lt;defs&gt;, и он (в свою очередь) содержит один и более тэгов описывающих фильтры. Я применил тэг &lt;feGaussianBlur&gt; для размытия по Гауссу, а другие фильтры вы без труда отыщите в спецификации. Применять определенный в &#171;defs&#187; фильтр можно и к группам и к отдельным объектам указав им атрибут &#171;filter&#187;.</div>
<div align="JUSTIFY">Быстро и просто мы разобрали на практике большую часть современного SVG. Пока что за бортом остались связанные и интегрированные растры, текстовые объекты, шрифты, анимация и использование сценариев.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/svg-vektornaya-grafika-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG. Масштабируемая векторная графика. Часть 3</title>
		<link>http://www.tegi-html.ru/svg-vektornaya-grafika-3/</link>
		<comments>http://www.tegi-html.ru/svg-vektornaya-grafika-3/#comments</comments>
		<pubDate>Sun, 12 Aug 2012 09:13:42 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[SVG теги]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=442</guid>
		<description><![CDATA[Область просмотра, клиппирование. Клиппирование &#8212; это обрезка объектов выходящих за рамки области просмотра (любой другой области). Зачем нам это нужно? Внутрь тэга &#60;svg&#62; я добавил атрибуты viewBox=&#187;0 0 1440 800&#8243; preserveAspectRatio=&#187;xMidYMax slice&#187;. ViewBox ограничивает область просмотра и гарантирует нам, что &#171;горизонт&#187; окажется в одной и той же Y координате на разных браузерах. PreserveAspectRatio срежет лишнее по краям и [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>
<div lang="en-US">Область просмотра, клиппирование.</div>
</div>
<div align="JUSTIFY">Клиппирование &#8212; это обрезка объектов выходящих за рамки области просмотра (любой другой области). Зачем нам это нужно? Внутрь тэга &lt;svg&gt; я добавил атрибуты viewBox=&#187;0 0 1440 800&#8243; preserveAspectRatio=&#187;xMidYMax slice&#187;. ViewBox ограничивает область просмотра и гарантирует нам, что &#171;горизонт&#187; окажется в одной и той же Y координате на разных браузерах. PreserveAspectRatio срежет лишнее по краям и скроет верх изображения если пропорции экрана не позволят все показать.</div>
<div><a href="http://2.bp.blogspot.com/-2fMgqBkY3uI/TqcAYlGa4DI/AAAAAAAAAG8/_91PXfWIB-Y/s1600/part3_html_m482809ef.jpg"><img src="http://2.bp.blogspot.com/-2fMgqBkY3uI/TqcAYlGa4DI/AAAAAAAAAG8/_91PXfWIB-Y/s320/part3_html_m482809ef.jpg" alt="" width="320" height="120" border="0" /></a></div>
<div align="JUSTIFY">Таким образом, мы ограничили область просмотра нашего пейзажа окном с размерами 1440 на 800 единиц, которые будут пересчитываться в реальные пиксели уже в браузере и если пропорции его окна просмотра не будут соответствовать заявленным нами, то он возьмет нижний край пейзажа, расположит его снизу и срежет верх, либо обрежет боковые края. Обе ситуации станут понятнее если вы посмотрите на картинку.</div>
<div align="JUSTIFY">Еще один важный момент, который должны помнить те, кто планирует писать файлы SVG своими руками (без применения графических редакторов).Начало координатной плоскости лежит в левом верхнем углу и оси направлены слева-направо и сверху-вниз.</div>
<h1>Графические примитивы и их свойства.</h1>
<div align="JUSTIFY">Теперь давайте снова вернемся к основной цели данной статьи &#8212; написание пейзажа для интернет страницы. У нас уже есть структура документа, а точнее схема по которой мы будем добавлять графические примитивы. Мы разобрались как эти примитивы описывать в файле и нам осталось разобраться со свойствами которыми обладают наши примитивы, а также трансформацией объектов и групп размещающей их на холсте в конечном виде.</div>
<div align="JUSTIFY">Начнем со свойств, таких как толщина линии обводки, ее цвет, а так же заливкой, и сразу приведу маленький пример:</div>
<dl>
<dd>
<pre>&lt;rect width="1198" height="398" fill="none" stroke="blue" stroke-width="1" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Тут у нас прямоугольник без заливки, но с бордюром синего цвета в 1 единицу толщиной. Эти свойства указаны в атрибутах тэга, что не всегда удобно. И W3C находит выход &#8212; свойства можно описать в парном тэге &lt;style&gt; в манере CSS как это делается в HTML документах и тогда написав:</div>
<dl>
<dd>
<pre>.blueBorder {fill:none; stroke:blue; stroke-width:1}</pre>
</dd>
</dl>
<div align="JUSTIFY">мы можем задать те же свойства не только вышеописанному прямоугольнику, но и любому другому примитиву указав атрибут для тэга примитива например:</div>
<dl>
<dd>
<pre>&lt;circle cx="600" cy="200" r="100" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Ну что же, теперь мы во всеоружии и можем приступать к написанию нашего пейзажа&#8230; Для начала расставим &#171;заглушки&#187; обозначив блоки, которые будем постепенно заполнять:</div>
<dl>
<dd>
<pre>&lt;?xml version="1.0" standalone="no"?&gt;
 &lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
        "<a href="http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd</a>"&gt;
 &lt;svg version="1.1" xmlns="http://www.w3.org/2000/svg"&gt;
        &lt;style type="text/css"&gt;&lt;![CDATA[
                /* Стили */
        ]]&gt;&lt;/style&gt;
          &lt;defs&gt;
                /* Градиенты */
        &lt;/defs&gt;
        &lt;g&gt;
                /* Группы и примитивы */
      &lt;/g&gt;
 &lt;/svg&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Тут ненавязчиво появились еще тэги требующие пояснения для новичка. &lt;!DOCTYPE &#8212; это еще один из заголовочных обязательных тэгов указывающий на тип документа с которым будет иметь дело браузер его разбирающий. &#171;Ноги&#187; в данном случае растут из древнего SGML, предшественника XML, в котором тип документа описывался файлом .dtd и такой файл для SVG имеется на сервере W3C, в чем мы уверены указывая его в ссылке. Еще один непонятный тэг &lt;![CDATA[ и его пара ]]&gt; ограничивают &#171;неродную&#187; для SVG таблицу стилей написаную в манере CSS, о чем сказано в атрибуте type=&#187;text/css&#187; тэга &lt;style&gt;.</div>
<div align="JUSTIFY">Добавим наш фон (прямоугольник) и получим:</div>
<dl>
<dd>
<pre>&lt;?xml version="1.0" standalone="no"?&gt;
 &lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
        "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"&gt;
 &lt;svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 800" preserveAspectRatio="xMidYMax slice"&gt;
        &lt;g&gt;
           &lt;rect id="bg" width="100%" height="100%" /&gt;
        &lt;/g&gt;
 &lt;/svg&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Красным я выделил то, что добавил, и далее буду писать только те куски кода которые будут добавляться. Теперь вы можете увидеть наш первый результат. Надеюсь он вас вдохновил, а чтение не сильно утомило отбив желание изучать SVG.</div>
<div align="JUSTIFY">Что же у нас дальше по плану? Ах да, &#171;кочки&#187;. И мы приступаем к рисованию обещанной основы из контура состоящего из ДВУХ точек. Почему их всего две спросят некоторые из вас, а потому, что у нашей кривой Безье только начало и конец, а обратно в начало браузер пройдет кратчайшим путем (по прямой). Мы воспользуемся квадратичной кривой, хотя возможно больше подошла бы кубическая (проверим).</div>
<dl>
<dd>
<pre>&lt;path d="m0,0 q100,-100 200,0z" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Вот, вполне приемлемая кочка. Но она пока что черная и стоит не на своем месте. Зададием ей линию обводки. Получим, к примеру:</div>
<dl>
<dd>
<pre>.grass {stroke:#090; stroke-width:1; fill:#0f0;}

&lt;path d="m0,100 q100,-100 200,0z" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Нарисуем тропинку. Ее опишет следующий путь &#8212; &#171;m50,0 q50,-10 70,-47 0,50 -20,47z&#187; или &#171;m50,0 q10, -50 70,-47 -50,0 -20,47z&#187;, обратите внимание &#8212; точки в обоих случаях одни и те же, изменяются только опорные пункты путей (нам нужны оба вида &#171;тропинок&#187;, чтобы отличать первую и вторую &#171;кочки&#187;), а стиль у них будет такой &#171;fill:#cc9; stroke:#990; stroke-width:2&#8243; назовем его footPath.</div>
<dl>
<dd>
<pre>.footPath {fill:#cc9; stroke:#990; stroke-width:2}

&lt;path d="m50,0 q10,-50 70,-47 -50,0 -20,47z" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Переходим к цветочкам. Точнее, нарисуем контур одного цветка, а затем создадим несколько трансформированных копий этого цветка. Путь я &#171;выдернул&#187; из оптимизированного SVG сгенерированного в Inkscape &#8212; &#171;m0.54688,-0.11829 c-0.37472,-0.43643 -0.25072,1.0885, 0.04856,0.59722, 0.29928,-0.49124 -1.1127,0.09791-0.55298,0.23074, 0.55967,0.13283, -0.43695,-1.0279 -0.39033,-0.45461, 0.046622,0.57333, 0.84261,-0.73321, 0.31175,-0.51171 -0.53086,0.22151, 0.95771,0.57479, 0.583,0.13836z&#187; для свойств используем радиальный градиент (как его сделать вы узнаете в следующей части статьи) и тонкую серую обводку. «Кочка» почти готова, но она пока еще не на своем месте, как и цветочки, которых хоть и три, но они пока что маленькие и наложены друг на друга.</div>
<dl>
<dd>
<pre>.flower {stroke:#ccc; stroke-width:0.01}

&lt;path d="m0.5468 .. 0.1383z" /&gt;
&lt;path d="m0.5468 .. 0.1383z" /&gt;
&lt;path d="m0.5468 .. 0.1383z" /&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Объединяем элементы описывающие &#171;Кочку&#187; тэгом контейнером &lt;g&gt; в группу, дважды &#171;копипастим&#187; (дублируем) получая таким образом три &#171;Кочки&#187;, как и было задуманно вначале. В первой группе оставляем только цветок в середине, а в средней удаляем первый цветок (их перекроют другие объекты, поэтому они лишние). Меняем путь в тропинке средней &#171;Кочки&#187;, а в передней вообще его удаляем. Таким образом мы получаем три группы расположенные одна над другой и нам осталось только указать для каждого тэга &lt;g&gt; атрибут transform=&#187;matrix()&#187;, дабы разместить их на холсте с нужным масштабом и в нужных координатах, но об этом речь пойдет в следующей части статьи.</div>
<div><a href="http://4.bp.blogspot.com/-CEmOmA2p_f4/TqcAUAQn9VI/AAAAAAAAAGs/Eb4ZLrtrLQY/s1600/part3_html_m42fca169.png"><img src="http://4.bp.blogspot.com/-CEmOmA2p_f4/TqcAUAQn9VI/AAAAAAAAAGs/Eb4ZLrtrLQY/s1600/part3_html_m42fca169.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">&#171;Облака и островок справа&#187;. Три контура: Белое облако с голубой обводкой, голубое облако без обводки и &#187;пролесок&#187; темно-зеленый без обводки объеденены в группу, котораябудет перемещена в правую часть горизонта. Здесь вы можете посмотреть на контуры. Затем была создана копия этой группы, чтобы &#171;отразиться&#187; в воде. Этой группе добавлен атрибут opacity (прозрачность).</div>
<dl>
<dd>
<pre>&lt;g&gt;
 &lt;path d="m..z" fill="#fff" stroke-width="1" stroke="#09f" /&gt;
 &lt;path d="m..z" fill="#3cf" /&gt;
 &lt;path d="m..z" fill="#060" /&gt;
&lt;/g&gt;
&lt;g opacity="0.5"&gt;
 &lt;path d="m..z" fill="#fff" stroke-width="1" stroke="#09f" /&gt;
 &lt;path d="m..z" fill="#3cf" /&gt;
 &lt;path d="m..z" fill="#060" /&gt;
&lt;/g&gt;</pre>
</dd>
</dl>
<div align="JUSTIFY">Код приведен не полностью. Немного поразмыслив я не стал придумывать новые контуры для облаков слева, а решил воспользоваться новыми трансформациями для той же группы, что только что была разработана. Пришлось просто убрать контур изображающий &#171;пролесок&#187;.</div>
<div align="JUSTIFY">Файл уже весит 7,5 кБ, но мы то помним, что Jpeg с таким разрешением и количеством оттенков весит как минимум в десять раз больше. Остались мелочи: два облачка посреди небосвода и два деревца на двух &#171;кочках&#187;.</div>
<div><a href="http://3.bp.blogspot.com/-kF2s2Iq9bWY/TqcAVwG-tVI/AAAAAAAAAG0/1z4y1X6Hu0k/s1600/part3_html_m66aab1d0.png"><img src="http://3.bp.blogspot.com/-kF2s2Iq9bWY/TqcAVwG-tVI/AAAAAAAAAG0/1z4y1X6Hu0k/s1600/part3_html_m66aab1d0.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">Сначала деревца. Здесь можно взглянуть на контуры. Крона сформирована из трех клонов одного и того же контура. Думаю вы уже достаточно попрактиковались и сразу заметили, что применением атрибута opacity для среднего контура кроны мы достигаем эффекта при котором создается впечатление, что контуров больше и используется не 3, а 5 оттенка зеленого.</div>
<div align="JUSTIFY">Первое дерево мы вставляем в группу &#171;левой кочки&#187;. Дерево на второй &#171;кочке&#187; появляется за счет матричной трансформации и на этот раз я кроме масштабирования и переноса буду использовал отражение по вертикали. Добавляем эту группу к средней &#171;кочки&#187; и, само собой разумеется, она получит &#171;в наследство&#187; размытие, которое в литературе принято называть DOF, которое будет реализовано визуальным фильтром рассматриваемым в следующей части статьи.</div>
<div align="JUSTIFY">Облака посреди небосвода мы сделаем не два, а четыре. Одна пара будет иметь четкий хотя и тонкий контур, а вторая (находящаяся под ней) этого контура лишена, зато будет размыта фильтром. Не стану приводить отдельно контуры этих облаков, а лучше сразу покажу конечный результат к которому мы стремимся.</div>
<div><a href="http://4.bp.blogspot.com/-v45UH0S1MTg/TqcATP6Us3I/AAAAAAAAAGk/FHbAt1r6mmQ/s1600/part3_html_221c1315.jpg"><img src="http://4.bp.blogspot.com/-v45UH0S1MTg/TqcATP6Us3I/AAAAAAAAAGk/FHbAt1r6mmQ/s320/part3_html_221c1315.jpg" alt="" width="320" height="94" border="0" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/svg-vektornaya-grafika-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG. Масштабируемая векторная графика. Часть 2</title>
		<link>http://www.tegi-html.ru/svg-vektornaya-grafika-2/</link>
		<comments>http://www.tegi-html.ru/svg-vektornaya-grafika-2/#comments</comments>
		<pubDate>Sun, 12 Aug 2012 09:01:37 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[SVG теги]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=438</guid>
		<description><![CDATA[Пишем файл SVG своими руками. В прошлой части статьи мы уже выяснили, что файлы SVG текстовые, а стало быть фраза «написать пейзаж» приобрела второй, более привычный простому обывателю смысл. Итак минимальная заготовка файла SVG включает в себя следующий код: &#60;?xml version=&#187;1.0&#8243; encoding=&#187;UTF-8&#8243; standalone=&#187;no&#187;?&#62; &#60;svg xmlns=&#187;http://www.w3.org/2000/svg&#187; version=&#187;1.1&#8243;&#62; &#60;!&#8212; Content &#8212;&#62; &#60;/svg&#62; Здесь в первой строке стандартный для всех файлов семейства XML [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>
<div lang="en-US">Пишем файл SVG своими руками.</div>
</div>
<div align="JUSTIFY">В прошлой части статьи мы уже выяснили, что файлы SVG текстовые, а стало быть фраза «написать пейзаж» приобрела второй, более привычный простому обывателю смысл. Итак минимальная заготовка файла SVG включает в себя следующий код:</div>
<dl>
<dd>&lt;?xml version=&#187;1.0&#8243; encoding=&#187;UTF-8&#8243; standalone=&#187;no&#187;?&gt;</dd>
<dd>&lt;svg xmlns=&#187;http://www.w3.org/2000/svg&#187; version=&#187;1.1&#8243;&gt;</dd>
<dd>&lt;!&#8212; Content &#8212;&gt;</dd>
<dd>&lt;/svg&gt;</dd>
</dl>
<div align="JUSTIFY">Здесь в первой строке стандартный для всех файлов семейства XML пролог (лат.: &#8212; вступление). Ведь для вас не секрет, что файлы SVG из этого семейства. Во второй строке парный тэг &lt;svg&gt; ограничивающий тело документа и это для вас очевидный факт, ведь в последней строке вы видите его &#171;хвост&#187; &#8212; закрывающий тэг &lt;/svg&gt;. Надеюсь, что стандартный комментарий (в третьей строке) указывающий куда мы будем писать дальше, тоже никого не напугал. Тем же, для кого все вышесказанное &#8212; &#171;темный лес&#187;, а желание освоить материал все-таки присутствует рекомендую отыскать на просторах интернета толковый учебник по XML 1.0</div>
<div align="JUSTIFY">С теми, кто все еще в строю, едем дальше&#8230; Разработаем схему нашего рисунка, а для начала найдем себе референсы в сети, либо нарисуем от руки, то что хотим увидеть в итоге. Я применил оба подхода и накопав кучу малоприемлемых картинок нарисовал (по аналогии с одним из понравившихся) свой:</div>
<div align="JUSTIFY">
<div><a href="http://3.bp.blogspot.com/-LALKG3-XnPM/Tqb22atY2oI/AAAAAAAAAF0/OHuQpcbE_2M/s1600/part2_html_m626e644b.jpg"><img src="http://3.bp.blogspot.com/-LALKG3-XnPM/Tqb22atY2oI/AAAAAAAAAF0/OHuQpcbE_2M/s320/part2_html_m626e644b.jpg" alt="" width="320" height="204" border="0" /></a></div>
<p>Вот так, наскоро набросав ручкой на листке, отсканировав и разукрасив в Фотошопе я получил растровый эскиз будущего векторного рисунка.</p>
</div>
<div align="JUSTIFY">Начнем со схемы документа и структура SVG файла &#171;нам в помощь&#187;. Ведь то, что находится на заднем плане должно идти вначале, а то, что будет указано в файле в последнюю очередь отобразиться на рисунке в верхнем (наружном) слое, т.е. на переднем плане. И не будем забывать об оптимизации кода, о его минимализации. Итак, подложкой на нашей картине станет прямоугольник закрашенный сложным градиентом, где в верхней части мы переходим от темно-синего к светло-синему, а ниже от белого к темно-синему изображая, таким образом, небо и воду (еще не решил что это &#8212; море или озеро) эффектно выделив горизонт. Затем у нас будут идти три сгруппированных объекта, которые мы назовем &#171;кочки&#187; или &#171;островки&#187;, кому как больше понравиться. Почему мы говорим о группах? Да просто, так мы нарисовав один сложный (составной) объект можем скопировав его и слегка трансформировав получить новый. Таким образом, сначала рисуется правая (на рисунке) &#171;кочка&#187;, затем она увеличивается и переносится немного влево, затем сделаем еще одну копию и повторим увеличение и перенос.</div>
<div align="JUSTIFY">Два деревца на двух передних &#171;кочках&#187; это тоже клоны для которых применена трансформация &#171;масштаб+перенос&#187;. Облака отражающиеся в воде, это тоже пары, где клон имеет масштаб равный &#171; 1&#8243; по оси Y и &#171;+1&#8243; по оси Х, что приводит к отражению Y координат относительно оси Х (эффект &#171;зеркала&#187;). То же касается и пролеска, который виден вдали (может это островок, а может противоположный берег залива, решайте сами). Ну и в последнюю очередь идут облака которые мирно висят посреди нашего неба и не имеют отражений.</div>
<div align="JUSTIFY">Теперь &#171;копнем поглубже&#187; и поговорим о группах &#8212; сложных объектах состоящих из нескольких контуров. На моей картинке я вижу таких несколько: это &#171;кочки&#187; о которых мы уже говорили, а так же отражающиеся облака и деревья. С облаками все просто, тут по два контура, где на заднем плане (напоминаю, что в файле он будет идти впереди/вначале) контур с белым фоном, ближе контур залитый голубой краской. Чуть больше работы предстоит с деревьями, ведь тут у нас крона из трех контуров с разными оттенками зеленого, но вперед мы изобразим ствол дерева в виде контура залитого коричневой краской (простите, забыл покрасить в Фотошопе) и тогда крона идущая в файле следом за ним накроет его на картине. И наконец, &#171;высший пилотаж&#187;, наши &#171;островки-кочки&#187;&#8230; Здесь залитая градиентом от темно-зеленого к светлому основа представленная контуром ограниченному ДВУМЯ точками, но об этом позже. На первом и втором клоне добавлены тропинки, чтобы картинка не получилась совсем уж скучной пав жертвой моего желания оптимизировать/минимизировать. И цветочки повсюду, что может быть чудесней, один контур и градиент по схеме красный-красный-белый-белый, т.е. нам не нужно рисовать серединку и лепестки отдельно, а выделить этот факт цветом. К тому же сделав несколько вариантов градиента для цветов мы сможем сделать красивые и пестрые газончики.</div>
<div align="JUSTIFY">Ну вот, первый этап нами уже пройден и мы можем начертить схему документа, который будем писать на SVG. Формат SVG являясь членом семейства XML наследует от него важный признак &#8212; древовидную структуру, которую мы и отображаем в нашей схеме:</div>
<div><a href="http://1.bp.blogspot.com/-DU89UHKFesw/Tqb2VyfHlMI/AAAAAAAAAE8/b7XoQ0D19-o/s1600/part2_html_2111db3b.jpg"><img src="http://1.bp.blogspot.com/-DU89UHKFesw/Tqb2VyfHlMI/AAAAAAAAAE8/b7XoQ0D19-o/s320/part2_html_2111db3b.jpg" alt="" width="248" height="320" border="0" /></a></div>
<p>Файл который мы напишем лишь слегка отличается, дополняя ее нюансами реализации.</p>
<div align="JUSTIFY">В своем проекте мы будем использовать только два графических примитива &#8212; это прямоугольник и контур, но для &#171;общего развития&#187; сообщу, что в спецификации SVG описаны еще несколько, это: круг, овал, линия, полилиния и полигон (многоугольник), и еще (чуть не забыл) текст.</div>
<div align="JUSTIFY">Начнем вникать в тонкости описания примитивов. С прямоугольником, который представлен тэгом &lt;rect /&gt;, что вполне естественно, никаких сложностей быть не может. Тут среди прочих нам важны четыре атрибута, два на позицию (положение на холсте &#8212; Х и Y) и два на размер (ширина и высота). Гораздо сложнее примитив &#171;контур&#187; &#8212; тэг &lt;path /&gt; у которого есть атрибут под названием &#171;d&#187; (от англ. data &#8212; данные) &#8212; это и есть собственно путь по которому пойдет перо рисуя наш контур. Давайте подробнее разбираться, ведь в спецификации этой теме посвящена вся восьмая глава&#8230;</div>
<div align="JUSTIFY">Итак, про атрибут &#171;d&#187; в спецификации сказано, что он &#8212; &#171;определяет контур фигуры&#187;. Осталось выяснить как он это делает. Читаем спецификацию дальше и находим вот что: &#171;атрибут ?d? содержит инструкции для перемещения, рисования линии, дуги, кривой Безье (и квадратичной и кубической), а также закрытия (замыкания).&#187;. Эти инструкции (команды) записываются латинскими буквами и ниже я привожу таблицу с их определением:</div>
<table cellspacing="3" cellpadding="5">
<colgroup>
<col width="92" />
<col width="359" />
<col width="148" /></colgroup>
<tbody>
<tr>
<td width="92">M или m (x, y)</td>
<td width="359">
<div align="JUSTIFY">Начинает новый подконтур в заданных (x, y) координатах. М. (прописная буква) указывает, что далее следуют абсолютные координаты; м. (строчная) указывает, что координаты относительные. Если эта команда сопровождается многократными парами координат, следующие пары это неявные команды рисования линий (L / l). Следовательно, неявные команды будут относительны, если команда перемещения пера относительна, и абсолютны, в противном случае. Если (m) появляется как первый элемент контура, то эту команду принимают как (М) с парой абсолютных координат, но в этом случае, все последующие пары координат считаются относительными несмотря на то, что начальная команда интерпретируется как перенос пера в абсолютной системе координат.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://3.bp.blogspot.com/-93WrzDm9Mds/Tqb2IXb9-rI/AAAAAAAAAEk/-WWeenddVhE/s1600/part2_html_18e86933.png"><img src="http://3.bp.blogspot.com/-93WrzDm9Mds/Tqb2IXb9-rI/AAAAAAAAAEk/-WWeenddVhE/s320/part2_html_18e86933.png" alt="" width="320" height="320" border="0" /></a></div>
<div></div>
</div>
</td>
</tr>
<tr>
<td width="92">Z или z без параметров</td>
<td width="359">
<div align="JUSTIFY">Закрывает текущий контур, рисуя прямую линию от текущей точки до начальной точки текущего подконтура. Так как Z и z не берут никакие параметры, они имеют идентичный эффект.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://4.bp.blogspot.com/-J4KnRXJoTHc/Tqb2TPPrQ1I/AAAAAAAAAE0/lsIi-8Y0-1Y/s1600/part2_html_78d5c85c.png"><img src="http://4.bp.blogspot.com/-J4KnRXJoTHc/Tqb2TPPrQ1I/AAAAAAAAAE0/lsIi-8Y0-1Y/s320/part2_html_78d5c85c.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">L или l (x, y)</td>
<td width="359">
<div align="JUSTIFY">Рисует линию от текущей точки до заданной (x, y) координатами, которые становятся новой текущей точкой. L (прописная буква) указывает, что далее следуют абсолютные координаты; l (строчная) указывает, что будут следовать относительные координаты. Множество пар координат может быть определено, чтобы рисовать «ломаную» линию. В конце команды, новая текущая точка устанавливается на заключительный набор координат.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://3.bp.blogspot.com/-rBOKTDpq8Ds/Tqb2vXQI-2I/AAAAAAAAAFk/w4Za7-JOS7w/s1600/part2_html_m7f4f87cf.png"><img src="http://3.bp.blogspot.com/-rBOKTDpq8Ds/Tqb2vXQI-2I/AAAAAAAAAFk/w4Za7-JOS7w/s320/part2_html_m7f4f87cf.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">
<dl>
<dt>H или h (x)</dt>
<dt></dt>
</dl>
</td>
<td width="359">
<div align="JUSTIFY">Рисует горизонтальную линию от текущей точки (cpx, cpy) к (x, cpy). H (прописная буква) указывает, что будут следовать абсолютные координаты; h (строчная) указывает, что будут следовать относительные координаты. &#171;x&#187; можно указать многократно (хотя обычно это не имеет смысла). В конце команды, новой текущей точкой становится (x, cpy) в последнем x.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://3.bp.blogspot.com/-jsHfgsZSKo8/Tqb2badMbBI/AAAAAAAAAFM/Tfdc75zoYKo/s1600/part2_html_7122a144.png"><img src="http://3.bp.blogspot.com/-jsHfgsZSKo8/Tqb2badMbBI/AAAAAAAAAFM/Tfdc75zoYKo/s320/part2_html_7122a144.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">V или v (x)</td>
<td width="359">
<div align="JUSTIFY">Рисует вертикальную линию от текущей точки (cpx, cpy) к (срx, y). V (прописная буква) указывает, что будут следовать абсолютные координаты; v (строчная) указывает, что будут следовать относительные координаты. &#171;x&#187; можно указать многократно (хотя обычно это не имеет смысла). В конце команды, новой текущей точкой становится (cpx, y) в последнем y.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://3.bp.blogspot.com/-fnY4MiyUQ9Q/Tqb2DRUl4kI/AAAAAAAAAEc/k_PMrEQYdWI/s1600/part2_html_3bdd7122.png"><img src="http://3.bp.blogspot.com/-fnY4MiyUQ9Q/Tqb2DRUl4kI/AAAAAAAAAEc/k_PMrEQYdWI/s320/part2_html_3bdd7122.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">C или с (x1, y1, x2, y2, x, y)</td>
<td width="359">
<div align="JUSTIFY">Рисует кубическую кривую Безье от текущей точки до (x, y) используя (x1, y1) как контрольный пункт в начале кривой и (x2, y2) как контрольный пункт в конце кривой. C (прописная буква) указывает, что абсолютные координаты будут следовать; c (строчная) указывает, что относительные координаты будут следовать. Могут быть определены многократные наборы координат, чтобы рисовать полилинию Безье. В конце команды, новой текущей точкой становится последняя (x, y) пара координат, используемая в полилинии Безье.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://1.bp.blogspot.com/-ll89gwMozgc/Tqb2OCEvCPI/AAAAAAAAAEs/lSbfsSMyxRk/s1600/part2_html_63cc07c8.png"><img src="http://1.bp.blogspot.com/-ll89gwMozgc/Tqb2OCEvCPI/AAAAAAAAAEs/lSbfsSMyxRk/s320/part2_html_63cc07c8.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">S или s (x2, y2, x, y)</td>
<td width="359">
<div align="JUSTIFY">Рисует кубическую кривую Безье от текущей точки до (x, y). Первым контрольным пунктом (вначале кривой) считается отражение второго контрольного пункта на предыдущей команде относительно текущей точки. (Если нет никакой предыдущей команды или если предыдущая команда не была C, c, S или s, считается, что первый контрольный пункт совпадает с текущей точкой.) (x2, y2) &#8212; второй контрольный пункт (то есть, контрольный пункт в конце кривой). S (прописная буква) указывает, что абсолютные координаты будут следовать; s (строчная) указывает, что относительные координаты будут следовать. Многократные наборы координат могут быть определены, чтобы рисовать полилинию Безье. В конце команды, новой текущей точкой становится последняя (x, y) пара координат, используемая в полилинии Безье.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://2.bp.blogspot.com/-p_xVPvSV8TU/Tqb2qrmRQmI/AAAAAAAAAFc/uWjM8BxU4R0/s1600/part2_html_33746572.png"><img src="http://2.bp.blogspot.com/-p_xVPvSV8TU/Tqb2qrmRQmI/AAAAAAAAAFc/uWjM8BxU4R0/s320/part2_html_33746572.png" alt="" width="320" height="318" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">
<dl>
<dt>Q или q (x1, y1, x, y)</dt>
<dt></dt>
</dl>
</td>
<td width="359">
<div align="JUSTIFY">Рисует квадратичную кривую Безье от текущей точки до (x, y) используя (x1, y1) как контрольный пункт. Q (прописная буква) указывает, что абсолютные координаты будут следовать; q (строчная) указывает, что относительные координаты будут следовать. Многократные наборы координат могут быть определены, чтобы рисовать полилинию Безье. В конце команды, новой текущей точкой становится последняя (x, y) пара координат, используемая в полилинии Безье.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://4.bp.blogspot.com/-pkqBXTTRFBs/Tqb2081gZcI/AAAAAAAAAFs/CevKmKG_ZKI/s1600/part2_html_m77fb8833.png"><img src="http://4.bp.blogspot.com/-pkqBXTTRFBs/Tqb2081gZcI/AAAAAAAAAFs/CevKmKG_ZKI/s320/part2_html_m77fb8833.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">T или t (x, y)</td>
<td width="359">
<div align="JUSTIFY">Рисует квадратичную кривую Безье от текущей точки до (x, y). Контрольный пункт принят, чтобы быть отражением контрольного пункта на предыдущей команде относительно текущей точки. (Если нет никакой предыдущей команды или если предыдущая команда не была Q, q, T или t, предполагется, что контрольный пункт совпадает с текущей точкой.) T (прописная буква) указывает, что абсолютные координаты будут следовать; t (строчная) указывает, что относительные координаты будут следовать. В конце команды, новой текущей точкой становится последняя (x, y) пара координат, используемая в полилинии Безье.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://4.bp.blogspot.com/-_KE4T-ZNWq8/Tqb2h6sZ8YI/AAAAAAAAAFU/oXIn3F1u9dM/s1600/part2_html_79729c25.png"><img src="http://4.bp.blogspot.com/-_KE4T-ZNWq8/Tqb2h6sZ8YI/AAAAAAAAAFU/oXIn3F1u9dM/s320/part2_html_79729c25.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
<tr>
<td width="92">A или а (rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y)</td>
<td width="359">
<div align="JUSTIFY">Рисует краткую дугу от текущей точки до (x, y). Размер и ориентация эллипса определяют два радиуса (rx, ry) и угол x-axis-rotation, который указывает, как эллипс в целом вращается относительно текущей системы координаты. Центр (cx, cy) эллипса рассчитан автоматически, чтобы удовлетворить ограничениям, наложенным другими параметрами. large-arc-flag и sweep-flag вносят вклад в автоматические вычисления, и помогают определить, как дуга оттянута.</div>
</td>
<td width="148">
<div align="JUSTIFY">
<div><a href="http://1.bp.blogspot.com/-uxBGwrXDcKg/Tqb28QFTt6I/AAAAAAAAAF8/HJBUOlFqNFw/s1600/part2_html_m5162c080.png"><img src="http://1.bp.blogspot.com/-uxBGwrXDcKg/Tqb28QFTt6I/AAAAAAAAAF8/HJBUOlFqNFw/s320/part2_html_m5162c080.png" alt="" width="320" height="320" border="0" /></a></div>
</div>
</td>
</tr>
</tbody>
</table>
<div align="JUSTIFY">У нас готово почти все чтобы начать писать файл с нашим пейзажем, а пока &#171;лирическое отступление&#187;&#8230;</div>
<div><a href="http://2.bp.blogspot.com/-ndyakhmO7_I/Tqb2Ws28hFI/AAAAAAAAAFE/lw2ID1dpGc4/s1600/part2_html_4515e6.png"><img src="http://2.bp.blogspot.com/-ndyakhmO7_I/Tqb2Ws28hFI/AAAAAAAAAFE/lw2ID1dpGc4/s1600/part2_html_4515e6.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">Перед началом самостоятельной работы с SVG я рекомендую почитать файлы сгенерированые графическими редакторами. Ничего (к сожалению) не могу сказать о Adobe Illustrator&#8217;e, потому что им я никогда не пользовался. Знаю Corel Draw экспортирует, но он является продуктом коммерческим и не каждый осилит его приобретение только для того, чтобы поэкспериментировать с экспортом в SVG. Я рекомендую скачать редактор векторной графики Inkscape с одноименного сайта <a href="http://www.inkscape.org/">http://www.</a><a href="http://www.inkscape.org/">inkscape.org</a>. Этот редактор распространяется бесплатно, и что самое главное, SVG его родной формат. Сохраняйте файлы в режиме &#171;Оптимизированный SVG&#187; и открывайте их &#171;Блокнотом&#187; (любым текстовым редактором). В режиме оптимизации мы видим минимум &#171;мусора&#187; в коде файла и если вам лень &#171;просчитывать&#187; ваши рисунки можете использовать Inkscape как основной инструмент для создания SVG файлов.</div>
<div align="JUSTIFY">В следующей части статьи мы просчитаем контуры наших объектов, научимся их трансформировать и размещать на холсте, затем приступим к заполнению нашего файла-болванки.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/svg-vektornaya-grafika-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SVG. Масштабируемая векторная графика. Часть 1</title>
		<link>http://www.tegi-html.ru/svg-vektornaya-grafika-1/</link>
		<comments>http://www.tegi-html.ru/svg-vektornaya-grafika-1/#comments</comments>
		<pubDate>Sun, 12 Aug 2012 08:54:27 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[SVG теги]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=434</guid>
		<description><![CDATA[CG. &#160; Компьютерная графика (CG от англ. - Computer Graphics), в привычном на сегодняшний день понимании, развивается с момента появления первых графических операционных систем. И начиная с первых их реализаций она разделилась на два основных направления: графика растровая и векторная. Для этих направлений разработано и применяется великое множество форматов файлов, редакторов и просмотровщиков. Для того, чтобы понять в чем основное [&#8230;]]]></description>
				<content:encoded><![CDATA[<div>CG.</div>
<p>&nbsp;</p>
<div align="JUSTIFY">Компьютерная графика (CG от англ. - <span style="text-decoration: underline;">C</span>omputer <span style="text-decoration: underline;">G</span>raphics), в привычном на сегодняшний день понимании, развивается с момента появления первых графических операционных систем. И начиная с первых их реализаций она разделилась на два основных направления: графика растровая и векторная. Для этих направлений разработано и применяется великое множество форматов файлов, редакторов и просмотровщиков. Для того, чтобы понять в чем основное отличие растровой и векторной картинки давайте посмотрим на пример показанный ниже.</div>
<div><a href="http://3.bp.blogspot.com/-fe0x4DvpNtE/Tqb0ctoC_JI/AAAAAAAAAEU/MqP4OH4Hd_k/s1600/part1_html_m784d640c.png"><img src="http://3.bp.blogspot.com/-fe0x4DvpNtE/Tqb0ctoC_JI/AAAAAAAAAEU/MqP4OH4Hd_k/s320/part1_html_m784d640c.png" alt="" width="320" height="114" border="0" /></a></div>
<div align="JUSTIFY"><br clear="LEFT" />Здесь мы видим смайлик, который при масштабе 1х1 будет выглядеть одинаково и для растровой и для векторной графики. Различия проявляются при масштабировании. При увеличении в десять раз мы на растровой картинке, которая показана в центре видим, что точки превратились в квадратики, а на векторной картинке (справа) край области изображающей глаз смайлика остался гладким.</div>
<div align="JUSTIFY">Так будет всегда и это справедливо для любых типов файлов. Для примера отмечу, что BMP, JPEG, PNG относятся к растровым, а EMF, AI, CDR к векторным. И если опуститься до уровня кода этих файлов, то можно говорить о том, что файлы растровой графики содержат информацию о цвете пикселей (точек) располагающихся в виде прямоугольной матрицы, а файлы графики векторной информацию об объектах картины, которыми могут быть простые фигуры, как прямоугольник, круг, овал, и т.п., а так же их свойствах (размер, положение, цвет обводки и заливки).</div>
<div align="JUSTIFY">В данной статье речь пойдет о SVG (от англ. - <span style="text-decoration: underline;">S</span>calable <span style="text-decoration: underline;">V</span>ector <span style="text-decoration: underline;">G</span>raphics) масштабируемой векторной графике предназначенной для сети Интернет.</div>
<h1>Интернет.</h1>
<div align="JUSTIFY">Возможно не всем известно, но глобальная сеть и связанные с ней технологии не живут сами по себе, а развиваются под чутким надзором организации под названием World Wide Web Consortium(сокр. W3C). Эта организация, далее консорциум, состоит из представителей крупнейших фирм имеющих отношение к компьютерной индустрии. Представители таких фирм как IBM, Canon, Adobe, Opera, Google и т.д. собираются вместе и объединяются в рабочие группы, чтобы определить каким Интернет будет завтра.</div>
<dl>
<dd>
<div><a href="http://1.bp.blogspot.com/-Xf5aBJMIbG4/Tqb0Z3kB7KI/AAAAAAAAAEE/UTDzjv_yEJk/s1600/part1_html_95fb38e.png"><img src="http://1.bp.blogspot.com/-Xf5aBJMIbG4/Tqb0Z3kB7KI/AAAAAAAAAEE/UTDzjv_yEJk/s1600/part1_html_95fb38e.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">Результаты своей деятельности представители консорциума выкладывают в сети по адресу <a href="http://www.w3.org/">http://www.w3.org</a> и там вы всегда можете просмотреть документы на которые обязаны опираться разработчики программного обеспечения, например, браузеров.</div>
</dd>
</dl>
<div><a href="http://1.bp.blogspot.com/-J_RMJnm4rrU/Tqb0cAURd3I/AAAAAAAAAEM/41ak30W45Do/s1600/part1_html_m621a959.png"><img src="http://1.bp.blogspot.com/-J_RMJnm4rrU/Tqb0cAURd3I/AAAAAAAAAEM/41ak30W45Do/s1600/part1_html_m621a959.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">Одна из рабочих групп консорциума занимается разработкой спецификаций SVG. Сформировалась эта группа в теперь уже далеком 1998 году. Возглавил ее Джон Феррайола (более подробную информацию о котором можно найти на страничке <a href="http://jonferraiolo.sys-con.com/">http://jonferraiolo.sys-con.com</a>), тогда представитель от Adobe, а ныне член команды IBM. 29 октября 98 года он опубликовал требования к формату SVG и рабочая группа преступила к разработкам.</div>
<div><a href="http://1.bp.blogspot.com/-RFiITFyDumM/Tqb0Yy9cARI/AAAAAAAAAD8/H32tz6O4Fo8/s1600/part1_html_6b618646.png"><img src="http://1.bp.blogspot.com/-RFiITFyDumM/Tqb0Yy9cARI/AAAAAAAAAD8/H32tz6O4Fo8/s1600/part1_html_6b618646.png" alt="" border="0" /></a></div>
<div align="JUSTIFY">В составе группы опубликовавшей 11 февраля 1999 года первый черновик спецификации были: по два представителя от Microsoft, IBM, Netscape, Adobe, Corel и по одному отAutodesc, SUN, Apple, Xerox, Visio, HP, Macromedia, Quark,CCLRC, Inso; всего 20 человек. С тех пор состав рабочей группы конечно же несколько раз менялся, но работы велись непрерывно и о своей деятельности команда регулярно отчитывалась как на сайте консорциума, так и в Твиттере под ником @svgwg.</div>
<div align="JUSTIFY">4 сенября 2001 года была опубликована первая спецификация - SVG 1.0, что дало возможность авторам (cg–художникам) быть уверенными в том, что результат их творчества будет одинаково передаваться конечному потребителю браузерами и редакторами.</div>
<div align="JUSTIFY">Потом публиковались различные рекомендации, были сформированы требования для передачи формата SVG мобильными устройствами, особенности применения с нестандартными кодировками и т. п.</div>
<div align="JUSTIFY">И наконец 16 августа 2011 года вышла вторая редакция спецификации — SVG 1.1</div>
<h1>Отличия SVG от других векторных форматов.</h1>
<div align="JUSTIFY">Забегая вперед, заглянем внутрь файла SVG. Нам сразу становится ясно, что это обычный текстовый файл и объекты описаны в нем языком, который и определен спецификацией W3C, чего нельзя сказать, к примеру, о файлах EMF.</div>
<div><a href="http://4.bp.blogspot.com/-8lK7P9YU_Ms/Tqb0NphmXRI/AAAAAAAAAD0/GtyQi_T10J0/s1600/part1_html_4cf34b3e.png"><img src="http://4.bp.blogspot.com/-8lK7P9YU_Ms/Tqb0NphmXRI/AAAAAAAAAD0/GtyQi_T10J0/s320/part1_html_4cf34b3e.png" alt="" width="320" height="285" border="0" /></a></div>
<div align="JUSTIFY"></div>
<div align="JUSTIFY">Векторная графика SVG легко правится любым текстовым редактором и нет необходимости прибегать к помощи графического редактора. Напротив файлы других форматов для редактирования требуют применения, тех или иных программных средств, большая часть из которых являются платными.</div>
<div align="JUSTIFY">Более того, формат SVG относится к категории открытых и это означает, что мы всегда сможем узнать о том, как он устроен, чего нельзя сказать о фирменных форматах AI (Adobe) и CDR(Corel), которые разрабатываются производителями графических редакторов. И это еще один плюс рассматриваемого формата, но есть у него и минусы, о которых мы поговорим далее&#8230;</div>
<h1>Минусы формата SVG.</h1>
<div align="JUSTIFY">Формат SVG задумывался, кроме всего прочего, и для экономии трафика в сети Интернет. Всегда ли такая экономия имеет место? Я отвечу — Нет. Дело в том, что для изображений маленьких размеров гораздо выгоднее применять растровую графику (к примеру PNG).</div>
<div align="JUSTIFY">Кроме того, есть у SVG и проблемы с интеграцией на web страницах. Несмотря на то, что Microsoft входит в состав рабочей группы SVG полноценная поддержка формата браузером Internet Explorer не обеспечена до сих пор, а частичная начинается только с, последней на сегодняшний день, девятой версии этого браузера. ВерсииIE ниже девятой отображали файлы SVG только с применением плагина. Это обусловлено, с моей точки зрения, извечным желанием компании Билла Гейтса «перетянуть одеяло на себя».</div>
<div lang="en-US" align="JUSTIFY">Браузер Mozilla и некоторые другие отображают графику из файлов SVG, но не могут использовать их в качестве фоновых в связи с тем, что размер изображения может быть опущен (не указан в файле), а вычисление реальных координат объектов вызывает трудности. И только Google Chrome с легкостью обращается с файлами SVG.</div>
<div align="JUSTIFY">Основную конкуренцию формату сегодня составляет графика интегрированная в новый, пока еще, формат гипертекста HTML5. Теперь картинки можно описывать прямо в тексте страницы выделив этот фрагмент кода парным тэгом &lt;CANVAS&gt;.</div>
<div align="JUSTIFY">Анимация и интерактивность, которые также предусмотрены в формате SVG, гораздо лучше проработаны во Flash и даже несмотря на то, что он требует установки плагина (Flash Player) на большинстве браузеров, он пользуется гораздо большей популярностью. Напомню, что формат Flash был создан и разрабатывался компанией Macromedia, а в последующем перешел к Adobe и развивается ею по сей день.</div>
<div align="JUSTIFY">И все же, минусы рассмотренные в данном параграфе нисколько не уменьшают силу формата SVG, который стоит изучить хотя бы для того, чтобы в последующем лучше и легче разбираться в векторной графике в целом.</div>
<h1>Содержание спецификации SVG 1.1</h1>
<div align="JUSTIFY">Давайте для ознакомления с форматом SVG рассмотрим содержание спецификации. В первых двух главах мы видим введение и концепцию языка. В третьей главе речь идет о модели представления, т.е. о том, как программы предназначенные для отображения файлов SVG должны их читать. Затем в четвертой главе рассматриваются базовые типы и интерфейсы, а следом в пятой главе рассмотрена структура файлов (документов) SVG. Глава 6 посвящена стилизации объектов рисунка. Седьмая глава рассматривает систему координат, трансформации и единицы измерения. В восьмой главе говорится о кривых, а в следующей 9 главе остальных базовых фигурах, отдельно в 10 главе рассмотрен объект «Текст». Далее в 11 главе речь идет о заливке объектов, их обводке и маркерах. Глава 12 посвящена краскам, тринадцатая глава расскажет об альтернативных способах заливки, таких как градиент и текстура. В главе 14 говориться об обрезке, маскировании и композиционировании. Пятнадцатая глава посвящена визуальным фильтрам. Главы 16,17 и 18 сообщат нам соответственно об интерактивности, связывании и использовании сценариев. Следующая 19 глава расскажет об анимации, 20-я о шрифтах, 21-я о метаданных, 22-я об обратной совместимости, 23-я о расширяемости. Затем в спецификации приведены приложения в количестве 17-ти штук, которые окончательно перекрывают все вопросы связанные с форматом SVG.</div>
<div align="JUSTIFY">Последняя спецификация пока еще не переведена на русский язык, а стало быть для многих сложна в освоении. Цель данной статьи, в цикле из нескольких частей, донести читателю основные положения спецификации на примере написания файла SVG изображающего пейзаж.</div>
<div align="JUSTIFY">Порядок освоения будет отличаться от предложенного содержанием спецификации, что обусловлено нарастающей сложностью рассматриваемого материала.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/svg-vektornaya-grafika-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тег section &#8212; раздел страницы</title>
		<link>http://www.tegi-html.ru/teg-section/</link>
		<comments>http://www.tegi-html.ru/teg-section/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 19:37:02 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[Новые теги HTML5]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=346</guid>
		<description><![CDATA[section элемент представляет родовую часть документа или заявления. Секция, в этом контексте, является тематической группировкой содержания, как правило с заголовком. Примерами секций были бы главы, различные tabbed страницы в tabbed диалоговом окне или пронумерованные разделы тезиса. Домашняя страница веб-сайта могла быть расколота на секции для введения, сообщений печати и контактной информации. Авторы поощрены использовать article элемент вместо section элемент, когда имело бы [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><code>section</code> элемент представляет родовую часть документа или заявления. Секция, в этом контексте, является тематической группировкой содержания, как правило с заголовком.</p>
<p style="text-align: justify;">Примерами секций были бы главы, различные tabbed страницы в tabbed диалоговом окне или пронумерованные разделы тезиса. Домашняя страница веб-сайта могла быть расколота на секции для введения, сообщений печати и контактной информации.</p>
<p style="text-align: justify;">Авторы поощрены использовать <code>article</code> элемент вместо <code>section</code> элемент, когда имело бы смысл объединять содержание в консорциум элемента.</p>
<p id="use-div-for-wrappers" style="text-align: justify;"><code>section</code> элемент не родовой контейнерный элемент. Когда элемент необходим только для того, чтобы разработать цели или как удобство для scripting, авторы поощрены использовать <code>div</code> элемент вместо этого. Общее правило состоит в том что<code>section</code> элемент соответствующий, только если содержание элемента было бы перечислено явно в схеме документа.</p>
<div style="text-align: justify;">
<p>В следующем примере мы видим статью (часть большей Веб-страницы) о яблоках, содержа две коротких секции.</p>
<pre>&lt;article&gt;
 &lt;hgroup&gt;
  &lt;h1&gt;Apples&lt;/h1&gt;
  &lt;h2&gt;Tasty, delicious fruit!&lt;/h2&gt;
 &lt;/hgroup&gt;
 &lt;p&gt;The apple is the pomaceous fruit of the apple tree.&lt;/p&gt;
 &lt;section&gt;
  &lt;h1&gt;Red Delicious&lt;/h1&gt;
  &lt;p&gt;These bright red apples are the most common found in many
  supermarkets.&lt;/p&gt;
 &lt;/section&gt;
 &lt;section&gt;
  &lt;h1&gt;Granny Smith&lt;/h1&gt;
  &lt;p&gt;These juicy, green apples make a great filling for
  apple pies.&lt;/p&gt;
 &lt;/section&gt;
&lt;/article&gt;</pre>
<p>Заметьте как использование <code>section</code> средства, которые может использовать автор <code>h1</code> элементы повсюду, не имея необходимость волноваться о том, является ли особая секция на высшем уровне, втором уровне, третьем уровне, и так далее.</p>
</div>
<div style="text-align: justify;">
<p>Вот программа окончания с двумя секциями, один для списка людей, получающих высшее образование, и один для описания церемонии.</p>
<pre>&lt;!DOCTYPE Html&gt;
&lt;Html
 &gt;&lt;Head
   &gt;&lt;Title
     &gt;Graduation Ceremony Summer 2022&lt;/Title
   &gt;&lt;/Head
 &gt;&lt;Body
   &gt;&lt;H1
     &gt;Graduation&lt;/H1
   &gt;&lt;Section
     &gt;&lt;H1
       &gt;Ceremony&lt;/H1
     &gt;&lt;P
       &gt;Opening Procession&lt;/P
     &gt;&lt;P
       &gt;Speech by Validactorian&lt;/P
     &gt;&lt;P
       &gt;Speech by Class President&lt;/P
     &gt;&lt;P
       &gt;Presentation of Diplomas&lt;/P
     &gt;&lt;P
       &gt;Closing Speech by Headmaster&lt;/P
   &gt;&lt;/Section
   &gt;&lt;Section
     &gt;&lt;H1
       &gt;Graduates&lt;/H1
     &gt;&lt;Ul
       &gt;&lt;Li
         &gt;Molly Carpenter&lt;/Li
       &gt;&lt;Li
         &gt;Anastasia Luccio&lt;/Li
       &gt;&lt;Li
         &gt;Ebenezar McCoy&lt;/Li
       &gt;&lt;Li
         &gt;Karrin Murphy&lt;/Li
       &gt;&lt;Li
         &gt;Thomas Raith&lt;/Li
       &gt;&lt;Li
         &gt;Susan Rodriguez&lt;/Li
     &gt;&lt;/Ul
   &gt;&lt;/Section
 &gt;&lt;/Body
&gt;&lt;/Html&gt;</pre>
</div>
<div style="text-align: justify;">
<p>В этом примере книжный автор повысил некоторые секции как главы и некоторых как приложения, и использует CSS, чтобы разработать заголовки в этих двух классах секции по-другому. Целая книга обернута в <code>article</code> элемент как часть еще большего документа, содержащего другие книги.</p>
<pre>&lt;article&gt;
 &lt;style&gt;
  section { border: double medium; margin: 2em; }
  section.chapter h1 { font: 2em Roboto, Helvetica Neue, sans-serif; }
  section.appendix h1 { font: small-caps 2em Roboto, Helvetica Neue, sans-serif; }
 &lt;/style&gt;
 &lt;header&gt;
  &lt;hgroup&gt;
   &lt;h1&gt;My Book&lt;/h1&gt;
   &lt;h2&gt;A sample with not much content&lt;/h2&gt;
  &lt;/hgroup&gt;
  &lt;p&gt;&lt;small&gt;Published by Dummy Publicorp Ltd.&lt;/small&gt;&lt;/p&gt;
 &lt;/header&gt;
 &lt;section&gt;
  &lt;h1&gt;My First Chapter&lt;/h1&gt;
  &lt;p&gt;This is the first of my chapters. It doesn't say much.&lt;/p&gt;
  &lt;p&gt;But it has two paragraphs!&lt;/p&gt;
 &lt;/section&gt;
 &lt;section&gt;
  &lt;h1&gt;It Continutes: The Second Chapter&lt;/h1&gt;
  &lt;p&gt;Bla dee bla, dee bla dee bla. Boom.&lt;/p&gt;
 &lt;/section&gt;
 &lt;section&gt;
  &lt;h1&gt;Chapter Three: A Further Example&lt;/h1&gt;
  &lt;p&gt;It's not like a battle between brightness and earthtones would go
  unnoticed.&lt;/p&gt;
  &lt;p&gt;But it might ruin my story.&lt;/p&gt;
 &lt;/section&gt;
 &lt;section&gt;
  &lt;h1&gt;Appendix A: Overview of Examples&lt;/h1&gt;
  &lt;p&gt;These are demonstrations.&lt;/p&gt;
 &lt;/section&gt;
 &lt;section&gt;
  &lt;h1&gt;Appendix B: Some Closing Remarks&lt;/h1&gt;
  &lt;p&gt;Hopefully this long example shows that you &lt;em&gt;can&lt;/em&gt; style
  sections, so long as they are used to indicate actual sections.&lt;/p&gt;
 &lt;/section&gt;
&lt;/article&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/teg-section/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тег source &#8212; источник медиа-данных</title>
		<link>http://www.tegi-html.ru/teg-source/</link>
		<comments>http://www.tegi-html.ru/teg-source/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 19:34:30 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[Новые теги HTML5]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=344</guid>
		<description><![CDATA[source элемент позволяет авторам определять многократные ресурсы альтернативных средств массовой информации для элементов СМИ. Это ничего непредставляет самостоятельно. src признак дает адрес ресурса СМИ. Ценность должна быть действительным непустым URL, потенциально окруженным местами. Этот признак должен присутствовать. Динамически изменение a source элемент и его признак, когда элемент уже вставлен в a video или audio элемент не будет иметь никакого эффекта. Чтобы измениться, что играет, просто используйте src признак на элементе СМИ непосредственно, возможно [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><code>source</code> элемент позволяет авторам определять многократные ресурсы альтернативных средств массовой информации для элементов СМИ. Это ничего непредставляет самостоятельно.</p>
<p style="text-align: justify;"><dfn id="attr-source-src" title="attr-source-src"><code>src</code></dfn> признак дает адрес ресурса СМИ. Ценность должна быть действительным непустым URL, потенциально окруженным местами. Этот признак должен присутствовать.</p>
<p style="text-align: justify;">Динамически изменение a <code>source</code> элемент и его признак, когда элемент уже вставлен в a <code>video</code> или <code>audio</code> элемент не будет иметь никакого эффекта. Чтобы измениться, что играет, просто используйте <code title="attr-media-src">src</code> признак на элементе СМИ непосредственно, возможно используя <code title="dom-navigator-canPlayType">canPlayType()</code> метод, чтобы выбрать от среди доступных ресурсов. Вообще, управление <code>source</code> элементы вручную после документа были разобраны, unncessarily сложный подход.</p>
<p style="text-align: justify;"><dfn id="attr-source-type" title="attr-source-type"><code>type</code></dfn> признак дает тип ресурса СМИ, чтобы помочь пользовательскому агенту определить, может ли это играть этот ресурс СМИ прежде, чем принести его. Если определено, его ценность должна быть действительным типом ПАНТОМИМЫ. <code title="">codecs</code> параметр, который определяют определенные типы ПАНТОМИМЫ, мог бы быть необходимым, чтобы определить точно, как ресурс закодирован. [RFC4281]</p>
<div style="text-align: justify;">
<p>Следующий список показывает некоторые примеры того, как использовать <code title="">codecs=</code> Параметр ПАНТОМИМЫ в <code title="attr-source-type">type</code> признак.</p>
<dl>
<dt>H.264 Принужденное основное видео профиля (главное и расширенное совместимое видео) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;</pre>
</dd>
<dt>H.264 Расширенное видео профиля (совместимый с основанием) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'&gt;</pre>
</dd>
<dt>H.264 Главный уровень 3 видео профиля и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'&gt;</pre>
</dd>
<dt>H.264 &#8216;Высоко&#8217; представляют видео (несовместимый с главным, основанием или расширенными профилями) уровень 3 и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'&gt;</pre>
</dd>
<dt>MPEG-4 Визуальное Простое видео Уровня 0 Профиля и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'&gt;</pre>
</dd>
<dt>MPEG-4 Продвинутое Простое видео Уровня 0 Профиля и Низкая Сложность аудио AAC в контейнере MP4</dt>
<dd>
<pre>&lt;source src='video.mp4' type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'&gt;</pre>
</dd>
<dt>MPEG-4 Визуальное Простое видео Уровня 0 Профиля и аудио AMR в 3GPP контейнер</dt>
<dd>
<pre>&lt;source src='video.3gp' type='video/3gpp; codecs="mp4v.20.8, samr"'&gt;</pre>
</dd>
<dt>Видео Theora и аудио Vorbis в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'&gt;</pre>
</dd>
<dt>Видео Theora и аудио Speex в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='video.ogv' type='video/ogg; codecs="theora, speex"'&gt;</pre>
</dd>
<dt>Одно только аудио Vorbis в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='audio.ogg' type='audio/ogg; codecs=vorbis'&gt;</pre>
</dd>
<dt>Одно только аудио Speex в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='audio.spx' type='audio/ogg; codecs=speex'&gt;</pre>
</dd>
<dt>Одно только аудио FLAC в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='audio.oga' type='audio/ogg; codecs=flac'&gt;</pre>
</dd>
<dt>Видео Dirac и аудио Vorbis в контейнере Ogg</dt>
<dd>
<pre>&lt;source src='video.ogv' type='video/ogg; codecs="dirac, vorbis"'&gt;</pre>
</dd>
</dl>
</div>
<p style="text-align: justify;"><dfn id="attr-source-media" title="attr-source-media"><code>media</code></dfn> признак дает намеченный тип носителя ресурса СМИ, чтобы помочь пользовательскому агенту определить, полезен ли этот ресурс СМИ для пользователя прежде, чем принести его. Его ценность должна быть действительным вопросом СМИ.</p>
<p id="source-default-media" style="text-align: justify;">Неплатеж, если <code title="attr-srouce-media">media</code> признак опущен,&#187;<code title="">all</code>&#171;, означая, что по умолчанию ресурс СМИ подходит для всех СМИ.</p>
<div style="text-align: justify;">
<p>Если a <code>source</code> элемент вставлен как ребенок элемента СМИ, который имеет нет <code title="attr-media-src">src</code> признак и чей <code title="dom-media-networkState">networkState</code> имеет ценность <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>, пользовательский агент должен призвать алгоритм выбора ресурса элемента СМИ.</p>
<p>Признаки IDL <dfn id="dom-source-src" title="dom-source-src"><code>src</code></dfn>, <dfn id="dom-source-type" title="dom-source-type"><code>type</code></dfn>, и <dfn id="dom-source-media" title="dom-source-media"><code>media</code></dfn> должен отразить соответствующие признаки содержания того же самого имени.</p>
</div>
<div style="text-align: justify;">
<p>Если автор не уверен, будут ли пользовательские агенты все в состоянии отдать ресурсы СМИ, если, автор может слушать <code title="event-error">error</code> случай на последнем<code>source</code> элемент и более аккуратное поведение отступления:</p>
<pre>&lt;script&gt;
 function fallback(video) {
   // replace &lt;video&gt; with its contents
   while (video.hasChildNodes()) {
     if (video.firstChild instanceof HTMLSourceElement)
       video.removeChild(video.firstChild);
     else
       video.parentNode.insertBefore(video.firstChild, video);
   }
   video.parentNode.removeChild(video);
 }
&lt;/script&gt;
&lt;video controls autoplay&gt;
 &lt;source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'&gt;
 &lt;source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'
         onerror="fallback(parentNode)"&gt;
 ...
&lt;/video&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/teg-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тег track &#8212; звуковая дорожка</title>
		<link>http://www.tegi-html.ru/teg-track-zvukovaya-dorozhka/</link>
		<comments>http://www.tegi-html.ru/teg-track-zvukovaya-dorozhka/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 19:31:13 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[Новые теги HTML5]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=342</guid>
		<description><![CDATA[track элемент позволяет авторам определить явного внешний источник треков текст для медиа-элементов . Он не представляет ничего сам по себе. kind атрибут перечислимого типа. В следующей таблице перечислены ключевые слова, определенные для этого атрибута. Ключевое слово Состояние Краткое описание subtitles Подзаголовки Транскрипция или перевод диалога, подходящего для того, когда звук доступен, но не понятый (например, потому что пользователь не понимает язык звуковой дорожки ресурса СМИ). Наложенный на [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><strong>track</strong><span> элемент позволяет авторам определить явного внешний источник </span>треков текст<span> для </span>медиа-элементов<span><span> . </span><span>Он не </span></span>представляет<span> ничего сам по себе.</span></p>
<p style="text-align: justify;"><dfn id="attr-track-kind" title="Attr-трек, вид"><code><span><span>kind</span></span></code></dfn><span> атрибут </span>перечислимого типа<span><span>. </span><span>В следующей таблице перечислены ключевые слова, определенные для этого атрибута.</span></span></p>
<table>
<thead>
<tr>
<th>Ключевое слово</th>
<th>Состояние</th>
<th>Краткое описание</th>
</tr>
</thead>
<tbody>
<tr>
<td><dfn id="attr-track-kind-keyword-subtitles" title="attr-track-kind-keyword-subtitles"><code>subtitles</code></dfn></td>
<td><dfn id="attr-track-kind-subtitles" title="attr-track-kind-subtitles">Подзаголовки</dfn></td>
<td>Транскрипция или перевод диалога, подходящего для того, когда звук доступен, но не понятый (например, потому что пользователь не понимает язык звуковой дорожки ресурса СМИ). Наложенный на видео.</td>
</tr>
<tr>
<td><dfn id="attr-track-kind-keyword-captions" title="attr-track-kind-keyword-captions"><code>captions</code></dfn></td>
<td><dfn id="attr-track-kind-captions" title="attr-track-kind-captions">Заголовки</dfn></td>
<td>Транскрипция или перевод диалога, звуковых эффектов, соответствующих музыкальных реплик и другой соответствующей аудио информации, подходящей для того, когда звук недоступный или не ясно слышимый (например, потому что это приглушено, утоплено окружающим шумом, или потому что пользователь глухой). Наложенный на видео; маркированный как подходящий для слабослышащего.</td>
</tr>
<tr>
<td><dfn id="attr-track-kind-keyword-descriptions" title="attr-track-kind-keyword-descriptions"><code>descriptions</code></dfn></td>
<td><dfn id="attr-track-kind-descriptions" title="attr-track-kind-descriptions">Описания</dfn></td>
<td>Текстовые описания видео компонента ресурса СМИ, предназначенного для аудио синтеза, когда визуальный компонент затенен, недоступен, или не годный к употреблению (например, потому что пользователь взаимодействует с применением без экрана, ездя, или потому что пользователь слепой). Синтезируемый как аудио.</td>
</tr>
<tr>
<td><dfn id="attr-track-kind-keyword-chapters" title="attr-track-kind-keyword-chapters"><code>chapters</code></dfn></td>
<td><dfn id="attr-track-kind-chapters" title="attr-track-kind-chapters">Главы</dfn></td>
<td>Названия главы, предназначенные, чтобы использоваться для того, чтобы провести ресурс СМИ. Показанный как интерактивное (потенциально вложенный) перечисляют в пользовательском интерфейсе агента.</td>
</tr>
<tr>
<td><dfn id="attr-track-kind-keyword-metadata" title="attr-track-kind-keyword-metadata"><code>metadata</code></dfn></td>
<td><dfn id="attr-track-kind-metadata" title="attr-track-kind-metadata">Метаданные</dfn></td>
<td>Следы предназначены для использования из подлинника. Не показанный пользовательским агентом.</td>
</tr>
</tbody>
</table>
<p>Признак может быть опущен. <em>Недостающий неплатеж ценности</em> - государство подзаголовков.</p>
<p><dfn id="attr-track-src" title="attr-track-src"><code>src</code></dfn> признак дает адрес текстовых данных о следе. Ценность должна быть действительным непустым URL, потенциально окруженным местами. Этот признак должен присутствовать.</p>
<div>
<p>Если у элемента есть a <code title="attr-track-src">src</code> припишите, чья ценность не пустая последовательность и чья ценность, когда признак был установлен, могла быть успешнорешена относительно элемента, тогда <dfn id="track-url">URL следа</dfn> элемента &#8212; получающийся абсолютный URL. Иначе, URL следа элемента &#8212; пустая последовательность.</p>
</div>
<p>Если URL следа элемента идентифицирует ресурс WebVTT, и элемент <code title="attr-track-kind">kind</code> признак не находится в государстве метаданных, тогда файл WebVTT должен быть файлом WebVTT, используя текст реплики. [WEBVTT]</p>
<p>Кроме того, если URL следа элемента идентифицирует ресурс WebVTT, и элемент <code title="attr-track-kind">kind</code> признак находится в государстве глав, тогда файл WebVTT должен быть и файлом WebVTT, используя текст названия главы и файлом WebVTT, используя только вложенные реплики. [WEBVTT]</p>
<p><dfn id="attr-track-srclang" title="attr-track-srclang"><code>srclang</code></dfn> признак дает язык текстовых данных о следе. Ценность должна быть действительной BCP 47 языковых признаков. Этот признак должен присутствовать если элемент <code title="attr-track-kind">kind</code> признак находится в государстве подзаголовков. [BCP47]</p>
<div>
<p>Если у элемента есть a <code title="attr-track-srclang">srclang</code> припишите, чья ценность не пустая последовательность, тогда <dfn id="track-language">язык следа</dfn> элемента &#8212; ценность признака. Иначе, у элемента нет языка следа.</p>
</div>
<p><dfn id="attr-track-label" title="attr-track-label"><code>label</code></dfn> признак дает удобочитаемое пользователем название для следа. Это название используется пользовательскими агентами, перечисляя подзаголовок,заголовок и аудио следы описания в их пользовательском интерфейсе.</p>
<p>Ценность <code title="attr-track-label">label</code> признак, если признак присутствует, не должен быть пустой последовательностью. Кроме того, не должен быть два <code>track</code> дети элемента того же самого элемента СМИ, чей <code title="attr-track-kind">kind</code> признаки находятся в том же самом государстве, чей <code title="attr-track-srclang">srclang</code> признаки и пропускают или имеют ценности, которые представляют тот же самый язык, и чей <code title="attr-track-label">label</code> признаки снова оба отсутствуют, или у обоих есть та же самая ценность.</p>
<div>
<p>Если у элемента есть a <code title="attr-track-label">label</code> припишите, чья ценность не пустая последовательность, тогда <dfn id="track-label">лейбл следа</dfn> элемента &#8212; ценность признака. Иначе, лейбл следаэлемента &#8212; определенная последовательность пользователя-агента (например, последовательность, &#171;неназванная&#187; в месте действия пользователя или ценности, автоматически произведенной от других признаков).</p>
</div>
<p><dfn id="attr-track-default" title="attr-track-default"><code>default</code></dfn> признак, если определено, указывает, что след должен быть позволен, если бы предпочтение пользователя не указывает, что другой след был бы более соответствующим. Не должно быть больше чем одного <code>track</code> элемент с тем же самым родительским узлом с <code title="attr-track-default">default</code> признак определен.</p>
<p><span>в этом видео есть субтитры на нескольких языках:</span><br />
<code></code></p>
<pre>&lt;video src="brave.webm"&gt;
 &lt;track kind=subtitles src=brave.en.vtt srclang=en label="English"&gt;
 &lt;track kind=captions src=brave.en.hoh.vtt srclang=en label="English for the Hard of Hearing"&gt;
 &lt;track kind=subtitles src=brave.fr.vtt srclang=fr lang=fr label="Fran?ais"&gt;
 &lt;track kind=subtitles src=brave.de.vtt srclang=de lang=de label="Deutsch"&gt;
&lt;/video&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/teg-track-zvukovaya-dorozhka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тег video &#8212; воспроизведение видео и фильмов</title>
		<link>http://www.tegi-html.ru/teg-video-vosproizvedenie-video-i-filmov/</link>
		<comments>http://www.tegi-html.ru/teg-video-vosproizvedenie-video-i-filmov/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 19:19:14 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[Новые теги HTML5]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=339</guid>
		<description><![CDATA[video  элемент используется для воспроизведения видео и фильмов, и аудио файлов с подписями. Содержимое может быть предоставленo посредством video элемента. Агенты пользователей не должны показывать этого контента для пользователя, он предназначен для старых веб-браузеров, не поддерживающих video, так чтобы плагины видео можно попробовать, или чтобы показать текст для пользователей из этих старых браузеров информируя их о [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><strong>video</strong>  элемент используется для воспроизведения видео и фильмов, и аудио файлов с подписями.</p>
<p style="text-align: justify;">Содержимое может быть предоставленo посредством <strong>video</strong> элемента. Агенты пользователей не должны показывать этого контента для пользователя, он предназначен для старых веб-браузеров, не поддерживающих <strong>video</strong>, так чтобы плагины видео можно попробовать, или чтобы показать текст для пользователей из этих старых браузеров информируя их о том, как получить доступ к видео содержанию.</p>
<pre style="text-align: justify;">Note: В частности, это содержание не предназначено для решения проблемы доступности. Чтобы сделать видео доступным для слабовидящих, слепых, слабослышащих, глухих и людей с другими физическими или когнитивными расстройствами, различные функции доступны. Подписи могут быть предоставлены, либо встроенные в видео поток или как внешние файлы, используя <strong>track</strong> элемента. Вход языка треки могут быть предоставлены либо снова встраивается в поток видео или путем синхронизации нескольких <strong>video</strong> элементов, используя MediaGroup атрибут или MediaController объекта. Аудио описания могут быть предоставлены либо в виде отдельного трека, встроенные в видео потоке, или отдельный звуковой дорожки <strong>video</strong> элемент скорректированный к тому же контроллеру, как <strong>video</strong> элемент (ы), либо в текстовом виде, используя WebVTT файл ссылаться с помощью <strong>seek</strong> элемент и синтезируется в речь ПА. WebVTT также может быть использован для названий глав. Для пользователей, которые предпочитают не использовать медиа­элемента на всех, протоколы или другие текстовые альтернативы может быть предоставлена ?олько ссылки на них в прозе у <strong>video</strong> элементов. [WEBVTT]</pre>
<p style="text-align: justify;">Если указанный ресурс будет использоваться, то, когда элемент создается или когда <strong>poster</strong> атрибут установлен, изменен или удален, агент пользователя должен выполнить следующие шаги для определения элемента<em> poster frame</em>:</p>
<ol style="text-align: justify;">
<li>Если существующий экземпляр этого алгоритма работает для этого video элемент, прервать этот экземпляр этого алгоритма без изменения плакат кадр.</li>
<li>Если сайт  значением атрибута является пустая строка, или если атрибут отсутствует, то нет никаких плакатов кадров; прервать эти шаги.</li>
<li>Решение сайт значение атрибута по отношению к элементу. Если это не удается, то нет никаких плакатов кадров; прервать эти шаги.</li>
<li>Выборка полученный абсолютный URL, из элемента документа автора происхождения . Это должно задержать груз событие документа элемента.</li>
<li>Если изображение Таким образом, получается, плакат кадра в том, что изображение. В противном случае, нет никаких плакатов кадр .</li>
</ol>
<p style="text-align: justify;">Note: Изображение дает <strong>site</strong>  атрибут сайт кадров, призван быть представителем кадр видео (как правило, одним из первых непустой кадров), что дае т пользователю представление о том, как видео.</p>
<p style="text-align: justify;">Если видео не доступны данные (элемента <strong>ReadState</strong>  атрибут любой HAVE_NOTHING или HAVE_METADATA, но нет видео данные еще не получены вовсе, либо элемента <strong>ReadState</strong> атрибут любого последующего значения, но медиа­ресурс не имеет видео­канал), <strong>video</strong> элемент представляет сайт кадров.</p>
<p style="text-align: justify;">Когда <strong>video</strong> элемент паузу и текущую позицию воспроизведения первый кадр видео, элемент представляет плакат кадра , если кадр видео уже было показано, в этом случае элемент представляет кадр видео соответствующий текущей воспроизведения положение .</p>
<p style="text-align: justify;">Когда <strong>video</strong> элемент паузу в любой другой позиции, и медиа­ресурса есть видеоканал, элемент представляет кадр видео соответствующий текущей позиции воспроизведения , или, если это еще не доступна (например, потому, что видео или поиска буферизации), последний кадр видео, были оказаны.</p>
<p style="text-align: justify;">Когда <strong>video</strong>  элемент, средства массовой информации ресурса есть видео канал потенциально могли бы играть , он представляет кадр видео на постоянно растет &#171;текущей&#187; позиции . При текущей позиции воспроизведения изменения, такие, что последний кадр оказана уже не кадр соответствует текущей позиции воспроизведения на видео, новая рама должна быть оказана. Точно так же любой звук связан с медиа­ресурс должен, если играл, будет играть синхронно с текущей позиции воспроизведения, в элемента эффективного объема средств массовой информации .</p>
<p style="text-align: justify;">Когда <strong>video</strong> элемент, средства массовой информации ресурса есть видео канал ни потенциально могли бы играть ни паузы (например, при поиске или тупик), элемент представляет последний кадр видео, были оказаны.</p>
<p style="text-align: justify;">Note: Какие кадров в видеопотоке соответствует определенной позиции воспроизведения определяется формат видео потока.</p>
<p style="text-align: justify;"><strong>video</strong>  элемент также представляет любой текст трека реплики которого текст трека кий активный флаг установлен, и чьи текст трека в показ или показ по умолчанию режима.</p>
<p style="text-align: justify;">В дополнение к вышесказанному, агент пользователя может предоставить пользователю сообщений (таких, как &#171;буферные&#187;, &#171;видео не загружается&#187;, &#171;Ошибка&#187;, или более подробной информации) путем наложения текста и иконок на видео или других областей Воспроизведение элемента области, или в другой соответствующей форме.</p>
<p style="text-align: justify;">Агенты пользователей, которые не могут сделать видео может вместо этого элемента представляют собой ссылки на внешние утилиты воспроизведения видео или видео данные.</p>
<p style="text-align: justify;">Когда <strong>video</strong> элемента медиа ресурс имеет видеоканал, элемент представляет собой краску источник, ширина которого медиа­ресурсов &#171;с собственной ширины , высота которого составляет медиа­ресурсов &#171;с внутренней высотой , и чье появление кадр видео соответствующий текущую позицию воспроизведения , если это доступно, иначе (например, когда видео ищет или буферизации) своего предыдущего появления, если таковые имеются, или же (например, потому, что видео все еще грузится первый кадр) черноты.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/teg-video-vosproizvedenie-video-i-filmov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тег wbr &#8212; мягкий перенос строки</title>
		<link>http://www.tegi-html.ru/teg-wbr/</link>
		<comments>http://www.tegi-html.ru/teg-wbr/#comments</comments>
		<pubDate>Sat, 21 Jul 2012 18:37:05 +0000</pubDate>
		<dc:creator><![CDATA[Андрей Семенов]]></dc:creator>
				<category><![CDATA[Новые теги HTML5]]></category>

		<guid isPermaLink="false">http://www.tegi-html.ru/?p=336</guid>
		<description><![CDATA[wbr элемент представляет возможность разрыва строки. В следующем примере, кто-то цитирует то, что для эффекта, записывается как одно длинное слово. Однако, чтобы гарантировать, что текст может быть заключен в читаемом образом, отдельные слова в цитате разделяются с помощью wbr элемента. &#60;p&#62;So then he pointed at the tiger and screamed "there&#60;wbr&#62;is&#60;wbr&#62;no&#60;wbr&#62;way&#60;wbr&#62;you&#60;wbr&#62;are&#60;wbr&#62;ever&#60;wbr&#62;going&#60;wbr&#62;to&#60;wbr&#62;catch&#60;wbr&#62;me"!&#60;/p&#62; Здесь, особенно в длинных очередях [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><strong>wbr </strong>элемент представляет возможность разрыва строки.</p>
<p style="text-align: justify;">В следующем примере, кто-то цитирует то, что для эффекта, записывается как одно длинное слово. Однако, чтобы гарантировать, что текст может быть заключен в читаемом образом, отдельные слова в цитате разделяются с помощью <strong>wbr</strong> элемента.</p>
<pre>&lt;p&gt;So then he pointed at the tiger and screamed
"there&lt;wbr&gt;is&lt;wbr&gt;no&lt;wbr&gt;way&lt;wbr&gt;you&lt;wbr&gt;are&lt;wbr&gt;ever&lt;wbr&gt;going&lt;wbr&gt;to&lt;wbr&gt;catch&lt;wbr&gt;me"!&lt;/p&gt;</pre>
<p style="text-align: justify;">Здесь, особенно в длинных очередях кода в листингe программы используют точки  разрыва с применением <strong>wbr</strong> элементов.</p>
<pre>&lt;pre&gt;...
Heading heading = Helm.HeadingFactory(HeadingCoordinates[1], &lt;wbr&gt;HeadingCoordinates[2], &lt;wbr&gt;HeadingCoordinates[3], &lt;wbr&gt;HeadingCoordinates[4]);
Course course = Helm.CourseFactory(Heading, &lt;wbr&gt;Maps.MapFactoryFromHeading(heading), &lt;wbr&gt;Speeds.GetMaximumSpeed().ConvertToWarp());
...&lt;/pre&gt;</pre>
<p style="text-align: justify;">Любая информация, содержащаяся внутри <strong>wbr</strong> элементы не должны рассматриваться как часть окружающего текста.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tegi-html.ru/teg-wbr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
