<?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>Ovjer</title>
	<atom:link href="http://ovjer.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://ovjer.ru</link>
	<description></description>
	<lastBuildDate>Tue, 27 Mar 2012 14:44:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>H4 как заголовок сниппета в поиске Яндекса</title>
		<link>http://ovjer.ru/2012/01/h4-%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%ba-%d1%81%d0%bd%d0%b8%d0%bf%d0%bf%d0%b5%d1%82%d0%b0-%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b5-%d1%8f%d0%bd%d0%b4%d0%b5%d0%ba/</link>
		<comments>http://ovjer.ru/2012/01/h4-%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%ba-%d1%81%d0%bd%d0%b8%d0%bf%d0%bf%d0%b5%d1%82%d0%b0-%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b5-%d1%8f%d0%bd%d0%b4%d0%b5%d0%ba/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 22:07:42 +0000</pubDate>
		<dc:creator>Ovjer</dc:creator>
				<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://ovjer.ru/?p=386</guid>
		<description><![CDATA[Собственно, вся новость в названии =) На сайте, посвященном кино, заметил, что заголовок сниппета Яндекс взял из h4 тега, коих на странице было 5 штук. При этом текст сниппета был сформирован из релевантного запросу текста несколькими абзацами выше. Нужно отметить, что сформированный таким образом сниппет получился релевантнее запросу пользователя, чем если бы он был сформирован [...]]]></description>
			<content:encoded><![CDATA[<p>Собственно, вся новость в названии =) </p>
<p>На сайте, посвященном кино, заметил, что заголовок сниппета Яндекс взял из h4 тега, коих на странице было 5 штук. При этом текст сниппета был сформирован из релевантного запросу текста несколькими абзацами выше. Нужно отметить, что сформированный таким образом сниппет получился релевантнее запросу пользователя, чем если бы он был сформирован на основе всей страницы.</p>
]]></content:encoded>
			<wfw:commentRss>http://ovjer.ru/2012/01/h4-%d0%ba%d0%b0%d0%ba-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%be%d0%ba-%d1%81%d0%bd%d0%b8%d0%bf%d0%bf%d0%b5%d1%82%d0%b0-%d0%b2-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b5-%d1%8f%d0%bd%d0%b4%d0%b5%d0%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Возвращение</title>
		<link>http://ovjer.ru/2011/11/%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%89%d0%b5%d0%bd%d0%b8%d0%b5/</link>
		<comments>http://ovjer.ru/2011/11/%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%89%d0%b5%d0%bd%d0%b8%d0%b5/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 01:30:28 +0000</pubDate>
		<dc:creator>Ovjer</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://ovjer.ru/?p=375</guid>
		<description><![CDATA[Привет. Блог долгое время был в небытии. Записи почистил, оставил только одну =) Следующий пост будет о WAI-ARIA, затем об имитационных играх. Тематика блога отныне &#8211; интернет-маркетинг и управление ИТ. За прошедшие полгода все мои 3 сайта постигла та же участь, что и этот блог. Новые сайты сделал на .рф, Яндекс подозрительно долго их индексирует, [...]]]></description>
			<content:encoded><![CDATA[<p>Привет. Блог долгое время был в небытии. Записи почистил, оставил только одну =) </p>
<p>Следующий пост будет о <abbr title="Web Accessibility Initiative">WAI</abbr>-<abbr title="Accessible Rich Internet Applications">ARIA</abbr>, затем об имитационных играх. Тематика блога отныне &#8211; интернет-маркетинг и управление ИТ. </p>
<p>За прошедшие полгода все мои 3 сайта постигла та же участь, что и этот блог. Новые сайты сделал на .рф, Яндекс подозрительно долго их индексирует, Гугл подозрительно низко ранжирует.</p>
]]></content:encoded>
			<wfw:commentRss>http://ovjer.ru/2011/11/%d0%b2%d0%be%d0%b7%d0%b2%d1%80%d0%b0%d1%89%d0%b5%d0%bd%d0%b8%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Приоритетность CSS-стилей: Определённость, Наследование и Каскадность</title>
		<link>http://ovjer.ru/2010/12/prioritetnost-css-stilej-opredelyonnost-nasledovanie-i-kaskadnost/</link>
		<comments>http://ovjer.ru/2010/12/prioritetnost-css-stilej-opredelyonnost-nasledovanie-i-kaskadnost/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 14:53:41 +0000</pubDate>
		<dc:creator>Ovjer</dc:creator>
				<category><![CDATA[Разработка]]></category>

		<guid isPermaLink="false">http://ovjer.ru/?p=35</guid>
		<description><![CDATA[Это переводная статья. Оригинал статьи — Understanding Style Precedence in CSS: Specificity, Inheritance, and the Cascade. Автор — Steven Bradley. Уже давно нашел её в интернете, но никак руки не доходили перевести. Информация, рассказанная автором, представляется мне очень важной и недавно, в очередной раз редактируя очередную тему для WordPress, я в этом окончательно убедился. До [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ovjer.ru/2010/12/prioritetnost-css-stilej-opredelyonnost-nasledovanie-i-kaskadnost" target="_self">Это</a> переводная статья. Оригинал статьи — <a href="http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/" target="_blank">Understanding Style Precedence in CSS: Specificity, Inheritance, and the Cascade</a>. Автор — <a href="http://www.vanseodesign.com/about/" target="_blank">Steven Bradley</a>. Уже давно нашел её в интернете, но никак руки не доходили перевести. Информация, рассказанная автором, представляется мне очень важной и недавно, в очередной раз редактируя очередную тему для WordPress, я в этом окончательно убедился. До сегодняшнего дня, оригинал этой статьи был у меня в закладках, но бегло читать на английском я пока не умею, а значит, теперь смогу похвастаться, что по крайней мере одна статья из моего блога есть в закладках по крайней мере у одного человека —  у меня =)</p>
<p>Итак, начнём:</p>
<p>Вы когда-нибудь попадали в ситуацию, когда вы пытались применить <span class="notbr"><abbr title="Cascading Style Sheets">CSS</abbr>-стиль</span> к элементу, но элемент их не использовал? Выходит, что Ваши стили игнорируются, но вы не можете понять почему. Может быть, вы решали эту проблему воспользовавшись атрибутом <span class="notbr">!improtant</span>, или, в качестве последнего аргумента, <span class="notbr">inline-стилями</span>. Очень вероятно, что проблема, с которой вы столкнулись, была связана с приоритетностью <span class="notbr">CSS-стилей</span>.<span id="more-35"></span></p>
<p>Лучшее понимание того, какой из <span class="notbr">CSS-стилей</span> получит больший приоритет, может привести к меньшим трудностям с CSS и более чистому и организованному <span class="notbr">CSS-коду</span>, поэтому, давайте взглянем на три свойства, которые и решают, какое <span class="notbr">CSS-правило</span> будет применено к <span class="notbr"><abbr title="HyperText Markup Language">HTML</abbr>-элементу</span>:</p>
<ul>
<li>Определённость;</li>
<li>Наследование;</li>
<li>Каскадность.</li>
</ul>
<p>Понимание этих правил приведёт вас на следующий уровень в познании CSS.</p>
<h2>Определённость</h2>
<p>Допустим, у вас есть <span class="notbr">HTML-код</span>, содержащий абзац с применённым к нему классом &#0039;bio&#0039;. Кроме того, у вас есть следующие два <span class="notbr"><dfn title="Каждое правило состоит из селекторов (напр. p.bio, #sidebar p) и блока свойств между фигурными скобками">CSS-правила</dfn></span>:</p>
<pre class="brush: css; title: ; notranslate">p {font-size: 12px}
p.bio {font-size: 14px}</pre>
<p>Какого размера вы ожидаете увидеть шрифт в абзаце, 12 или 14 пикселей? Вы можете предположить, что в данном случае размер шрифта будет 14 пикселей. Вторая строчка <span class="notbr">&#0039;p.bio&#0039;</span> определена точнее, чем первая, когда дело доходит до абзаца с классом &#0039;bio&#0039;. Однако зачастую понять какова определённость не так просто.</p>
<p>Рассмотрим, например, следующий код:</p>
<pre class="brush: css; html-script: true; title: HTML-код; notranslate">&lt;div id=&quot;sidebar&quot;&gt;
&lt;p class=&quot;bio&quot;&gt;Ваш текст&lt;/p&gt;
&lt;/div&gt;</pre>
<pre class="brush: css; title: CSS-код; notranslate">div p.bio {font-size: 14px}
#sidebar p {font-size: 12px}</pre>
<p>На первый взгляд, первая строка <span class="notbr">CSS-кода</span> выглядит более определённой, но, на самом деле, точнее определено правило во второй строке. Почему?</p>
<p>Чтобы ответить на этот вопрос, нам следует взглянуть на правила подсчёта определённости.</p>
<p>Определённость подсчитывается путём сложения разных компонентов селектора и выражения их в форме <span class="notbr">(a,b,c,d)</span>. На примерах ниже будет понятнее, но для начала компоненты:</p>
<ul>
<li>Элемент, <a href="http://htmlbook.ru/samcss/psevdoelementy" target="_blank">псевдоэлемент</a>: d=1 — (0,0,0,1);</li>
<li>Класс, <a href="http://www.google.com/url?q=http://htmlbook.ru/samcss/psevdoklassy" target="_blank">псевдокласс</a>, атрибут: c=1 — (0,0,1,0);</li>
<li>Идентификатор (#id): b=1 — (0,1,0,0);</li>
<li>Inline-стиль: a=1 — (1,0,0,0);</li>
</ul>
<p>Идентификатор определён точнее, чем класс, а класс определён точнее, чем элемент.</p>
<p>Вы подсчитываете определённость складывая каждый из выше приведённых компонентов селектора. Важно помнить, что <span class="notbr">(0,0,1,0)</span> более определено, чем <span class="notbr">(0,0,0,15)</span>. Давайте взглянем на некоторые примеры, чтобы сделать подсчёты понятнее:</p>
<ul>
<li>p: 1 элемент — (0,0,0,1);</li>
<li>div: 1 элемент — (0,0,0,1);</li>
<li>#sidebar: 1 идентификатор — (0,1,0,0);</li>
<li>div#sidebar: 1 элемент, 1 идентификатор – (0,1,0,1);</li>
<li>div#sidebar p: 2 элемента, 1 идентификатор — (0,1,0,2);</li>
<li>div#sidebar p.bio: 2 элемента, 1 класс, 1 идентификатор — (0,1,1,2);</li>
</ul>
<p>Теперь вернёмся к примеру, рассмотренному нами выше:</p>
<pre class="brush: css; title: ; notranslate">div p.bio {font-size: 14px} — (0,0,1,2)
#sidebar p {font-size: 12px} — (0,1,0,1)</pre>
<p>Правило во второй строке определено точнее и, поэтому, оно является приоритетным.</p>
<p>И последний пункт, перед тем как мы перейдём к наследованию. Когда вы помечаете <span class="notbr">CSS-свойство</span> атрибутом <span class="notbr">!important</span>, вы переписываете правила определённости, таким образом в следующем коде</p>
<pre class="brush: css; title: ; notranslate">div p.bio {font-size: 14px !important}
#sidebar p {font-size: 12px}</pre>
<p>приоритет получает правило в первой строчке. <span class="notbr">!important</span> по прежнему является средством для обхода базовых правил CSS и не должен применяться, если вы понимаете CSS.</p>
<h2>Наследование</h2>
<p>Идею наследования понять относительно легко. Элементы наследуют стили от родительского контейнера. Установив красный цвет для тэга body, вы, если не задано иное, получите красный текст внутри всех элементов тэга body.</p>
<p>Но не все <span class="notbr">CSS-свойства</span> наследуются. Например внешние и внутренние отступы не наследуются. Если вы установите свойства margin или padding для div’а, абзацы внутри этого div’а не будут наследовать эти свойства. Абзац будет использовать стандартные браузерные значения margin и padding, пока вы не установите иные.</p>
<p>Однако можно явно указать, что элемент наследует стиль родительского контейнера. Например, вы можете объявить:</p>
<pre class="brush: css; title: ; notranslate">p {margin: inherit; padding: inherit}</pre>
<p>Тогда абзац будет наследовать отступы родительского контейнера.</p>
<h2>Каскадность</h2>
<p>Каскадность контролирует распределение приоритетов <span class="notbr">CSS-стилей</span> и работает следующим образом:</p>
<ol>
<li>Найти все <span class="notbr">CSS-стили</span>, применяемые к элементу, и свойство, для которого определяется приоритет.</li>
<li>Отсортировать стили по происхождению и весу. Происхождение говорит об источнике стилей (авторские, пользовательские, стандартные браузерные стили), вес говорит о важности стиля. Авторский стиль имеет больше веса, чем пользовательский, который имеет больший вес, чем браузерный. Стили помеченные атрибутом <span class="notbr">!important</span> имеют больший вес, чем обычные. <span class="translator-note">(Примечание переводчика) Если все стили помечены <span class="notbr">!important</span>, авторские стили имеют больший вес, чем браузерные, но меньший вес, чем пользовательские.</span></li>
<li>Подсчитать определённость.</li>
<li>Если и определённость и происхождение одинаковы, стиль, объявленный позже, имеет больший приоритет. <span class="notbr">CSS-код</span>, объявленный в самом <span class="notbr">HTML-коде</span>, всегда &#0132;позже&#0147; подключаемых стилей, несмотря на относительный порядок объявления.</li>
</ol>
<p>#3му шагу вы должны уделять наибольшее внимание.</p>
<p>#2 Просто поймите, что стиль будет выбран в зависимости от того, как пользователь настроил свой браузер.</p>
<p>Несмотря на то, что стандартные стили будут переписаны вашими, стандартные стили существуют и часто становятся причиной проблем с <span class="notbr">кросс-браузерностью</span>. Исключить из расчётов стандартные стили можно, воспользовавшись такими CSS reset’ами, как <a href="http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/" target="_blank">CSS Reset Eric’а Meyer’а</a> или <a href="http://developer.yahoo.com/yui/reset/" target="_blank">YUI Reset CSS от Yahoo</a>.</p>
<h2>Резюме</h2>
<p>Надеюсь, выше приведённые советы помогут решить некоторые ваши проблемы с приоритетами CSS. В большинстве случаев, когда вы сталкиваетесь с конфликтами в стилях, проблема лежит в определённости. В тех случаях, когда стиль для элемента не объявлен, но он ведёт себя нестандартно, очень вероятно, что элемент наследует стиль родительского контейнера или браузерный стиль.</p>
<p>Главное правило, которого нужно придерживаться в работе с CSS — использовать как можно меньшую определённость, нужную для стилизации ваших элементов. Например, используйте <span class="notbr">#sidebar</span> вместо <span class="notbr">div#sidebar</span>. Я позволяю себе нарушать это правило гораздо чаще, чем следовало бы, но использование наименьшей определённости сделает дополнение стилей правилами с большей определённостью гораздо более удобным.</p>
<p>Если вы будете использовать наибольшую определённость, в последующем вы можете столкнуться с проблемами, которые вновь будете решать с помощью атрибута <span class="notbr">!important</span> или <span class="notbr">inline-стилей</span>. Начинайте с наименьшей определённости и увеличивайте её по мере необходимости.</p>
]]></content:encoded>
			<wfw:commentRss>http://ovjer.ru/2010/12/prioritetnost-css-stilej-opredelyonnost-nasledovanie-i-kaskadnost/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
