<?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; display</title>
	<atom:link href="http://dreamhelg.ru/tag/display/feed/" rel="self" type="application/rss+xml" />
	<link>http://dreamhelg.ru</link>
	<description>о моей работе в сети и не только</description>
	<lastBuildDate>Fri, 23 Dec 2011 07:10:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Что такое inline-block?</title>
		<link>http://dreamhelg.ru/2010/04/what-is-inline-block/</link>
		<comments>http://dreamhelg.ru/2010/04/what-is-inline-block/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 06:48:27 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[display]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=1997</guid>
		<description><![CDATA[<p><img width="184" height="184" src="http://dreamhelg.ru/wp-content/uploads/2010/04/inline-block.jpg" class="attachment-200x200 wp-post-image" alt="inline-block" title="inline-block" /></p>Если вы работаете с CSS не первый день, то наверняка знакомы со значением <strong>inline-block</strong>, свойства display. Наиболее часто эту связку используют для устранения проблем в IE6.<span id="more-1997"></span>

Попробую вкратце объяснить о чем идет речь. Если вы назначаете float элементу и одновременно задаете margin с той же стороны, то в IE6 margin (странным образом) удвоится. Проблему можно исправить, применив хак специально для IE6, в котором можно указать значение margin в половину меньше от оригинала, или же вы можете назначить элементу свойство display в значение <strong>inline-block</strong>. Это разрешит проблему в большинстве, если не во всех случаях.

Однако, решение проблемы с двойными полями в IE6, далеко не единственное применение значения <strong>inline-block</strong>, оно может принести гораздо больше пользы, если хорошо его изучить.
<h3>Определение</h3>
Далее представлены несколько описаний для значения <strong>inline-block</strong>, взятые из разных источников:

<a href="http://reference.sitepoint.com/css/display">CSS-справочник Sitepoint</a>
<blockquote><em>Значение inline-block генерирует блочный элемент, с поведением строчного элемента</em></blockquote>
<a href="http://www.quirksmode.org/css/display.html">QuirksMode</a>
<blockquote><em>Строчный блок располагается в той же самой строке, что и соседний контент, но при этом ведет себя как блок</em></blockquote>
<a href="http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks/">Роберт Нэйман:</a>
<blockquote><em>В основном, это способ сделать элементы строчными, при этом сохранив его блочные возможности, такие как указание ширины и высоты, верхних и нижних отступов, паддингов и др.</em></blockquote>
Я думаю определение Роберта Нэймана самое лучшее, поскольку сразу объясняет практический смысл значения.
<h3>Демонстрация</h3>
Нижеприведенное изображение демонстрирует значение <strong>inline-block</strong> в действии:

<a href="http://dreamhelg.ru/wp-content/uploads/2010/04/example-inline.png"><img class="aligncenter size-full wp-image-2001" title="example-inline" src="http://dreamhelg.ru/wp-content/uploads/2010/04/example-inline.png" alt="" width="440" height="220" /></a>
<h3>Как его можно использовать?</h3>
Есть несколько ситуаций, с которыми вам поможет справиться <strong>inline-block</strong>:
<ul>
	<li>для исправления двойных полей у плавающих элементов в IE6 (как уже говорилось выше)</li>
	<li>для позиционирования блочных элементов в одной строке без использования float</li>
	<li>для указания ширины и высоты строчному элементу, без изменения его поведения</li>
	<li>для указания строчному элементу полей и отступов.</li>
</ul>
<h3>То, что следует запомнить</h3>
При использовании значения <strong>inline-block</strong>, следует помнить о некоторых факторах и недостатках. Элемент, с назначенным <strong>inline-block</strong>, является чувствительным к пробелам. То есть, если вы применяете это значение к маркированному списку (например для создания навигации), то каждый элемент списка будет иметь дополнительное пустое пространство на стыке двух элементов. Для того, чтобы этого избежать, необходимо удалить любые пробелы, разделяющие элементы &lt;li&gt;, в HTML-разметке. Следовательно, ваш HTML-код будет выглядеть следующим образом:

[html]
&lt;ul&gt;  
    &lt;li&gt;Item One&lt;/li&gt;&lt;li&gt;Item Two&lt;/li&gt;&lt;li&gt;Item Three&lt;/li&gt;&lt;li&gt;Item Four&lt;/li&gt;&lt;li&gt;Item Five&lt;/li&gt;  
&lt;/ul&gt;  
[/html]

Или еще хуже:

[html]
&lt;ul&gt;  
    &lt;li&gt;Item One&lt;/li  
    &gt;&lt;li&gt;Item Two&lt;/li  
    &gt;&lt;li&gt;Item Three&lt;/li  
    &gt;&lt;li&gt;Item Four&lt;/li  
    &gt;&lt;li&gt;Item Five&lt;/li&gt;  
&lt;/ul&gt;  
[/html]

Есть и другое решение этой проблемы – можно назначить font-size: 0, для элемента &lt;ul&gt;, а затем увеличить размер шрифта для элементов списка &lt;li&gt;. Но это не очень хорошее решение, в данном случае, лучше отказаться от использования <strong>inline-block</strong>.

Кроме того, если у вас на странице предполагается наличие нескольких элементов, с разной высотой и значением <strong>inline-block</strong>, вам следует указать им дополнительное свойство vertical-align: top, для того, чтобы предотвратить расположение блоков в шахматном порядке. На <a href="http://www.brunildo.org/test/inline-block.html">этой</a> странице можно ознакомиться с различными примерами расстановки элементов, с назначенным значением <strong>inline-block</strong>.

Ну и наконец, во время многочисленных экспериментов, выяснилось, что <strong>inline-block</strong>, ведет себя не вполне обычно, когда он применяется к элементу внутри текста, заключенного в элемент параграфа.
<h3>Поддержка браузерами</h3>
Думаю вы не удивитесь, узнав, что<strong> inline-block</strong> работает во всех браузерах, кроме IE6 и IE7. Но имитировать работу этого значения не так уж сложно. Для того, чтобы применить к элементу значение inline-block в IE6 и IE7, нужно всего лишь установить свойство display в значение inline, а затем назначить элементу <a href="http://reference.sitepoint.com/css/haslayout">layout</a>. Главное, убедитесь, что значение inline, появляется после значения <strong>inline-block</strong> в CSS-файле, и не забудьте спрятать inline от других браузеров.

Перевод статьи “<a href="http://www.impressivewebs.com/inline-block/">What is Inline-Block?”</a>, автор <strong>Louis Lazaris</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2010/04/what-is-inline-block/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

