<?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://dreamhelg.ru/tag/layout/feed/" rel="self" type="application/rss+xml" />
	<link>http://dreamhelg.ru</link>
	<description>о моей работе в сети и не только</description>
	<lastBuildDate>Mon, 21 May 2012 14:37:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Псевдо-селектор :target</title>
		<link>http://dreamhelg.ru/2012/05/pseudo-selector-target/</link>
		<comments>http://dreamhelg.ru/2012/05/pseudo-selector-target/#comments</comments>
		<pubDate>Sun, 13 May 2012 11:18:33 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[target]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=2300</guid>
		<description><![CDATA[<p><img width="150" height="150" src="http://dreamhelg.ru/wp-content/uploads/2012/05/home.jpg" class="attachment-200x200 wp-post-image" alt="home" title="home" /></p>Псевдо-селектор <strong>:target</strong> срабатывает при совпадении хэша в URL и ID элемента на странице.<span id="more-2300"></span>

<img class="aligncenter size-full wp-image-2303" title="hash" src="http://dreamhelg.ru/wp-content/uploads/2012/05/hash.png" alt="" width="372" height="68" />

[html]
&lt;section id=&quot;voters&quot;&gt;
   Content
&lt;/section&gt;
[/html]

[css]
:target {
   background: yellow;
}
[/css]

Пока URL будет таким как на картинке, блок section будет иметь желтый фон.
<h2>Где это можно использовать?</h2>
Один из примеров использования – подсветка “состояний”. Когда URL страницы содержит некий хэш, страница находится в соответствующем состоянии.  Этот способ напоминает манипулирование именами классов, хотя и не является таким универсальным. Все то, что вы обычно делаете изменяя классы, можно использовать для изменения состояния элемента, когда к нему применяется псевдо-селектор <strong>:target.</strong> Например: изменение цвета, позиционирования, изменение картинок, отображение/скрытие различных элементов, и т.д.

Существует три признака оправданного использования псевдо-селектора <strong>:target</strong> :
<ol>
	<li>Когда необходимо подчеркнуть “состояние”</li>
	<li>Когда приемлемо резкое “перепрыгивание” страницы вниз</li>
	<li>Когда приемлемо влияние на историю браузера</li>
</ol>
Давайте рассмотрим это немного подробнее.

<h2>Как получить хэш в URL?</h2>
Самый распространенный способ – пользовательский клик по ссылке, включающей хэш. Ссылка может быть как внутренней (которая указывает на текущую страницу), так и полноценной, оканчивающейся хэш-тэгом и значением. Например:

[html]
&lt;a href=&quot;#voters&quot;&gt;Go To There&lt;/a&gt;

&lt;a href=&quot;http://example.com/#specific-part&quot;&gt;Go To There&lt;/a&gt;
[/html]
<br/>
<h2>“Перепрыгивание” страницы</h2>
Независимо от назначения ссылки, <strong>браузер всегда прокручивает страницу до тех пор, пока указанный элемент не окажется вверху</strong>. В случае если браузер не может прокрутить точно  до указанного элемента, он прокрутит страницу на максимально возможную длину. Такое поведение браузера, накладывает определенные ограничения при использовании <strong>:target</strong> для подсветки текущего состояния.

Например, однажды я (прим. я – Крис Койер, автор блога css-tricks.com) <a href="http://css-tricks.com/css3-tabs/">пробовал различные техники</a>, для имитации создания CSS-табов, и в конце-концов остановился на <a href="http://css-tricks.com/the-checkbox-hack/">чекбокс-хаке</a>, поскольку только он позволял обойти проблемы с перепрыгиванием страницы. Йен Хэнсон, создатель CSS Science, также реализовал <a href="http://csscience.com/css3-tabs/">несколько примеров табов</a>. Его третий пример использует<strong> :target</strong> и абсолютно позиционируемые элементы, спрятанные вверху страницы, для предотвращения “прыжка”. Это довольно умно, но все же не решение проблемы, поскольку страница прыгает вверх, табы должны располагаться ниже области прыжка.

<h2>Прекрасный пример: подсветка секций</h2>
<strong>Проблема</strong>: Клик по хэш-ссылке прокручивает страницу к указанной секции, которая по возможности будет удобно расположена в верхней части окна браузера. Но что если на странице немного контента, а скролл  и вовсе отсутствует?  В этом случае, секция останется в видимой области, но не будет прибита к верху страницы, что странно и не совсем удобно.
<p style="text-align: center;"><a href="http://dreamhelg.ru/wp-content/uploads/2012/05/scrolling-problem.jpg"><img class="aligncenter size-medium wp-image-2305" title="scrolling-problem" src="http://dreamhelg.ru/wp-content/uploads/2012/05/scrolling-problem-300x204.jpg" alt="" width="300" height="204" /></a></p>
Исходя из личного опыта могу заметить, что если клик по внутристраничной ссылке не прокручивает страницу к указанной секции, это безумно раздражает. Чаще всего эта проблема встречается на FAQ-страницах, содержащих большое количество коротких секций.

Давайте это исправим!

Один из самых знаменитых методов исправления этой проблемы, называется “<a href="http://37signals.com/svn/archives/000558.php">Yellow Fade Technique</a>” (Техника Желтого Затухания). Эта техника была разработана компанией 37 signals, специально для того чтобы обратить внимание пользователей на только что добавленный на страницу контент . Джонатан Снук <a href="http://snook.ca/archives/html_and_css/yellow-fade-technique-css-animations">портировал эту идею на CSS</a> и объединил ее с псевдо-селектором <strong>:target.</strong>

Вместо желтого затухания, мы будем выделять активную секцию страницы путем плавного сдвига вправо, одновременно добавляя красный маркер слева от текста. Это будет выглядеть следующим образом:

http://youtu.be/vqE1MZ0UlaM

HTML-структура представляет собой обычную навигацию, с привязкой ссылок к соответствующим секциями через ID:

[html]
&lt;nav&gt;
  &lt;a href=&quot;#one&quot;&gt;1&lt;/a&gt;
  &lt;a href=&quot;#two&quot;&gt;2&lt;/a&gt;
  &lt;a href=&quot;#three&quot;&gt;3&lt;/a&gt;
&lt;/nav&gt;

&lt;section&gt;
  &lt;div id=&quot;one&quot;&gt;&lt;h2&gt;One&lt;/h2&gt;Pellentesque habitant morbi ...&lt;/div&gt;
  &lt;div id=&quot;two&quot;&gt;&lt;h2&gt;Two&lt;/h2&gt;Pellentesque habitant morbi ...&lt;/div&gt;
  &lt;div id=&quot;three&quot;&gt;&lt;h2&gt;Three&lt;/h2&gt;Pellentesque habitant morbi ...&lt;/div&gt;
&lt;/section&gt;​
[/html]

При активации <strong>:target</strong>, секция немного сдвигается вправо, через трансформацию <strong>translateX</strong>, поскольку она предотвращает любые проблемы с отступами и странное выравнивание текста; также слева появляется красный маркер, выполненный с помощью кейфрейм-анимации.

[css]
:target {
  -webkit-animation: highlight 1s ease;
  -moz-animation: highlight 1s ease;
  -webkit-transform: translateX(20px);
  -moz-transform: translateX(20px);
  -ms-transform: translateX(20px);
  -o-transform: translateX(20px);
}
@-webkit-keyframes highlight {
  0% { border-left-color: red; }
  100% { border-left-color: white; }
}
@-moz-keyframes highlight {
  0% { border-left-color: red; }
  100% { border-left-color: white; }
}
section &gt; div {
  border-left: 40px solid white;
  padding: 10px;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  padding-right: 50px;
  margin-left: -20px;
}
[/css]

Вот и все. Код отвечает принципам прогрессивного улучшения, поэтому будет нормально выглядеть и работать во всех браузерах.

<a href="http://dreamhelg.ru/demo/target/">Демо-страница.</a>
<h2>Боремся с прыжками страницы</h2>
Предположим, вам понравилась идея использования <strong>:target</strong> для подсветки секций, но при этом хотелось бы избежать прыжков страницы, при клике по хэш-ссылкам. С помощью jQuery вы можете предотвратить дефолтное поведение  всех хэш-ссылок, а затем использовать метод <strong>pushState()</strong> (или <strong>replaceState()</strong>), для изменения URL без передвижения страницы.

[javascript]
$(&quot;a[href^=#]&quot;).on(&quot;click&quot;, function(e) {
  e.preventDefault();
  history.pushState({}, &quot;&quot;, this.href);
});
[/javascript]

Метод <strong>replaceState()</strong> отличается от <strong>pushState()</strong> тем, что не добавляет запись о смене URL в историю браузера. Так что, вы можете использовать любой из этих методов на свое усмотрение.

<h3>Плохие новости</h3>
При изменении хэша в URL через метод <strong>pushState()</strong>, предыдущая активная секция должна вернутся к исходному состоянию, а новая выделиться. Однако этого не произойдет (на момент написания статьи тестировалось в последних версиях WebKit и Firefox). <a href="https://bugs.webkit.org/show_bug.cgi?id=83490">Это баг</a>.

Теоретически вы можете измерить и сохранить текущую позицию скролла на странице, позволить ссылке передвинуть страницу естественным путем, а затем вернуть ее обратно на то место где она была. Но это выглядит настолько ужасно, что я не могу себя заставить сделать тестовую страницу с этим примером.

Перевод статьи <a href="http://css-tricks.com/on-target/">"On :target"</a>, автор <strong>Chris Coyier</strong>Псевдо-селектор ]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2012/05/pseudo-selector-target/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Обзор CSS-свойства vertical-align</title>
		<link>http://dreamhelg.ru/2011/12/css-vertical-align/</link>
		<comments>http://dreamhelg.ru/2011/12/css-vertical-align/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 06:27:55 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[vertical-align]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=2284</guid>
		<description><![CDATA[<p><img width="184" height="184" src="http://dreamhelg.ru/wp-content/uploads/2011/12/css-vertical-align.jpg" class="attachment-200x200 wp-post-image" alt="css-vertical-align" title="css-vertical-align" /></p>Довольно часто от веб-разработчиков можно услышать возмущенный возглас: “vertical-align не работает!”.  Несмотря на то, что назначение этого свойства следует из его названия, на практике, начинающие разработчики, равно как и многие ветераны CSS, часто испытывают трудности с его применением.

В сегодняшней статье, я постараюсь раскрыть все непонятные моменты этого CSS-свойства.
<h2>Чего не делает vertical-align</h2>
Наиболее распространенное заблуждение относительно свойства <strong>vertical-align</strong> состоит в том, что оно влияет на вертикальное выравнивание всех дочерних элементов контейнера, к которому применяется. Например, если мы применим к контейнеру свойство <strong>vertical-align: top</strong>, предполагается, что все содержимое контейнера будет выровнено по верхнему краю контейнера.

Это напоминает мне старые, добрые времена табличной верстки:

[css]
    &lt;td valign=&quot;top&quot;&gt;  
      Содержимое ячейки..
    &lt;/td&gt;  
[/css]

В этом примере табличной ячейки, свойство <strong>valign</strong> (<a href="http://www.w3.org/TR/html5/obsolete.html#non-conforming-features">сейчас уже запрещенное в HTML5</a>), действительно прижмет все содержимое ячейки к верхнему краю. Возможно исходя из этого, CSS-разработчики ожидают похожего эффекта, от применения свойства <strong>vertical-align</strong>.

Но свойство <strong>vertical-align</strong> так не работает.
<h2>Как на самом деле работает vertical-align</h2>
Свойство <strong>vertical-align</strong> можно разделить на три простых правила:
<ol>
	<li>Оно применяется только к элементам со свойствами display: inline; и display: inline-block;</li>
	<li>Оно влияет на положение самого элемента, а не его содержимого (за исключением табличных ячеек)</li>
	<li>Когда оно применяется к табличной ячейке, то влияет на содержимое ячейки, а не на саму ячейку.</li>
</ol>
Другими словами, следующий код не будет иметь никакого эффекта:

[css]
    div {  
        vertical-align: middle; /* эта строка не будет работать */  
    }  
[/css]

Почему? Потому что &lt;div&gt;  - это блочный элемент. Конечно, если вы измените у дива свойство display, на inline, или inline-block, <strong>vertical-align</strong> сразу заработает.

Правильное использование свойства vertical-align, поможет выровнять строчный элемент относительно других строчных элементов на странице. Насколько высоко или низко расположится элемент по вертикали, будет зависеть от размера соседних строчных элементов, или от свойства line-height, заданного  для этой строки.

На картинке ниже, представлен пример того, как ведут себя строчные элементы, когда вы применяете свойство <strong>vertical-align</strong>:
<p style="text-align: center;"><a href="http://dreamhelg.ru/wp-content/uploads/2011/12/vertical-align-sheme.png"><img class="aligncenter size-medium wp-image-2290" title="vertical-align-sheme" src="http://dreamhelg.ru/wp-content/uploads/2011/12/vertical-align-sheme-300x210.png" alt="" width="300" height="210" /></a></p>

<h2>Значения свойства – ключевые слова</h2>
Свойство <strong>vertical-align</strong> может принимать следующие значения:
<ul>
	<li>baseline (значение по умолчанию)</li>
	<li>bottom</li>
	<li>middle</li>
	<li>sub</li>
	<li>super</li>
	<li>text-bottom</li>
	<li>text-top</li>
	<li>top</li>
</ul>
Большинство из них вам скорее всего не понадобятся, но всегда хорошо знать из чего можно выбрать. Например, на <a href="http://jsbin.com/isuvob/edit#html,live/">демо-странице</a>, текстовому полю назначено свойство <strong>vertical-align: top</strong>, благодаря чему, оно выровнено относительно самого высокого элемента в строке (большой картинки).

А если вы не хотите располагать элемент относительно изображений или других строчных элементов, можно использовать значения <strong>text-top</strong> или <strong>text-bottom</strong>, чтобы ваш элемент позиционировался относительно текста, расположенного в строке.
<h2>О значении “middle”</h2>
К сожалению, <strong>vertical-align: middle;</strong> не расположит строчный элемент по центру самого большого элемента в строке, как этого можно было бы ожидать. Вместо этого, значение <strong>middle</strong> расположит элемент относительно гипотетической строчной “x” (также называемой “x-высотой”). По-хорошему, это значение следовало бы назвать “text-middle”, для правильной идентификации его механизма.

На <a href="http://jsbin.com/apiqog/3/edit">этой демо-странице</a>, размер текста специально увеличен, чтобы вы могли посмотреть, как именно выравниваются элементы, при значении <strong>middle</strong>. По всему выходит, что это значение, вам будет нужно гораздо реже, чем остальные.
<h2>Цифровые значения свойства</h2>
Возможно вы не знали, но <strong>vertical-align</strong> в качестве значения может принимать абсолютные и процентные значения, все приведенные ниже примеры будут правильными:

[css]
    input {  
        vertical-align: 100px;  
    }  
      
    span {  
        vertical-align: 50%;  
    }  
      
    img {  
        vertical-align: -300px;  
    }  
[/css]

В чем разница между абсолютными значениями и ключевыми словами, можно почитать в <a href="http://www.w3.org/TR/CSS21/visudet.html#propdef-vertical-align">CSS-спецификации</a>, или (что на мой взгляд гораздо полезнее) самостоятельно попробовать различные варианты.

Перевод статьи “<a href="http://www.impressivewebs.com/css-vertical-align/">Understanding CSS’s vertical-align Property</a>”, автор <strong>Louis Lazaris</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2011/12/css-vertical-align/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS-Transitions без использования :hover</title>
		<link>http://dreamhelg.ru/2011/11/css-transitions-whithout-using-hover/</link>
		<comments>http://dreamhelg.ru/2011/11/css-transitions-whithout-using-hover/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 13:08:23 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css-transitions]]></category>
		<category><![CDATA[css3]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/2011/11/css-transitions-%d0%b1%d0%b5%d0%b7-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f-hover/</guid>
		<description><![CDATA[<p><img width="200" height="200" src="http://dreamhelg.ru/wp-content/uploads/2011/11/css3-transitions-non-hover.jpg" class="attachment-200x200 wp-post-image" alt="css3-transitions-non-hover" title="css3-transitions-non-hover" /></p>До недавнего времени, наиболее распространенным вариантом использования <strong>CSS-transitions</strong> – было сочетание его с хорошо известным псевдо-классом CSS <strong>:hover</strong>.<span id="more-2192"></span>

Далее представлен наиболее простой пример изменения цвета ссылки, при наведении мыши, выполненный на чистом CSS:

[css]
a, a:link, a:visited {  
    color: lightblue;  
    -webkit-transition: color .4s linear;  
    -moz-transition: color .4s linear;  
    -o-transition: color .4s linear;  
    -ms-transition: color .4s linear;  
    transition: color .4s linear;  
}  
  
a:hover {  
    color: white;  
}  
[/css]

Этот код запустит анимацию свойства <strong>color</strong>, когда вы подведете мышь к ссылке. Наверняка этот простой пример не раз попадался вам на разных сайтах, но это не значит, что transitions ограничивается использованием псевдо-класса <strong>:hover</strong>.

С помощью <strong>transitions</strong>, вы можете анимировать различные CSS-свойства, используя определенные CSS-приемы. Некоторые из этих приемов, (включая демо-версию каждого) приведены в сегодняшней статье.
<h3>Transitions с использованием :active</h3>
Псевдо-класс <strong>:active</strong> <a href="http://reference.sitepoint.com/css/pseudoclass-active">применяется к любому элементу, находящемуся в процессе активации</a>. Основным способом “активации” элемента, является щелчок мышью или нажатие кнопки мыши.

Далее представлен CSS-пример, демонстрирующий использование <strong>:active</strong> совместно с CSS3-transitons, для имитации события <strong>mousedown</strong>:

[css]
.box {  
    width: 300px;  
    height: 300px;  
    background: #222;  
    -webkit-transition: width 2s ease, height 2s ease;  
    -moz-transition: width 2s ease, height 2s ease;  
    -o-transition: width 2s ease, height 2s ease;  
    -ms-transition: width 2s ease, height 2s ease;  
    transition: width 2s ease, height 2s ease;  
}  
  
.box:active {  
    width: 500px;  
    height: 500px;  
}  
[/css]

Подведите курсор мыши к блоку и нажмите кнопку, вы увидите как высота и ширина блока анимируются, становясь больше, пока вы держите кнопку нажатой. Стоит вам отпустить кнопку, и размеры блока плавно вернутся к исходному значению.

<a href="http://dreamhelg.ru/demo/transitions/">Пример</a>.
<h3>Transitions с использованием :focus</h3>
Вы можете использовать псевдо-класс <strong>:focus</strong>, для получения эффекта, описанного в предыдущем примере. В этот раз мы используем форму, и анимируем ширину любого элемента формы, получившего фокус:

[css]
input, textarea {  
    width: 280px;  
    -webkit-transition: width 1s ease;  
    -moz-transition: width 1s ease;  
    -o-transition: width 1s ease;  
    -ms-transition: width 1s ease;  
    transition: width 1s ease;  
}  
  
input:focus, textarea:focus {  
    width: 340px;  
}  
[/css]

<a href="http://dreamhelg.ru/demo/transitions/focus.html">Пример</a>.

<h3>Transitions с использованием :checked</h3>
Вы можете анимировать чекбоксы и радиобаттоны, когда они становятся отмеченными – хотя, тут есть некоторые ограничения, поскольку вы не можете изменить их родную стилизацию.

Поэтому, мы сделаем простое изменение ширины, которое будет появляться в качестве подтверждения отметки текущего элемента:

[css]
input {  
    height: 20px;  
    -webkit-transition: width 1s ease;  
    -moz-transition: width 1s ease;  
    -o-transition: width 1s ease;  
    -ms-transition: width 1s ease;  
    transition: width 1s ease;  
}  
  
input:checked {  
    width: 30px;  
}  
[/css]

<a href="http://dreamhelg.ru/demo/transitions/checked.html">Пример</a>.
<h3>Transitions с использованием :disabled</h3>
Продолжая тему стилизации веб-форм, в этот раз мы комбинируем css3-transitions с jQuery, для запуска анимации фонового цвета элементов формы, при их отключении через атрибут <strong>disabled</strong>:

[css]
input[type=&quot;text&quot;], textarea {  
    background: #e2e2e2;  
    -webkit-transition: background 1s ease;  
    -moz-transition: background 1s ease;  
    -o-transition: background 1s ease;  
    -ms-transition: background 1s ease;  
    transition: background 1s ease;  
}  
  
input:disabled, textarea:disabled {  
    background: #666666;  
}  
[/css]

И немного jQuery, чтобы удалять/добавлять атрибут <strong>disabled:</strong>

[javascript]
$(function() {  
    $('input[type=&quot;radio&quot;]').click(function() {  
        if ($(':checked').val() === &quot;other&quot;) {  
            $('input[type=&quot;text&quot;]').removeAttr(&quot;disabled&quot;);  
        } else {  
            $('input[type=&quot;text&quot;]').attr(&quot;disabled&quot;, &quot;disabled&quot;);  
        }  
    });  
});  
[/javascript]

Итак, если отмечен последний из радиобаттонов (тот, что со значением “Другое”), у текстового поля удаляется атрибут <strong>disabled</strong>, при отметке остальных радиобаттонов, атрибут <strong>disabled,</strong> заново применяется к текстовому полю.

Псевдо-класс <strong>:disabled </strong>применяется к элементу, имеющему одноименный атрибут, поэтому анимация будет срабатывать всякий раз при удалении или добавлении этого атрибута.

<a href="http://dreamhelg.ru/demo/transitions/disabled.html">Пример</a>.


<h3>Transitions с использованием Медиа-запросов</h3>
Последний пример, возможно, наименее полезный из всех, поскольку, давайте смотреть правде в глаза, единственные люди, изменяющие размер окна браузера, чтобы посмотреть что получится – это веб-разработчики.

Тем не менее, это еще один способ использования CSS3-transitions. Такой прием используется на сайте <a href="http://www.modernizr.com/">modernizr.com</a>.

[css]
.box {  
    width: 440px;  
    height: 440px;  
    background: #222;  
    margin: 0 auto;  
    -webkit-transition: width 2s ease, height 2s ease;  
    -moz-transition: width 2s ease, height 2s ease;  
    -o-transition: width 2s ease, height 2s ease;  
    -ms-transition: width 2s ease, height 2s ease;  
    transition: width 2s ease, height 2s ease;  
}  
  
@media only screen and (max-width : 960px) {  
    .box {  
        width: 300px;  
        height: 300px;  
    }  
} 
[/css]

Этот пример одновременно анимирует два свойства, разделенных запятой. Медиа-запрос велит блоку уменьшиться, если размер экрана становится меньше 961 пикселя.

Измените размер окна демонстрационной страницы, чтобы увидеть как это работает.

<a href="http://dreamhelg.ru/demo/transitions/media.html">Пример</a>.
<h3>Несколько замечаний относительно примеров кода</h3>
В каждом фрагменте кода, стандартное название css3-свойства включено последним, несмотря на то, что пока не один из известных мне браузеров не поддерживает его в этом виде.

Кроме того, добавлен префикс –ms, и хотя IE8 и IE9 не поддерживают transitions, но эта поддержка очевидно <a href="http://blogs.msdn.com/b/ie/archive/2011/04/12/native-html5-first-ie10-platform-preview-available-for-download.aspx">будет добавлена</a> в версии IE10.

А еще, примеры кода, которые вы видели в статье намеренно упрощены, в сравнении с теми, что используются на демо-страницах, для того чтобы сфокусироваться только на тех частях, которые мы обсуждали в статье.

Перевод статьи “<a href="http://www.impressivewebs.com/css3-transitions-without-hover/">CSS3 Transitions Without Using :hover</a>”, автор <strong>Louis Lazaris</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2011/11/css-transitions-whithout-using-hover/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Кое-что интересное о CSS-свойстве border</title>
		<link>http://dreamhelg.ru/2011/04/something-interest-about-css-border/</link>
		<comments>http://dreamhelg.ru/2011/04/something-interest-about-css-border/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 07:57:11 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[border]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=2146</guid>
		<description><![CDATA[<p><img width="200" height="200" src="http://dreamhelg.ru/wp-content/uploads/2011/04/borderproperty.jpg" class="attachment-200x200 wp-post-image" alt="borderproperty" title="borderproperty" /></p>Несмотря на годы веб-разработки и чтения тематических блогов и книг по CSS, я по-прежнему сталкиваюсь с неизвестными возможностями давно знакомых CSS-свойств.<span id="more-2146"></span>

Возможно это моя вина, я человек привычки, и никогда не рассматирваю подробно вещи, которые мне давно знакомы.

Так, во время чтения книги <a href="https://shop.smashingmagazine.com/smashing-book-2-intl.html">Smashing Book 2</a>, в главе Кристиана Хейлмана был приведен пример следующего CSS-кода:

[css]
#pagetitle {  
    border-color: black white white black;  
}  
[/css]

Первое, о чем я подумал: «Это какая-то ошибка. С каких пор свойство border-color позволяет в сокращенной форме указывать цвет для каждой границы блока?». А затем, я вспомнил, что за 10 лет разработки, я использовал это свойство один или два раза, следовательно, что я могу о нем знать? Плюс, я думаю что Кристиан, как опытный разработчик, знает о чем говорит.

Фактически, каждый раз, когда мне нужно было указать цвет границы, я использовал сокращенную версию свойства <strong>border</strong>, вот так:

[css]
#pagetitle {  
    border: solid 1px black;  
}  
[/css]

Редко когда мне действительно приходится использовать свойства типа: <strong>border-color</strong>, <strong>border-style</strong>, <strong>border-left-style</strong> или любые другие версии этих длинных свойств. В 99% случаев, свойство <strong>border</strong> реализует все, что мне требуется.

В CSS-справочнике на sitepoint.com <a href="http://reference.sitepoint.com/css/border-color">сказано</a>:
<blockquote>Сокращенная запись свойства border-color, устанавливает цвет границы для всех четырех сторон элемента, используя от одного до четырех, указанных значений. Каждая граница может иметь собственное значение.</blockquote>
Следовательно, точно так же как для свойств <strong>margin</strong> и <strong>padding</strong>, цвет для каждой границы задается в следующем порядке: верхняя граница, правая граница, нижняя граница, левая граница (по часовой стрелке, начиная сверху).
<h3>Стиль и ширина границы</h3>
Это правило работает также для свойств <strong>border-style</strong> и <strong>border-width</strong>, так что вы можете указать разную толщину и стиль границы для каждой из сторон элемента.

Ну и конечно, вы можете сокращать свойства, при необходимости:

[css]
#pagetitle {  
    border-width: 2px 1px;  
    border-style: solid dashed;  
}  
[/css]


Снова, также как у <strong>margin</strong> и <strong>padding</strong>, мы указываем только первые два значения, а остальные просто наследуются от первых.
<h3>Запомните</h3>
Нельзя использовать эту технику мульти-объявления для сокращенного CSS-свойства <strong>border</strong> (несмотря на то, что это кажется вполне логичным). Оно применяется только к трем, указанным выше, свойствам, так что следующий код будет неправильным:

[css]
#pagetitle {  
    /* THIS IS INVALID! */  
    border: solid dashed 1px 2px black white white black;  
}  
[/css]

Еще, такой метод не получится применить к свойствам <strong>outline-width</strong>, <strong>outline-style</strong> и <strong>outline-color</strong>.

Перевод статьи «<a href="http://www.impressivewebs.com/interesting-css-border/">Here’s Something Interesting About CSS Borders</a>», автор<strong> Louis Lazaris</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2011/04/something-interest-about-css-border/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Изучаем CSS-позиционирование за 10 шагов</title>
		<link>http://dreamhelg.ru/2011/02/css-position-in-10-steps/</link>
		<comments>http://dreamhelg.ru/2011/02/css-position-in-10-steps/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 13:56:56 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[позиционирование]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=2114</guid>
		<description><![CDATA[Позиционирование &#8212; одно из ключевых понятий в блочной верстке. Разобравшись с ним, вам многое станет понятно, а верстка из шаманства превратится в осмысленный процесс. Итак, речь в статье пойдет о [...]]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2011/02/css-position-in-10-steps/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Обзор CSS-свойства white-space</title>
		<link>http://dreamhelg.ru/2010/06/css-white-space/</link>
		<comments>http://dreamhelg.ru/2010/06/css-white-space/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 10:00:31 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=2067</guid>
		<description><![CDATA[<p><img width="200" height="200" src="http://dreamhelg.ru/wp-content/uploads/2010/06/home1.png" class="attachment-200x200 wp-post-image" alt="home" title="home" /></p>Немногие, начинающие CSS-кодеры знакомы с таким полезным свойством как <strong>white-space</strong>. Вы вполне можете обходиться без этого свойства долгое время, но однажды, узнав о нем, вы найдете его очень удобным, и будете возвращаться к нему снова и снова.В сегодняшней статье, мы рассмотрим возможные значения свойства <strong>white-space</strong>, а также способы их применения.<span id="more-2067"></span>
<br/>
<h3>Небольшое HTML-введение</h3>
При вставке текста в (X)HTML, независимо от того, сколько пробелов вы поставите между словами, при выводе страницы в окне браузера, все эти пробелы, по умолчанию, будут сокращены до одного. Это довольно удобно, поскольку мы легко можем форматировать текст в коде, с тем чтобы улучшить его читаемость, при этом, не создавая дополнительных пробелов и ненужных разрывов строк.

Однако, если же вы хотите отобразить все пробелы и переносы строк – вам поможет тэг <strong>&lt;pre&gt;</strong>. Весь текст внутри тэгов <strong>&lt;pre&gt;</strong> (если он не заключен в дополнительные тэги), будет выведен точно также, как он отформатирован в коде. При этом, даже если в разметке нет ни одного разрыва строки, тэг <strong>&lt;pre&gt;</strong> все равно добавит одну строчку, для создания дополнительно отступа. Следовательно, вы можете использовать вышеуказанный тэг для переопределения дефолтного подведения HTML.

Кроме того, в (X)HTML есть возможность использовать неразрывный пробел (<strong>&amp;nbsp;</strong>), который используется для создания множественных пробелов. Ранее, для этих целей использовался, устаревший на сегодняшний день, тэг <strong>&lt;nobr&gt;</strong>.

Свойство <strong>white-space</strong> – это CSS-аналог всех вышеперечисленных (X)HTML-методов управления пробелами.
<h3>Описание и возможные значения</h3>
С помощью набора возможных значений, свойство white-space, позволяет нам управлять поведением браузера, при обработке множественных пробелов.

Далее представлен список различных значений свойства white-space, вместе с визуальной демонстрацией их действия.
<h4>Значение: normal</h4>
Это дефолтное значение, при котором текст отображается обычным способом. Значение <strong>normal</strong> следует использовать только в одном, единственном случае – если вы уже назначили тексту другой способ обработки, и теперь хотите переопределить его для какого-то фрагмента.

<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-normal.jpg"><img class="aligncenter size-full wp-image-2070" title="ws-normal" src="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-normal.jpg" alt="" width="550" height="349" /></a>

<strong>Значение: nowrap</strong>

Это наиболее распространенное значение свойства <strong>white-space</strong>, поскольку оно полностью идентично значению <strong>normal</strong>, за исключением одной особенности. Значение <strong>nowrap</strong> полностью игнорирует переносы строк, независимо от того, были ли они проставлены в коде, или же появились при обработке текста, за счет ограниченного контейнера.

Элемент, которому назначено свойство white-space: nowrap, вместо того, чтобы переносить текст или другие строчные элементы на новую строку, расширит границы родительского блока, до тех пор, пока содержимое не уместится в одну строку. В дополнение, множественные пробелы будут сокращены до одного, также как при значение <strong>normal</strong>.

<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-nowrap.jpg"><img class="aligncenter size-full wp-image-2071" title="ws-nowrap" src="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-nowrap.jpg" alt="" width="550" height="327" /></a>
<h4>Значение: pre</h4>
Значение <strong>pre</strong>, полностью соответствует вашим ожиданиям –  вы получаете ровно то форматирование, которое видите в коде. Учитываются все пробелы и переносы строк, как если бы текст был заключен в тэги &lt;pre&gt;. Кроме того, если в коде, вы разместили текст без переносов, то границы родительского контейнера будут расширены, для размещения текста в одну строку.

<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-pre.jpg"><img class="aligncenter size-full wp-image-2072" title="ws-pre" src="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-pre.jpg" alt="" width="550" height="375" /></a>
<h4>Значение: pre-line</h4>
Это значение работает точно также как дефолтное значение <strong>normal</strong>, за исключением одной детали: при обработке будут учитываться переносы строк. Так что, множественные пробелы будут как обычно проигнорированы, но если в вашей разметке есть переносы строк, то все они появятся при выводе в браузере.

Поддержка этого свойства браузерами, оставляет желать лучшего, а именно:
<ul>
	<li>Internet Explorer – начиная с версии 7</li>
	<li>Firefox – начиная с версии 3.0</li>
	<li>Opera  - начиная с версии 9.2</li>
</ul>
<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-preline.jpg"><img class="aligncenter size-full wp-image-2073" title="ws-preline" src="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-preline.jpg" alt="" width="550" height="349" /></a>
<h4>Значение: pre-wrap</h4>
Это значение практически тоже самое что и <strong>pre</strong>, за исключением того, что текст выводится в границах своего родительского элемента. Следовательно, текст не будет вытягиваться в одну строку для имитации форматирования в коде, но множественные пробелы и переносы строк будут учтены.

Поддержка браузерами:
<ul>
	<li>Internet Explorer – начиная с версии 7</li>
	<li>Firefox -  начиная с версии 3.0</li>
</ul>
<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-prewrap.jpg"><img class="aligncenter size-full wp-image-2074" title="ws-prewrap" src="http://dreamhelg.ru/wp-content/uploads/2010/06/ws-prewrap.jpg" alt="" width="550" height="375" /></a>
<h3>Примеры использования</h3>
Наиболее часто, свойство <strong>white-space</strong>, используется для устранения нежелательных переносов строки. Взгляните на картинку:

<a href="http://dreamhelg.ru/wp-content/uploads/2010/06/zabox.jpg"><img class="aligncenter size-full wp-image-2068" title="zabox" src="http://dreamhelg.ru/wp-content/uploads/2010/06/zabox.jpg" alt="" width="550" height="226" /></a>

В состав ссылки “read more” входит символ <strong>&amp;raquo;</strong> (кавычка), перенесенный на другую строку в связи с нехваткой свободного пространства. Эту ситуацию легко можно исправить, применив свойство <strong>white-space</strong> в значении <strong>nowrap</strong>. Благодаря этому, ссылка будет целиком перенесена на новую строку как единый объект.

Этот пример еще раз иллюстрирует тот факт, что свойство <strong>white-space</strong> действует только на содержимое элемента, к которому оно применяется. Поэтому, несмотря на то, что ссылка была перенесена на другую строку, текст <strong>внутри</strong> ссылки не был разделен переносом строки.
<h3>Заключение</h3>
Чтобы исключить возможное появление проблем, при использовании свойства <strong>white-space</strong>, следует помнить главное: область его действия распространяется только на строчные элементы контейнера, <strong>к которому применяется свойство</strong>.

Как уже упоминалось выше, наиболее полезным из всех возможных значений свойства <strong>white-space</strong> – является значение <strong>nowrap</strong>. В связи с отсутствием в Internet Explorer полной поддержки значений <strong>pre-line</strong> и <strong>pre-wrap</strong>, они используются не так часто, хотя тоже могут принести немало пользы, если получат более широкую поддержку.

Перевод статьи “<a href="http://www.impressivewebs.com/css-white-space/">The CSS white-space Property Explained</a>”, автор <strong>Louis Lazaris</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2010/06/css-white-space/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<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>9</slash:comments>
		</item>
		<item>
		<title>Создание формы со скользящими подписями</title>
		<link>http://dreamhelg.ru/2010/01/create-form-with-sliding-labels/</link>
		<comments>http://dreamhelg.ru/2010/01/create-form-with-sliding-labels/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:47:34 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[label]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=1850</guid>
		<description><![CDATA[<p><img width="200" height="200" src="http://dreamhelg.ru/wp-content/uploads/2010/01/home1.png" class="attachment-200x200 wp-post-image" alt="home" title="home" /></p>Пару недель назад, я читал статью <a href="http://www.lukew.com/">Люка Вроблевски</a>. Для тех, кто еще не слышал о нем, Люк -  автор книги о правильном дизайне веб-форм.

В его статье, меня особенно заинтересовала часть, о расположении подписей внутри текстовых полей:<span id="more-1850"></span>
<br/>
<p><blockquote><em>Поскольку подписи, расположенные внутри текстовых полей, исчезают при вводе текста, вместе с ними исчезает контекст введенных данных. Так что, если вы вдруг забудете, на какой вопрос вы ввели ответ, значит вам не повезло – подпись к полю вы, скорее всего нигде не найдете. Из этого следует, что подписи, расположенные внутри текстовых полей – не самое лучшее решение для создания длинных форм. Когда вы заполните форму до конца, все подписи пропадут! В этом случае, гораздо сложнее будет вернутся и проверить свои ответы.</em>

<em>Люк Вроблевски</em></blockquote></p>

Эти слова стали хорошим поводом для размышления. Конечно, вы можете взглянуть на поле со значением “Вася Пупкин”, и точно сказать что это поле для ввода имени. Но в случае с длинными формами, очень легко забыть вопросы, на которые вы отвечали.

Самым лучшим решением, по мнению Люка, является размещение подписей за пределами текстового поля, с тем, чтобы они всегда были доступны для пользователя. Я думаю это неплохое решение, но мы можем придумать кое-что поинтереснее.
<h3>Скользящие подписи</h3>
После прочтения этой статьи, мне пришло в голову, что мы вполне можем использовать преимущества каждого из методов. Мне нравится как выглядят подсказки внутри полей, но тем не менее, я согласен с тем, что она всегда должна оставаться на экране. Но, к счастью у нас в распоряжении есть JQuery, мы знакомы с принципом постепенного улучшения, поэтому давайте создадим подписи, расположенные внутри текстовых полей, которые, вместо того, чтобы исчезать, будут сдвигаться влево (или вверх, как вам больше хочется), при клике по текстовому полю.

<h3>HTML</h3>

[html]
&lt;form action=&quot;&quot; method=&quot;post&quot; id=&quot;info&quot;&gt;
    &lt;h2&gt;Контактная информация&lt;/h2&gt;
    &lt;div id=&quot;name-wrap&quot; class=&quot;slider&quot;&gt;
        &lt;label for=&quot;name&quot;&gt;
            Имя
        &lt;/label&gt;
        &lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot;&gt;
    &lt;/div&gt;&lt;!--/#name-wrap--&gt;
    &lt;div id=&quot;email-wrap&quot; class=&quot;slider&quot;&gt;
        &lt;label for=&quot;email&quot;&gt;
            E&amp;ndash;mail
        &lt;/label&gt;
        &lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot;&gt;
    &lt;/div&gt;&lt;!--/#email-wrap--&gt;
    &lt;div id=&quot;street-wrap&quot; class=&quot;slider&quot;&gt;
        &lt;label for=&quot;st&quot;&gt;
            Город
        &lt;/label&gt;
        &lt;input type=&quot;text&quot; id=&quot;st&quot; name=&quot;st&quot;&gt;
    &lt;/div&gt;&lt;!--/#street-wrap--&gt;
    &lt;div id=&quot;city-wrap&quot; class=&quot;slider&quot;&gt;
        &lt;label for=&quot;city&quot;&gt;
            Улица
        &lt;/label&gt;
        &lt;input type=&quot;text&quot; id=&quot;city&quot; name=&quot;city&quot;&gt;
    &lt;/div&gt;&lt;!--/#city-wrap--&gt;
    &lt;div id=&quot;zip-wrap&quot; class=&quot;slider&quot;&gt;
        &lt;label for=&quot;zip&quot;&gt;
            Индекс
        &lt;/label&gt;
        &lt;input type=&quot;text&quot; id=&quot;zip&quot; name=&quot;zip&quot;&gt;
    &lt;/div&gt;&lt;!--/#zip-wrap--&gt;
    &lt;input type=&quot;submit&quot; id=&quot;btn&quot; name=&quot;btn&quot; value=&quot;отправить&quot;&gt;
&lt;/form&gt;
[/html]

Единственным необходимым элементом, для создания скользящих подписей (в моей реализации), является оборачивающий элемент (в моем примере DIV), и применение к нему класса “slider” (это легко можно изменить в JavaScript).

На этом этапе, у нас получилась очень простая, и некрасивая форма:
<p style="text-align: center;"><img class="aligncenter" src="http://dreamhelg.ru/wp-content/uploads/2010/01/one_thumb.jpg" alt="one" width="292" height="266" /></p>

<h3>CSS</h3>
[css]
body {
    font: 12px / 1.3 Arial, Sans-serif;
}

form {
    width: 360px;
    padding: 10px 20px 30px 60px;
    margin: auto;
    background: #f7f7f7;
    border: 1px solid #ddd;
}

div {
    clear: both;
    position: relative;
    margin: 0 0 10px;
}

label {
    cursor: pointer;
    display: block;
}

input[type =
&quot;text&quot;] {
    width: 300px;
    border: 1px solid #999;
    padding: 5px;
    -moz-border-radius: 4px;
}

input[type =
&quot;text&quot;]:focus {
    border-color: #777;
}

input[name =
&quot;zip&quot;] {
    width: 150px;
}

/* submit button */
input[type =
&quot;submit&quot;] {
    cursor: pointer;
    border: 1px solid #999;
    padding: 5px;
    -moz-border-radius: 4px;
    background: #eee;
}

input[type =
&quot;submit&quot;]:hover, input[type = &quot;submit&quot;]:focus {
    border-color: #333;
    background: #ddd;
}

input[type =
&quot;submit&quot;]:active {
    margin-top: 1px;
}
[/css]

Единственный, 100%-необходимый CSS в этом примере – это применение position: relatve, к оборачивающему элементу (DIV). Все остальное используется только для настройки внешнего вида формы, вы можете изменять его по своему вкусу.

Теперь у нас получилась вполне симпатичная форма, в которой подписи расположены сверху непосредственных полей ввода.
<p style="text-align: center;"><img class="aligncenter" title="two" src="http://dreamhelg.ru/wp-content/uploads/2010/01/two.jpg" alt="two" width="384" height="392" /></p>

<h3>jQuery</h3>
Теперь, раздел, который все обычно пропускают, переходя к демо-странице:

[javascript]
$('form#info .slider label').each(function(){
	var labelColor = '#999';
	var restingPosition = '5px';

	// стилизация и позиционирование подписей 
	$(this).css({
		'color' : labelColor,
		 	'position' : 'absolute',
	 		'top' : '6px',
			'left' : restingPosition,
			'display' : 'inline',
    	               'z-index' : '99'
	});

	// получение введенного в поле, значения
	var inputval = $(this).next('input').val();

	// получение длины подписи, и добавление к ней 5px 
	var labelwidth = $(this).width();
	var labelmove = labelwidth + 5;

	//проверяем, если поле заполнено, то сдвигаем подпись за пределы поля
	if(inputval !== ''){
		$(this).stop().animate({ 'left':'-'+labelmove }, 1);
	}    	

	// если значение поля пустое при фокусе, сдвигаем подпись влево
	// если оно осталось пустым, при потере фокуса, возвращаем их обратно
	$('input').focus(function(){
		var label = $(this).prev('label');
		var width = $(label).width();
		var adjust = width + 5;
		var value = $(this).val();

		if(value == ''){
			label.stop().animate({ 'left':'-'+adjust }, 'fast');
		} else {
			label.css({ 'left':'-'+adjust });
		}
	}).blur(function(){
		var label = $(this).prev('label');
		var value = $(this).val();
		if(value == ''){
			label.stop().animate({ 'left':restingPosition }, 'fast');
		}
	});
})
[/javascript]

Вот и все, у вас должна получится полностью работающая форма со скользящими подписями.

<a href="http://dreamhelg.ru/wp-content/uploads/2010/01/final.jpg"><img class="aligncenter size-full wp-image-1857" title="final" src="http://dreamhelg.ru/wp-content/uploads/2010/01/final.jpg" alt="" width="373" height="312" /></a>

Обратите внимание, что форма остается рабочей, даже с отключенным ява-скриптом, это является основным принципом постепенного улучшения. Верите или нет, но все еще остаются люди, не использующие ява-скрипт при просмотре веб-страниц.

<a href="http://dreamhelg.ru/demo/sliding-labels/index.htm">Демонстрационная страница</a>.
<a href="http://dreamhelg.ru/wp-content/uploads/2010/01/demo.zip">Архив с примером</a>.

Перевод статьи “<a href="http://www.csskarma.com/blog/sliding-labels/">Form Design with Sliding Labels</a>”, автор <strong>Tim Wright</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2010/01/create-form-with-sliding-labels/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Создание прототипа с помощью CSS-фреймворка Grid 960</title>
		<link>http://dreamhelg.ru/2009/10/prototyping-with-the-grid-960-css-framework/</link>
		<comments>http://dreamhelg.ru/2009/10/prototyping-with-the-grid-960-css-framework/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 10:55:06 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[инструменты]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=1641</guid>
		<description><![CDATA[<p><img width="200" height="200" src="http://dreamhelg.ru/wp-content/uploads/2009/10/home.png" class="attachment-200x200 wp-post-image" alt="home" title="home" /></p><a href="http://960.gs/">Grid 960</a> - это CSS Фреймворк, который позволяет разработчикам быстро конструировать прототипы дизайна. Они являются замечательным инструментом для создания макетов. Почему?  Потому что они делают за вас всю тяжелую работу, позволяя получить быстрые результаты.

Звучит отлично, но как это делается? В интернете есть большое количество статей, агитирующих за и против использования CSS-фреймворков, но нет ничего в помощь неопытным читателям. Поэтому в сегодняшней статье мы рассмотрим процесс создания прототипа. Как обычно, можете сразу взглянуть на <a href="http://dreamhelg.ru/demo/grid960/960.html">результат</a>.<span id="more-1641"></span>

Представьте, что вы получили дизайн, и вам нужно сверстать его для клиента. Из этой статьи вы познакомитесь с  основами Grid, проектированием сетки дизайна и кодированием прототипа. Мы будем использовать довольно простой дизайн, использующий большинство возможностей Grid  960, который поможет вам получить основную базу знаний для дальнейшей работы. После того, как вы ознакомитесь с представленным ниже дизайном, давайте начнем изучение принципов работы Grid 960.
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1652" title="final" src="http://dreamhelg.ru/wp-content/uploads/2009/10/final.png" alt="final" width="690" height="718" /></p>

<h3>Создание Сетки</h3>

Grid 960 работает на основе наследования классов. Этот фреймворк предоставляет две сетки: 12 и 16 колонок. Основной контейнер всегда имеет ширину 960px. Использование числа 960 позволяет применять большинство различных комбинаций колонок, без усложнения работы с ними. Для верстки этого дизайна, мы будем использовать сетку из 12-ти колонок, но мы не будем использовать все 12 колонок. Каждой ячейке сетки назначено свойство margin: 0 10px. Это создает промежуток в 20 пикселей. При создании строки, сумма ширины всех элементов добавляется к 960. Взгляните на демонстрационную страницу Grid 960. Вы увидите сетку со всеми видами комбинаций.  Каждая ячейка сетки имеет класс, который определяет, какой она будет ширины. Далее представлена разбивка ширины столбцов для 12-ти колоночной сетки:
<ol>
	<li>60px</li>
	<li>140px</li>
	<li>220px</li>
	<li>300px</li>
	<li>380px</li>
	<li>460px</li>
	<li>540px</li>
	<li>620px</li>
	<li>700px</li>
	<li>780px</li>
	<li>860px</li>
	<li>940px</li>
</ol>
Каждая ширина соответствует имени класса, оформленного в виде: grid_X, где X это порядковый номер из представленного выше списка. Если вам нужен блок, шириной 940px, используйте класс grid_12. Откуда же Grid 960 знает, какая должна использоваться ширина? Каждый grid_X представляет собой селектор container_Y .grid_X, где значение Y равно 12 либо 16 колонок.

Давайте немного рассмотрим сам код. Вот как можно создать сетку из двух строк в 12-ти колоночном контейнере. Здесь первая строка шириной 940 пикселей, и вторая строка содержит две одинаковых колонки.

[html]
&lt;div class=&quot;container_12&quot;&gt;   
    &lt;div class=&quot;grid_12&quot;&gt;&lt;p&gt;940px&lt;/p&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_6&quot;&gt;&lt;p&gt;460px&lt;/p&gt;&lt;/div&gt;     
    &lt;div class=&quot;grid_6&quot;&gt;&lt;p&gt;460px&lt;/p&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
&lt;/div&gt;   
[/html]

Когда вы создаете строку в сетке, убедитесь, что все дочерние номера gird_X в сумме дают число колонок, которое вы используете. Это гарантирует правильную ширину. Два дива с классом grid_6, дают в сумме 12. Вы не ограничены только этими значениями, и также можете использовать 6, 4 и 2. Вот и все, сетка готова для контента. Теперь, после того как вы узнали как работает Grid 960, давайте посмотрим как создается макет.

<h3>Макет</h3>

Визуализировать сетку дизайна довольно легко. Будет одна строка для картинки заголовка, строка для навигации, строка с двумя колонками для статьи заголовка и постера, разделитель, 4 колонки, затем подвал, состоящий из трех колонок.

<p style="text-align: center;"><img class="aligncenter size-full wp-image-1653" title="grid" src="http://dreamhelg.ru/wp-content/uploads/2009/10/grid.png" alt="grid" width="597" height="304" /></p>
После визуализации, вы должны понимать, как создать сетку макета. Используя значения ширины в имени класса, из приведенного списка, давайте вместе составим код. Помните, что необходимо добавлять очищающий div в конце каждой строки. Не забудьте включить CSS-файлы, входящие в состав Grid 960.

[html]
&lt;div class=&quot;container_12&quot;&gt;   
    &lt;div class=&quot;grid_12&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
  
       
    &lt;div class=&quot;grid_12&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt; &lt;/div&gt;   
       
    &lt;div class=&quot;grid_7&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_5&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_12&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
  
       
    &lt;div class=&quot;grid_12&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
&lt;/div&gt;   
[/html]

Скелет готов. Пришло время накладывать дизайн. Зеленые панели – это просто блоки с фоновым цветом и высотой. У панели навигации высота не задана. Вместо этого, она будет контролироваться размером внутренних ссылок. Не забудьте добавить картинку заголовка.

[css]
div.spacer {   
    background-color: #8FC73E;   
    height: 1em;   
}   
  
div#navbar {   
    background-color: #8FC73E;   
    padding: 10px 0;   
}   
[/css]

Применение классов для корректировки блоков grid_12 и установка ID

[html]
&lt;div class=&quot;container_12&quot;&gt;   
    &lt;div class=&quot;grid_12&quot;&gt;&lt;a href=&quot;images/header.png&quot; alt=&quot;&quot;/&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
  
       
    &lt;div class=&quot;grid_12&quot; id=&quot;navbar&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt; &lt;/div&gt;   
       
    &lt;div class=&quot;grid_7&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;grid_5&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_12 spacer&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
  
       
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_3&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_12 spacer&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;   
       
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
&lt;/div&gt;   
[/html]

Центральным колонкам не требуются никакие эффекты. Добавим немного текста для заполнения дизайна. Прежде, чем приступать к верхней части, взглянем на подвал. На скриншоте подвал однородного цвета. У вас не получится реализовать это с существующим кодом. Оборачивающий div, вокруг этих трех колонок решит проблему. Вы думаете, ничего страшного, просто нужно вставить div. Но этот див поломает сетку, поскольку Grid 960 основывается на родительских и дочерних элементах, при использовании стилей (вспомните селектор container_12 .grid_4 ). В данном случае, проблему поможет решить вложенная сетка, которую Grid 960 позволяет использовать. Создайте вложенную сетку, путем добавления блока grid_12, затем расположите внутри блоки grid_4. При использовании вложенных сеток, дочерние элементы должны иметь специальные классы. Первый дочерний элемент должен иметь класс «alpha», а последний дочерний блок – класс «omega». Отредактируйте разметку для внесения необходимых изменений для подвала.

[html]
&lt;div class=&quot;grid_12&quot; id=&quot;footer&quot;&gt;   
    &lt;div class=&quot;grid_4 alpha&quot;&gt;&lt;/div&gt;   
    &lt;div class=&quot;grid_4&quot;&gt;&lt;/div&gt;   
  
    &lt;div class=&quot;grid_4 omega&quot;&gt;&lt;/div&gt;   
&lt;/div&gt;   
[/html]


[css]
div#footer {   
    background-color: #e5e5e6;   
}   
[/css]

Прекрасно! Теперь у подвала есть заливка однородным цветом, и вы можете указать размеры колонок, если это необходимо. Добавим немного текста для колонок подвала и перейдем к панели навигации. Навигация выполнена в виде простого маркированного списка Добавим немного ссылок и соответствующих стилей.

[html]
&lt;div class=&quot;grid_12&quot; id=&quot;navbar&quot;&gt;&lt;/div&gt;   
    &lt;ul&gt;   
        &lt;li&gt;Articles&lt;/li&gt;   
        &lt;li&gt;Topics&lt;/li&gt;   
  
        &lt;li&gt;About&lt;/li&gt;   
        &lt;li&gt;Editors&lt;/li&gt;   
        &lt;li&gt;Contact&lt;/li&gt;   
    &lt;/ul&gt;   
  
&lt;/div&gt;   
[/html]

[css]
div#navbar ul {   
    list-style: none;   
    display: block;   
    margin: 0 10px;   
}   
  
div#navbar ul li {   
    float: left;   
    margin: 0 1.5em;   
    font: bold 1em Arial;   
}   
[/css]

Замечательно. Страница скоро будет готова. Все что нам нужно сделать, это создать эффекты блока в верхней секции. Это не так просто, как кажется. Прежде чем мы начнем, вы должны кое-что понять о Grid 960 и CSS-фреймворках в целом.

<h3>CSS-фреймворки не решат всех ваших проблем</h3>
Внимательные читатели, наверное, уже заметили кое-что. В нашей странице абсолютно отсутствует гибкость. Всем элементам заданы определенные размеры, и изменение этих размеров может повлечь за собой проблемы или даже развалить весь дизайн в целом. Кроме того, в связи с ограничением Grid 960, дизайнеры не могут использовать некоторые из своих идей.

Например, если бы этот же дизайн был шириной в 1000 пикселей. Grid 960 создает сетку шириной 960 пикселей, так что макеты большего размера уже использовать нельзя.  Что если вы захотите расширить макет до 1000 пикселей, вместо 960-ти? Можно с уверенностью сказать, что вы не сможете это сделать без реализации нескольких сложных изменений кода.

Фреймворк ограничивает дизайнеров набором жестких правил. Скажем, клиент хочет дизайн шире или уже 960-ти пикселей. Дизайнеру будет проще создать код с нуля, для реализации новых задач, чем использовать ранее созданный.

Есть и другая, еще не выявленная, проблема – колонки одинаковой высоты. Поскольку центральные колонки имеют одинаковый фоновый цвет, они выглядят одинаковыми по высоте. В подвале, содержащий блок, устанавливает одинаковый фоновый цвет, позади трех колонок. Grid 960 не поможет вам в создании одинаковых по высоте колонок. Существуют, конечно, способы реализовать это самостоятельно, но поскольку мы просто создаем прототип дизайна, то не будем тратить время на решение мелких проблем в дальнейшем функционировании сайта. На данном этапе, вам нужно понять саму идею.

Есть еще один аспект Grid 960, который следует принять во внимание, прежде, чем мы перейдем к верхней секции. Grid 960 основывается на размерах элементов и отступов, при создании строки правильного размера. Если вы используете рамку или внутренний отступ (padding), макет сломается. Следовательно, если вам нужно их использовать, вы должны предусмотреть это в размере блока, для отражения изменений. Это очень утомительно. Указание размеров элементов в двух местах, всегда будет приводить к путанице, к тому же макет будет гораздо сложнее в обслуживании. Вот и все. Давайте закончим верхнюю секцию.

<h3>Верхняя секция</h3>
К счастью, вы можете манипулировать колонками одинаковой высоты в верхней секции. Поскольку картинке справа назначена ширина и высота, нам известен размер другой колонки. Создадим эффект блока, с помощью добавления нового дива с рамкой, внутри существующих дивов. Не забудьте указать размеры. Не назначайте padding дивам, потому что это изменит ширину блоков и сломает сетку. Вместо этого, укажите margin дочерним элементам. Это не изменит ширину родительских блоков. Применим margin к строчным элементам. Это создаст желаемый эффект и текст будет отступать от края.

[html]
&lt;div class=&quot;grid_7 topSection&quot;&gt;   
    &lt;div&gt; &lt;/div&gt;   
&lt;/div&gt;   
&lt;div class=&quot;grid_5 topSection&quot;&gt;   
  
&lt;/div&gt;   
[/html]

Используйте классы, вместо ID, потому что класс topSection применяется к обоим блокам. Это к тому же, упрощает изменение высоты. Выберите значение высоты, и создайте класс.

[css]
div.topSection div {   
    border: solid 10px #e5e5e6;   
    height: 280px;   
}   
  
div.topSection div p {   
    margin: 10px;   
}   
[/css]

Отлично! Давайте посмотрим на нашу работу.

<p style="text-align: center;"><img class="aligncenter size-full wp-image-1654" title="boxes" src="http://dreamhelg.ru/wp-content/uploads/2009/10/boxes.png" alt="boxes" width="599" height="292" /></p>
Приступаем к наполнению контентом. Заполните левый блок небольшим количеством текста. Только не увлекайтесь, если текста будет слишком много, он вылезет за край блока. Это создает потенциальную проблему в макете. Как вы узнаете, какое количество текста будет слишком большим? В производственном дизайне, для предотвращения этой проблемы, дизайнеру пришлось бы создать функцию, выводящую определенное количество слов.

Теперь, давайте вставим картинку. Только, прежде чем ее вставлять, укажите размеры. Если вы нормальный математик и понимаете боксовую модель, вы, скорее всего, уже знаете, какого размера она должна быть. Если не знаете, запустите Firebug и взгляните на DOM. Включите кнопку Inspect и кликните по блоку, в котором будет размещаться картинка. Откройте вкладку Layout. Firebug отобразит боксовую модель выделенного вами блока.

<img class="aligncenter size-full wp-image-1656" title="firebug-resized" src="http://dreamhelg.ru/wp-content/uploads/2009/10/firebug-resized.png" alt="firebug-resized" width="500" height="268" />

Скриншот показывает размер картинки 360 x 280. Найдите картинку, и создайте стиль. Я решил позволить картинке целиком заполнить весь блок. Если вы хотите создать 10-ти пиксельные отступы, убедитесь в том, что уменьшили размеры по 20 пикселей с каждой стороны.

[css]
img#poster {   
    width: 360px;   
    height: 280px;   
}   
[/css]

У вас должно было получиться следующее. Можете смело менять текст или картинку.
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1652" title="final" src="http://dreamhelg.ru/wp-content/uploads/2009/10/final.png" alt="final" width="591" height="615" /></p>

<h3>Помните об ограничениях</h3>
Теперь, когда прототип готов, давайте подведем итоги проделанной работы. Вы научились быстро создавать прототипы дизайна. Grid 960 легко создает сетку для нас. И что же дальше? Естественно, нужно показать клиенту, и послушать, что он скажет. Хотя, есть несколько предостережений. Тестировался ли дизайн в IE6 и IE7? Нет. Нужно ли это делать? Нет. Это только прототип. Конечно же, все особенности браузеров будут учтены, до производства.

А что если клиенты захотят создать более комплексный дизайн? В таком случае, вы быстро обнаружите ограничения фреймворка. Что если дизайн должен быть резиновым или эластичным? Фреймворк не сможет вам в этом помочь, поэтому вам придется делать все с нуля. Помните, что CSS-фреймворки не решат все ваши проблемы, но они могут помочь с некоторыми. Grid 960 также как и другие фреймворки, замечательно подходит для создания прототипов.

Вы, конечно, можете использовать концепцию Grid 960, в дальнейшей разработке кода, но фреймворки не рекомендуется полностью использовать в своих проектах. Помните, что CSS-фреймворки, также как и любой другой инструмент, имеют своих поклонников.

<a href="http://nettuts.s3.amazonaws.com/126_prototyping/prototyping-with-grid-960.zip">Скачать архив с примером</a>.

Перевод статьи "<a href="http://net.tutsplus.com/tutorials/html-css-techniques/prototyping-with-the-grid-960-css-framework/">Prototyping With The Grid 960 CSS Framework</a>", автор <strong>Adam Hawkins</strong>]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2009/10/prototyping-with-the-grid-960-css-framework/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Дизайн и верстка эластичного макета</title>
		<link>http://dreamhelg.ru/2009/10/how-to-design-and-code-a-flexible-website/</link>
		<comments>http://dreamhelg.ru/2009/10/how-to-design-and-code-a-flexible-website/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 06:56:39 +0000</pubDate>
		<dc:creator>dreamhelg</dc:creator>
				<category><![CDATA[верстка]]></category>
		<category><![CDATA[переводы]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[блог]]></category>

		<guid isPermaLink="false">http://dreamhelg.ru/?p=1482</guid>
		<description><![CDATA[В сегодняшней статье, мы создадим дизайн и сверстаем простую страницу в стиле блога. При этом особое внимание, мы уделим созданию тянущегося макета с использованием только XHTML и CSS. Эта статья [...]]]></description>
		<wfw:commentRss>http://dreamhelg.ru/2009/10/how-to-design-and-code-a-flexible-website/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

