<?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/tag/%d0%be%d1%82%d1%80%d0%b8%d1%86%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b5-%d0%bf%d0%be%d0%bb%d1%8f/feed/" rel="self" type="application/rss+xml" />
	<link>http://flack.ru</link>
	<description>Вебдев и всякая фигня</description>
	<lastBuildDate>Mon, 06 Apr 2009 16:47:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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[Веб-разработка]]></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[Отрицательные поля, пожалуй, самый мощный инструмент для семантической верстки сложных макетов. Овладеть этой техникой просто необходимо, потому как благодаря ей вы во многих случаях сможете отказаться от таблиц для разметки макета. Разберем использование отрицательных полей на примере. Мы сверстаем трехколоночный макет с двумя фиксированными боковыми колонками, тянущейся центральной, шапкой и подвалом. html: &#60;div id="header"&#62; Шапка [...]]]></description>
			<content:encoded><![CDATA[<p>Отрицательные поля, пожалуй, самый мощный инструмент для семантической верстки сложных макетов. Овладеть этой техникой просто необходимо, потому как благодаря ей вы во многих случаях сможете отказаться от таблиц для разметки макета.</p>
<p>Разберем использование отрицательных полей на примере. Мы сверстаем трехколоночный макет с двумя фиксированными боковыми колонками, тянущейся центральной, шапкой и подвалом.<br />
<span id="more-105"></span><br />
<strong>html:</strong></p>
<pre><code class="html">&lt;div id="header"&gt;
    Шапка
&lt;/div&gt;
&lt;div id="container"&gt;
    &lt;div id="nav"&gt;
        Левая колонка
    &lt;/div&gt;
    &lt;div id="content"&gt;
        Контент
    &lt;/div&gt;
&lt;/div&gt;
&lt;div id="sidebar"&gt;
    Правая колонка
&lt;/div&gt;
&lt;div id="footer"&gt;
    Футер
&lt;/div&gt;</code></pre>
<p>Обратите внимание на то, что левая и центральная колонки объединены общим контейнером. Именно для этого контейнера мы установим отрицательное поле, которое «подтянет» правую колонку.</p>
<p><strong>style.css:</strong></p>
<pre><code class="css">body {
    padding:20px;
    background:#FFF;
    color:#000;
    }
#header {
    padding:10px;
    background:#51CAC8;
    }
#container {
    float:left; /* Делаем контейнер плавающим, чтобы добиться нужного поведения */
    width:100%; /* Указываем контейнеру занимать все доступное пространство */
    margin:10px -170px 10px 0; /* Устанавливаем отрицательное правое поле, чтобы подтянуть правую колонку */
    }
#nav {
    float:left; /* Прижимаем блок налево */
    width:150px; /* Обращаем внимание, что фактическая ширина блока = 170 пикселям */
    padding:10px;
    background:#E73D00;
    }
#content {
    margin:0 150px 0 170px; /* Устанавливаем поля, чтобы контент не «налезал» на боковые колонки */
    padding:10px;
    background:#91CA00;
    }
#sidebar {
    float:right; /* Прижимаем блок направо */
    width:130px; /* Обращаем внимание, что фактическая ширина блока = 150 пикселям */
    margin-top:10px;
    padding:10px;
    background:#F5DC09;
    }
#footer {
    clear:both; /* Ставим подвал ниже самой длинной колонки */
    padding:10px;
    background:#DDDEDF;
    }</code></pre>
<p><strong>ie.css:</strong></p>
<pre><code class="css">* HTML #nav {
    width:170px;
    w\idth:150px;
    }
* HTML #sidebar {
    width:150px;
    w\idth:130px;
    }
#footer {
    height:1%; /* Немного магии для IE5, неправильно считающего отступы */
    }</code></pre>
<p>Это даст нам следующий результат:</p>
<p><img src="/wp-content/uploads/2008/02/negative-margins.png" alt="Иллюстрация результата" /></p>
<p>Центральная колонка при этом будет тянуться пропорционально размерам рабочей области окна. Принципиальное отличие такого макета от таблицы с тремя ячейками заключается в том, что наши три колонки не будут одновременно тянуться по высоте, а будут занимать нужное им вертикальное пространство. При этом подвал всегда будет ниже самой длинной из них. Для того, чтобы эмулировать поведение ячеек таблиц, вам придется воспользоваться техникой faux columns.</p>
<p><strong>Материалы для изучения:</strong></p>
<ul>
<li><a href="http://webmascon.com/topics/coding/43a.asp">«Резиновая вёрстка»: используем отрицательные поля</a></li>
<li><a href="http://alistapart.com/articles/fauxcolumns">Faux Columns</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://flack.ru/2008/02/01/semantic-coding-howto-4/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
