<?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>Ксдыщь! &#187; Рецептарий</title>
	<atom:link href="http://flack.ru/category/webdev/feed/" rel="self" type="application/rss+xml" />
	<link>http://flack.ru</link>
	<description>Дилетантские заметки про XSLT/XPath, HTML/CSS и всякую фигню</description>
	<lastBuildDate>Sun, 13 Feb 2011 21:53:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>XML шиворот-навыворот</title>
		<link>http://flack.ru/2011/02/13/xml-reverse/</link>
		<comments>http://flack.ru/2011/02/13/xml-reverse/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 13:20:04 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[XSLT/XPath]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[document order]]></category>
		<category><![CDATA[string reverser]]></category>

		<guid isPermaLink="false">http://flack.ru/?p=302</guid>
		<description><![CDATA[Придумал и заодно решил тупую, но забавную задачку. Максимально развернуть входящий XML-документ. То есть из сорца вроде: &#60;alphabet-listing&#62; &#60;letter name000="A letter"&#62; &#60;mark1_&#62;Alfa Romeo&#60;/mark1_&#62; &#60;mark222&#62;Aston Martin&#60;/mark222&#62; &#60;mark33333333&#62;Audi&#60;/mark33333333&#62; &#60;/letter&#62; &#60;!-- Тестовый коммент --&#62; &#60;test:letter name="B letter" xmlns:test="http://localhost"&#62; &#60;mark&#62;Bentley&#60;/mark&#62; &#60;mark&#62;BMW&#60;/mark&#62; &#60;mark&#62;Buick&#60;/mark&#62; &#60;/test:letter&#62; &#60;letter test2:name="C letter" xmlns:test2="http://localhost2"&#62; &#60;mark&#62;Cadillac&#60;/mark&#62; &#60;mark&#62;Chery&#60;/mark&#62; &#60;mark&#62;Chevrolet&#60;/mark&#62; &#60;mark&#62;Chrysler&#60;/mark&#62; &#60;mark&#62;Citroen&#60;/mark&#62; &#60;/letter&#62; &#60;letter name="D letter"&#62; &#60;mark&#62;Daewoo&#60;/mark&#62; &#60;mark&#62;Daihatsu&#60;/mark&#62; &#60;mark&#62;Dodge&#60;/mark&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Придумал и заодно решил тупую, но забавную задачку. Максимально развернуть входящий XML-документ. То есть из сорца вроде: </p>
<pre><code class="xml">&lt;alphabet-listing&gt;
    &lt;letter name000="A letter"&gt;
        &lt;mark1_&gt;Alfa Romeo&lt;/mark1_&gt;
        &lt;mark222&gt;Aston Martin&lt;/mark222&gt;
        &lt;mark33333333&gt;Audi&lt;/mark33333333&gt;
    &lt;/letter&gt;
    &lt;!-- Тестовый коммент --&gt;
    &lt;test:letter name="B letter" xmlns:test="http://localhost"&gt;
        &lt;mark&gt;Bentley&lt;/mark&gt;
        &lt;mark&gt;BMW&lt;/mark&gt;
        &lt;mark&gt;Buick&lt;/mark&gt;
    &lt;/test:letter&gt;
    &lt;letter test2:name="C letter" xmlns:test2="http://localhost2"&gt;
        &lt;mark&gt;Cadillac&lt;/mark&gt;
        &lt;mark&gt;Chery&lt;/mark&gt;
        &lt;mark&gt;Chevrolet&lt;/mark&gt;
        &lt;mark&gt;Chrysler&lt;/mark&gt;
        &lt;mark&gt;Citroen&lt;/mark&gt;
    &lt;/letter&gt;
    &lt;letter name="D letter"&gt;
        &lt;mark&gt;Daewoo&lt;/mark&gt;
        &lt;mark&gt;Daihatsu&lt;/mark&gt;
        &lt;mark&gt;Dodge&lt;/mark&gt;
    &lt;/letter&gt;
&lt;/alphabet-listing&gt;</code></pre>
<p>Получить что-нибудь такое:</p>
<pre><code>&lt;gnitsil-tebahpla&gt;
    &lt;rettel eman="rettel D"&gt;
        &lt;kram&gt;egdoD&lt;/kram&gt;
        &lt;kram&gt;ustahiaD&lt;/kram&gt;
        &lt;kram&gt;ooweaD&lt;/kram&gt;
    &lt;/rettel&gt;
    &lt;rettel auto-ns1:eman="rettel C" xmlns:auto-ns1="http://localhost2"&gt;
        &lt;kram&gt;neortiC&lt;/kram&gt;
        &lt;kram&gt;relsyrhC&lt;/kram&gt;
        &lt;kram&gt;telorvehC&lt;/kram&gt;
        &lt;kram&gt;yrehC&lt;/kram&gt;
        &lt;kram&gt;callidaC&lt;/kram&gt;
    &lt;/rettel&gt;
    &lt;rettel eman="rettel B" xmlns="http://localhost"&gt;
        &lt;kram xmlns=""&gt;kciuB&lt;/kram&gt;
        &lt;kram xmlns=""&gt;WMB&lt;/kram&gt;
        &lt;kram xmlns=""&gt;yeltneB&lt;/kram&gt;
    &lt;/rettel&gt;
    &lt;!-- Тестовый коммент --&gt;
    &lt;rettel eman="rettel A"&gt;
        &lt;kram&gt;iduA&lt;/kram&gt;
        &lt;kram&gt;nitraM notsA&lt;/kram&gt;
        &lt;_1kram&gt;oemoR aflA&lt;/_1kram&gt;
    &lt;/rettel&gt;
&lt;/gnitsil-tebahpla&gt;</code></pre>
<p>Совершенно несмешная первоапрельская шутка, например. Заодно демонстрирует некоторые интересные штуки типа переворачивалки строки/порядка следования и создания NCName.</p>
<p>Комментарии о происходящем прямо по XSLT-коду. <a href="http://flack.ru/2011/02/13/xml-reverse/#more-302" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2011/02/13/xml-reverse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Передача булеан в ключ</title>
		<link>http://flack.ru/2011/02/05/interesting-key-use/</link>
		<comments>http://flack.ru/2011/02/05/interesting-key-use/#comments</comments>
		<pubDate>Fri, 04 Feb 2011 23:18:41 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[XSLT/XPath]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[boolean]]></category>
		<category><![CDATA[key]]></category>

		<guid isPermaLink="false">http://flack.ru/?p=276</guid>
		<description><![CDATA[Недавно увидел интересный вариант использования ключей. Вещь во многом бесполезная, но уж больно красивая как по мне. &#60;items&#62; &#60;item&#62;Январь&#60;/item&#62; &#60;item&#62;Февраль&#60;/item&#62; &#60;item&#62;Март&#60;/item&#62; &#60;item&#62;Апрель&#60;/item&#62; &#60;item&#62;Май&#60;/item&#62; &#60;item&#62;Июнь&#60;/item&#62; &#60;/items&#62; &#60;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&#62; &#60;xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/&#62; &#60;xsl:key name="testMatch" match="item" use="contains(., 'р')"/&#62; &#60;xsl:template match="/"&#62; &#60;result&#62; &#60;matched&#62; &#60;xsl:copy-of select="key('testMatch', 'true')"/&#62; &#60;/matched&#62; &#60;not-matched&#62; &#60;xsl:copy-of select="key('testMatch', 'false')"/&#62; &#60;/not-matched&#62; &#60;/result&#62; &#60;/xsl:template&#62; &#60;/xsl:stylesheet&#62; &#60;result&#62; &#60;matched&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно увидел интересный вариант использования ключей. Вещь во многом бесполезная, но уж больно красивая как по мне.</p>
<pre><code>&lt;items&gt;
    &lt;item&gt;Январь&lt;/item&gt;
    &lt;item&gt;Февраль&lt;/item&gt;
    &lt;item&gt;Март&lt;/item&gt;
    &lt;item&gt;Апрель&lt;/item&gt;
    &lt;item&gt;Май&lt;/item&gt;
    &lt;item&gt;Июнь&lt;/item&gt;
&lt;/items&gt;</code></pre>
<pre><code>&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
    &lt;xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/&gt;

    &lt;xsl:key name="testMatch" match="item" use="contains(., 'р')"/&gt;

    &lt;xsl:template match="/"&gt;
        &lt;result&gt;
            &lt;matched&gt;
                &lt;xsl:copy-of select="key('testMatch', 'true')"/&gt;
            &lt;/matched&gt;
            &lt;not-matched&gt;
                &lt;xsl:copy-of select="key('testMatch', 'false')"/&gt;
            &lt;/not-matched&gt;
        &lt;/result&gt;
    &lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;</code></pre>
<pre><code>&lt;result&gt;
    &lt;matched&gt;
        &lt;item&gt;Январь&lt;/item&gt;
        &lt;item&gt;Февраль&lt;/item&gt;
        &lt;item&gt;Март&lt;/item&gt;
        &lt;item&gt;Апрель&lt;/item&gt;
    &lt;/matched&gt;
    &lt;not-matched&gt;
        &lt;item&gt;Май&lt;/item&gt;
        &lt;item&gt;Июнь&lt;/item&gt;
    &lt;/not-matched&gt;
&lt;/result&gt;</code></pre>
<p>Почему не передавать просто <code>true()</code>? Для меня это чисто стилистическая заморочка.</p>
<blockquote><p>The <code>use</code> attribute is an expression specifying the values of the key; the expression is evaluated once for each node that matches the pattern. If the result is a node-set, then for each node in the node-set, the node that matches the pattern has a key of the specified name whose value is the string-value of the node in the node-set; <strong>otherwise, the result is converted to a string</strong>, and the node that matches the pattern has a key of the specified name with value equal to that string.<br />
&#8230;<br />
When the second argument to the <code>key</code> function is of type node-set, then the result is the union of the result of applying the key function to the string value of each of the nodes in the argument node-set. <strong>When the second argument to key is of any other type, the argument is converted to a string as if by a call to the <code>string</code> function</strong>&#8230;<br />
<a href="http://www.w3.org/TR/xslt#key">http://www.w3.org/TR/xslt#key</a></p></blockquote>
<p>Такое вот в итоге явное приведение. Но <code>key('testMatch', true())</code> тоже конечно работает. По крайней мере, в тех имплементациях, что есть под рукой.</p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2011/02/05/interesting-key-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Проверка на наличие текстового содержимого в элементе</title>
		<link>http://flack.ru/2010/12/23/check-no-text-in-element/</link>
		<comments>http://flack.ru/2010/12/23/check-no-text-in-element/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 01:45:38 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[XSLT/XPath]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://flack.ru/?p=256</guid>
		<description><![CDATA[С детства известно: если сожрал конфеты, то заворачивать камешки в фантик &#8212; последнее дело. В данном случае разочаровывающий фантик выглядит примерно так: &#60;checks&#62; &#60;child&#62;&#60;/child&#62; &#60;child2&#62; &#60;grand&#62; &#60;/grand&#62; &#60;/child2&#62; &#60;child3&#62; &#60;grand&#62; &#60;grand attribute-we-dont-care-about="some value"&#62; &#60;grand&#62; &#60;/grand&#62; &#60;/grand&#62; &#60;/grand&#62; &#60;/child3&#62; &#60;child4&#62; &#60;grand&#62; &#60;grand attribute-we-dont-care-about="some value"&#62; &#60;grand&#62; 20 &#60;/grand&#62; &#60;/grand&#62; &#60;/grand&#62; &#60;/child4&#62; &#60;/checks&#62; Нас интересует только child 4, [...]]]></description>
			<content:encoded><![CDATA[<p>С детства известно: если сожрал конфеты, то заворачивать камешки в фантик &mdash; последнее дело.</p>
<p>В данном случае разочаровывающий фантик выглядит примерно так:</p>
<pre><code>&lt;checks&gt;
    &lt;child&gt;&lt;/child&gt;
    &lt;child2&gt;
        &lt;grand&gt;    &lt;/grand&gt;
    &lt;/child2&gt;
    &lt;child3&gt;
        &lt;grand&gt;
            &lt;grand attribute-we-dont-care-about="some value"&gt;
                &lt;grand&gt;

                &lt;/grand&gt;
            &lt;/grand&gt;
        &lt;/grand&gt;
    &lt;/child3&gt;
    &lt;child4&gt;
        &lt;grand&gt;
            &lt;grand attribute-we-dont-care-about="some value"&gt;
                &lt;grand&gt;
                    20
                &lt;/grand&gt;
            &lt;/grand&gt;
        &lt;/grand&gt;
    &lt;/child4&gt;
&lt;/checks&gt;</code></pre>
<p>Нас интересует только child 4, так как у него есть потомок, в значении которого есть что-то кроме вайтспейсов, а именно &#8220;20&#8243;. Конфета, другими словами. <a href="http://flack.ru/2010/12/23/check-no-text-in-element/#more-256" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2010/12/23/check-no-text-in-element/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Еще один пост про группировку в XSLT 1.0</title>
		<link>http://flack.ru/2010/11/19/yet-another-xsl-group/</link>
		<comments>http://flack.ru/2010/11/19/yet-another-xsl-group/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 22:53:01 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[XSLT/XPath]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://flack.ru/?p=166</guid>
		<description><![CDATA[В этом посте мы рассмотрим, сюрприз, группировку посредством XSLT 1.0. Тема уже обжевана изрядно, но не лишать же мне вас удовольствия ознакомиться с ней и в этом уютном бложике. Допустим, с сервера пришел совершенно бесталанный XML. &#60;marks&#62; &#60;mark&#62;Buick&#60;/mark&#62; &#60;mark&#62;Citroen&#60;/mark&#62; &#60;mark&#62;Daewoo&#60;/mark&#62; &#60;mark&#62;Chery&#60;/mark&#62; &#60;mark&#62;Audi&#60;/mark&#62; &#60;mark&#62;Chevrolet&#60;/mark&#62; &#60;mark&#62;Alfa Romeo&#60;/mark&#62; &#60;mark&#62;BMW&#60;/mark&#62; &#60;mark&#62;Cadillac&#60;/mark&#62; &#60;mark&#62;Daihatsu&#60;/mark&#62; &#60;mark&#62;Aston Martin&#60;/mark&#62; &#60;mark&#62;Dodge&#60;/mark&#62; &#60;mark&#62;Bentley&#60;/mark&#62; &#60;mark&#62;Chrysler&#60;/mark&#62; &#60;/marks&#62; Мы [...]]]></description>
			<content:encoded><![CDATA[<p>В этом посте мы рассмотрим, сюрприз, группировку посредством XSLT 1.0. Тема уже обжевана изрядно, но не лишать же мне вас удовольствия ознакомиться с ней и в этом уютном бложике.</p>
<p>Допустим, с сервера пришел совершенно бесталанный XML.</p>
<pre><code>&lt;marks&gt;
    &lt;mark&gt;Buick&lt;/mark&gt;
    &lt;mark&gt;Citroen&lt;/mark&gt;
    &lt;mark&gt;Daewoo&lt;/mark&gt;
    &lt;mark&gt;Chery&lt;/mark&gt;
    &lt;mark&gt;Audi&lt;/mark&gt;
    &lt;mark&gt;Chevrolet&lt;/mark&gt;
    &lt;mark&gt;Alfa Romeo&lt;/mark&gt;
    &lt;mark&gt;BMW&lt;/mark&gt;
    &lt;mark&gt;Cadillac&lt;/mark&gt;
    &lt;mark&gt;Daihatsu&lt;/mark&gt;
    &lt;mark&gt;Aston Martin&lt;/mark&gt;
    &lt;mark&gt;Dodge&lt;/mark&gt;
    &lt;mark&gt;Bentley&lt;/mark&gt;
    &lt;mark&gt;Chrysler&lt;/mark&gt;
&lt;/marks&gt;
</code></pre>
<p>Мы хотим из него получить алфавитный список, группированный по первой букве и отсортированный в нужном порядке:</p>
<pre><code>&lt;alphabet-listing&gt;
    &lt;letter name="A"&gt;
        &lt;mark&gt;Alfa Romeo&lt;/mark&gt;
        &lt;mark&gt;Aston Martin&lt;/mark&gt;
        &lt;mark&gt;Audi&lt;/mark&gt;
    &lt;/letter&gt;
    &lt;letter name="B"&gt;
        &lt;mark&gt;Bentley&lt;/mark&gt;
        &lt;mark&gt;BMW&lt;/mark&gt;
        &lt;mark&gt;Buick&lt;/mark&gt;
    &lt;/letter&gt;
    &lt;letter name="C"&gt;
        &lt;mark&gt;Cadillac&lt;/mark&gt;
        &lt;mark&gt;Chery&lt;/mark&gt;
        &lt;mark&gt;Chevrolet&lt;/mark&gt;
        &lt;mark&gt;Chrysler&lt;/mark&gt;
        &lt;mark&gt;Citroen&lt;/mark&gt;
    &lt;/letter&gt;
    &lt;letter name="D"&gt;
        &lt;mark&gt;Daewoo&lt;/mark&gt;
        &lt;mark&gt;Daihatsu&lt;/mark&gt;
        &lt;mark&gt;Dodge&lt;/mark&gt;
    &lt;/letter&gt;
&lt;/alphabet-listing&gt;
</code></pre>
<p>Для решения задачи нам потребуется метод, броско именуемый <del>организованной преступной</del> группировкой Мюнха. <a href="http://flack.ru/2010/11/19/yet-another-xsl-group/#more-166" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2010/11/19/yet-another-xsl-group/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Разница между xsl:copy и xsl:copy-of</title>
		<link>http://flack.ru/2010/11/18/xslcopy/</link>
		<comments>http://flack.ru/2010/11/18/xslcopy/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 22:20:10 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[XSLT/XPath]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://flack.ru/?p=136</guid>
		<description><![CDATA[Постараюсь с минимумом воды раскрыть сабж. Итак, разница такова: xsl:copy-of осуществляет глубокое копирование (deep copy), а xsl:copy поверхностное (shallow copy). Не особо непонятно? Заценим на примере. Создадим перечень самых отстойных рок-альбомов 21 столетия: &#60;albums criteria="worst"&#62; &#60;item id="1"&#62; &#60;name&#62;Chinese Democracy&#60;/name&#62; &#60;artist&#62;Guns N' Roses&#60;/artist&#62; &#60;length&#62;71:18&#60;/length&#62; &#60;label released="November 23, 2008"&#62;Geffen&#60;/label&#62; &#60;/item&#62; &#60;item id="2"&#62; &#60;name&#62;Dark Horse&#60;/name&#62; &#60;artist&#62;Nickelback&#60;/artist&#62; &#60;length&#62;43:38&#60;/length&#62; &#60;label [...]]]></description>
			<content:encoded><![CDATA[<p>Постараюсь с минимумом воды раскрыть сабж. Итак, разница такова: xsl:copy-of осуществляет глубокое копирование (deep copy), а xsl:copy поверхностное (shallow copy).</p>
<p>Не особо непонятно? Заценим на примере. </p>
<p>Создадим перечень самых отстойных рок-альбомов 21 столетия:</p>
<pre><code>&lt;albums criteria="worst"&gt;
    &lt;item id="1"&gt;
        &lt;name&gt;Chinese Democracy&lt;/name&gt;
        &lt;artist&gt;Guns N' Roses&lt;/artist&gt;
        &lt;length&gt;71:18&lt;/length&gt;
        &lt;label released="November 23, 2008"&gt;Geffen&lt;/label&gt;
    &lt;/item&gt;
    &lt;item id="2"&gt;
        &lt;name&gt;Dark Horse&lt;/name&gt;
        &lt;artist&gt;Nickelback&lt;/artist&gt;
        &lt;length&gt;43:38&lt;/length&gt;
        &lt;label released="November 18, 2008"&gt;EMI&lt;/label&gt;
    &lt;/item&gt;
    &lt;item id="3"&gt;
        &lt;name&gt;St. Anger&lt;/name&gt;
        &lt;artist&gt;Metallica&lt;/artist&gt;
        &lt;length&gt;75:01&lt;/length&gt;
        &lt;label released="June 5, 2003"&gt;Vertigo&lt;/label&gt;
    &lt;/item&gt;
&lt;/albums&gt;
</code></pre>
<p>Теперь создадим xsl, который в точности копирует этот XML в результирующее дерево. <a href="http://flack.ru/2010/11/18/xslcopy/#more-136" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2010/11/18/xslcopy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Семантическая верстка — советы и решения. Часть VIII. Минимальные и максимальные размеры</title>
		<link>http://flack.ru/2008/08/26/semantic-coding-howto-8/</link>
		<comments>http://flack.ru/2008/08/26/semantic-coding-howto-8/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 11:33:22 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[max-width]]></category>
		<category><![CDATA[min-width]]></category>

		<guid isPermaLink="false">http://flack.ru/2008/08/26/semantic-coding-howto-8/</guid>
		<description><![CDATA[min-height В спецификации CSS предусмотрены правила min-width/min-height и max-width/max-height. К сожалению, Internet Explorer поддерживает эти правила только начиная с седьмой версии. Однако, это ограничение можно обойти.]]></description>
			<content:encoded><![CDATA[<h4>min-height</h4>
<p>В спецификации CSS предусмотрены правила min-width/min-height и max-width/max-height. К сожалению, Internet Explorer поддерживает эти правила только начиная с седьмой версии. Однако, это ограничение можно обойти. <a href="http://flack.ru/2008/08/26/semantic-coding-howto-8/#more-127" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/08/26/semantic-coding-howto-8/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Семантическая верстка — советы и решения. Часть VII. Прижимаем подвал к низу окна</title>
		<link>http://flack.ru/2008/08/26/semantic-coding-howto-7/</link>
		<comments>http://flack.ru/2008/08/26/semantic-coding-howto-7/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 11:21:45 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[подвал]]></category>

		<guid isPermaLink="false">http://flack.ru/2008/08/26/semantic-coding-howto-7/</guid>
		<description><![CDATA[Хоть прибитый «футер» на страницах и считается пережитком табличного подхода, такая задача тем не менее возникает регулярно. Существует решение данной проблемы без таблиц, но при условии, что вы знаете высоту футера или способны при ее изменении исправить стили.]]></description>
			<content:encoded><![CDATA[<p>Хоть прибитый «футер» на страницах и считается пережитком табличного подхода, такая задача тем не менее возникает регулярно. Существует решение данной проблемы без таблиц, но при условии, что вы знаете высоту футера или способны при ее изменении исправить стили. <a href="http://flack.ru/2008/08/26/semantic-coding-howto-7/#more-126" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/08/26/semantic-coding-howto-7/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Семантическая верстка — советы и решения. Часть VI. Запрет на обтекание float’ов</title>
		<link>http://flack.ru/2008/08/26/semantic-coding-howto-6/</link>
		<comments>http://flack.ru/2008/08/26/semantic-coding-howto-6/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 11:15:53 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[веб-стандарты]]></category>
		<category><![CDATA[запрет обтекания]]></category>

		<guid isPermaLink="false">http://flack.ru/2008/08/26/semantic-coding-howto-6/</guid>
		<description><![CDATA[На данном примере мы рассмотрим, как реализовать запрет на обтекание определенного элемента, к которому применено правило float. Нашей задачей является создание анонса новости.]]></description>
			<content:encoded><![CDATA[<p>На данном примере мы рассмотрим, как реализовать запрет на обтекание определенного элемента, к которому применено правило float. Нашей задачей является создание анонса новости.  <a href="http://flack.ru/2008/08/26/semantic-coding-howto-6/#more-124" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/08/26/semantic-coding-howto-6/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Семантическая верстка — советы и решения. Часть V. Навигация по сайту или укрощение списков</title>
		<link>http://flack.ru/2008/02/08/semantic-coding-howto-5/</link>
		<comments>http://flack.ru/2008/02/08/semantic-coding-howto-5/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 19:42:32 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[веб-стандарты]]></category>

		<guid isPermaLink="false">http://flack.ru/2008/02/08/semantic-coding-howto-5/</guid>
		<description><![CDATA[Навигация — это то, с чего начинается любой сайт, ведь без нее пользователь просто не сможет им пользоваться. Не удивительно, что мы заострим на ее организации свое внимание. Представим себе кусочек макета, присланного нам дизайнером. На нем изображено главное меню будущего сайта: Пункт меню «Обратная связь» показывает поведение при наведении мышкой.]]></description>
			<content:encoded><![CDATA[<p>Навигация — это то, с чего начинается любой сайт, ведь без нее пользователь просто не сможет им пользоваться. Не удивительно, что мы заострим на ее организации свое внимание.</p>
<p>Представим себе кусочек макета, присланного нам дизайнером. На нем изображено главное меню будущего сайта:</p>
<p><img src="http://flack.ru/wp-content/uploads/2008/02/semantic-coding-5-0.gif" alt="Иллюстрация 1" /></p>
<p>Пункт меню «Обратная связь» показывает поведение при наведении мышкой. <a href="http://flack.ru/2008/02/08/semantic-coding-howto-5/#more-107" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/02/08/semantic-coding-howto-5/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Семантическая верстка — советы и решения. Часть IV. Создание «резиновых» макетов с использованием отрицательных полей</title>
		<link>http://flack.ru/2008/02/01/semantic-coding-howto-4/</link>
		<comments>http://flack.ru/2008/02/01/semantic-coding-howto-4/#comments</comments>
		<pubDate>Fri, 01 Feb 2008 20:42:51 +0000</pubDate>
		<dc:creator>Flack</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Рецептарий]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[веб-стандарты]]></category>
		<category><![CDATA[отрицательные поля]]></category>

		<guid isPermaLink="false">http://flack.ru/2008/02/01/semantic-coding-howto-4/</guid>
		<description><![CDATA[Отрицательные поля, пожалуй, самый мощный инструмент для семантической верстки сложных макетов. Овладеть этой техникой просто необходимо, потому как благодаря ей вы во многих случаях сможете отказаться от таблиц для разметки макета. Разберем использование отрицательных полей на примере. Мы сверстаем трехколоночный макет с двумя фиксированными боковыми колонками, тянущейся центральной, шапкой и подвалом.]]></description>
			<content:encoded><![CDATA[<p>Отрицательные поля, пожалуй, самый мощный инструмент для семантической верстки сложных макетов. Овладеть этой техникой просто необходимо, потому как благодаря ей вы во многих случаях сможете отказаться от таблиц для разметки макета.</p>
<p>Разберем использование отрицательных полей на примере. Мы сверстаем трехколоночный макет с двумя фиксированными боковыми колонками, тянущейся центральной, шапкой и подвалом.<br />
 <a href="http://flack.ru/2008/02/01/semantic-coding-howto-4/#more-105" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/02/01/semantic-coding-howto-4/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

