<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.2.2" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Never agaiN Blog</title>
	<link>http://neveragainblog.com.ua</link>
	<description>блог одного верстальщика...</description>
	<pubDate>Thu, 22 May 2008 06:21:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/com/neveragainblog" type="application/rss+xml" /><feedburner:emailServiceId>com/neveragainblog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fcom%2Fneveragainblog" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/com/neveragainblog" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fcom%2Fneveragainblog" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fcom%2Fneveragainblog" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Скругленные углы используя CSS3 (multiple backgrounds и border-radius).</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/uStV0D_uGjo/89</link>
		<comments>http://neveragainblog.com.ua/archives/89#comments</comments>
		<pubDate>Fri, 07 Dec 2007 10:13:17 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[border-radius]]></category>

		<category><![CDATA[multiple backgrounds]]></category>

		<category><![CDATA[css3]]></category>

		<category><![CDATA[rounded corners]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/89</guid>
		<description><![CDATA[
Для экспериментов взял приведенный выше макетик. Тестировал в Safari для Windows так как этот браузер понимает multiple background и border-radius.
HTML разметка.
&#60;div class="block"&#62;
текст
&#60;/div&#62;
Эта разметка используеться для обоих примеров.
Multiple backgrounds для скругления углов.
Изображения, которые используем

градиентный фон блока

верхний правый угол

нижний левый угол


Непосредственно css
.block{
background-color:#4ea5ff;
background-image: url(bg-b-l.gif), url(bg-t-r.gif), url(bg-gr.gif);
background-repeat: no-repeat, no-repeat, repeat-x;
background-position: bottom left, right top, bottom left;
padding:20px;
margin:20px;
color:#ffffff;
}
Нужно заметить, что в [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img style="floaat:none;" src='http://neveragainblog.com.ua/wp-content/uploads/2007/12/exmpl.gif' alt='Скругленные углы используя CSS3' /></p>
<p>Для экспериментов взял приведенный выше макетик. Тестировал в <a href="http://www.apple.com/safari/download/">Safari для Windows</a> так как этот браузер понимает <a href="http://www.css3.info/preview/multiple-backgrounds/">multiple background</a> и <a href="http://www.css3.info/preview/rounded-border/">border-radius</a>.</p>
<h2>HTML разметка.</h2>
<p><code>&lt;div class="block"&gt;<br />
текст<br />
&lt;/div&gt;</code>
<p>Эта разметка используеться для обоих примеров.</p>
<h2><a href="http://www.w3.org/TR/css3-background/#the-background-image">Multiple backgrounds</a> для скругления углов.</h2>
<h3>Изображения, которые используем</h3>
<dl>
<dt>градиентный фон блока</dt>
<dd><img src='http://neveragainblog.com.ua/wp-content/uploads/2007/12/bg-gr.gif' alt='градиентный фон' /></dd>
<dt>верхний правый угол</dt>
<dd><img src='http://neveragainblog.com.ua/wp-content/uploads/2007/12/trans-bg-t-r.gif' alt='верхний правый угол' /></dd>
<dt>нижний левый угол</dt>
<dd><img src='http://neveragainblog.com.ua/wp-content/uploads/2007/12/trans-bg-b-l.gif' alt='нижний левый угол' /></dd>
</dl>
<h3>Непосредственно css</h3>
<p><code>.block{<br />
background-color:#4ea5ff;<br />
background-image: url(bg-b-l.gif), url(bg-t-r.gif), url(bg-gr.gif);<br />
background-repeat: no-repeat, no-repeat, repeat-x;<br />
background-position: bottom left, right top, bottom left;<br />
padding:20px;<br />
margin:20px;<br />
color:#ffffff;<br />
}</code></p>
<p>Нужно заметить, что в <dfn>background-image</dfn> изображение, которое прописано первым, будет в самом верхнем &#8220;слое&#8221;, остальные будут ложиться под него, в том порядке, в котором прописаны. Градиентный фон, мы прописали самым последним, т.к. он должен быть в самом нижнем &#8220;слое&#8221;.</p>
<p>Порядок значений в <dfn>background-repeat</dfn> и <dfn>background-position</dfn> соответствует порядку в <dfn>background-image</dfn>, т.е. для изображения <var>url(bg-gr.gif)</var> соответствует <var>repeat-x</var> и <var>bottom left</var>. Значения разделяются запятыми.</p>
<p><a href="http://neveragainblog.com.ua/examples/css3/rounded-corners/backgrounds.html" rel="nofollow">Пример.</a></p>
<h2><a href="http://www.w3.org/TR/2005/WD-css3-background-20050216/#the-border-radius">Border-radius</a> для скругления углов.</h2>
<h3>Изображения, которые используем</h3>
<p>Из изображений нам потребуется только градиентный фон из предыдущего примера.</p>
<h3>Непосредственно css</h3>
<p><code>.block{<br />
background:#4ea5ff url(bg-gr.gif) repeat-x bottom left;<br />
padding:20px;<br />
margin:20px;<br />
color:#ffffff;<br />
border-top-right-radius:25px;<br />
border-bottom-left-radius:25px;<br />
}</code></p>
<p>Так как <dfn>border-radius</dfn> в том виде, в котором он написан выше, пока не поддерживаться, в реальном примере я <a href="http://www.css3.info/preview/rounded-border/">заменил</a> это свойство на <dfn>-webkit-border-radius</dfn>.</p>
<p><a href="http://neveragainblog.com.ua/examples/css3/rounded-corners/border.html" rel="nofollow">Пример.</a></p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=uStV0D_uGjo:PW8xvJvU6iE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=uStV0D_uGjo:PW8xvJvU6iE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=uStV0D_uGjo:PW8xvJvU6iE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/uStV0D_uGjo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/89/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/89</feedburner:origLink></item>
		<item>
		<title>Верстаем оглавление из книги.</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/9sI3BgzcE3g/87</link>
		<comments>http://neveragainblog.com.ua/archives/87#comments</comments>
		<pubDate>Tue, 04 Dec 2007 08:17:36 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[table of contents]]></category>

		<category><![CDATA[definition lists]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/87</guid>
		<description><![CDATA[
В последнее время видел в сети несколько вариантов вёрстки подобных макетов и решил представить свой вариант.
Html разметка
Для html разметки используем definition lists:
&#60;dl class="table-of-content"&#62;
      &#60;dt&#62;&#60;span&#62;Закладка фундамента&#60;/span&#62;&#60;/dt&#62;
      &#60;dd&#62;21&#60;/dd&#62;
      &#60;dt&#62;&#60;span&#62;Модель визуального форматирования&#60;/span&#62;&#60;/dt&#62;
      &#60;dd&#62;42&#60;/dd&#62;
      [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img src='http://neveragainblog.com.ua/wp-content/uploads/2007/12/table-of-content.gif' alt='Оглавление книги' /></p>
<p>В последнее время видел в сети несколько вариантов вёрстки подобных макетов и решил представить свой вариант.</p>
<h2>Html разметка</h2>
<p>Для html разметки используем <a href="http://www.w3.org/TR/html401/struct/lists.html#h-10.3">definition lists</a>:</p>
<p><code>&lt;dl class="table-of-content"&gt;<br />
      &lt;dt&gt;&lt;span&gt;Закладка фундамента&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;21&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Модель визуального форматирования&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;42&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Фоновые изображения и замена изображений&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;65&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Стилизация гипер ссылок&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;91&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Стилизация списков и создание панелей навигации&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;107&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Стилизация форм и табличных данных&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;131&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Верстка страницы&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;151&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Трюки и фильтры&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;173&lt;/dd&gt;<br />
      &lt;dt&gt;&lt;span&gt;Поиск и устранение ошибок&lt;/span&gt;&lt;/dt&gt;<br />
      &lt;dd&gt;187&lt;/dd&gt;<br />
    &lt;/dl&gt;</code></p>
<p>Оглавление взято из &#8220;<a href="http://www.ozon.ru/context/detail/id/3221769/?partner=neveragain">Мастерская CSS. Профессиональное применение Web-стандартов</a>&#8220;, первой книги, которая попалась под руку. :)</p>
<p>Для чего нужен этот &lt;span&gt; внутри &lt;dt&gt;? Далее это станет ясно.</p>
<h2>CSS</h2>
<p>Теперь начнём писать стили:</p>
<p><code>* {<br />
  margin:0;<br />
  padding:0;<br />
  line-height:1em;<br />
  }<br />
.table-of-content{<br />
  border:1px solid #9b9b9b;<br />
  padding:1em;<br />
  margin:1em;<br />
  }<br />
.table-of-content dt{<br />
  font-weight:bold;<br />
  clear:both;<br />
  }<br />
.table-of-content dd{<br />
  float:right;<br />
  position:relative;<br />
  top:-1.286em;<br />
  margin-bottom:-1em;<br />
  }<br />
</code></p>
<p>&lt;dd&gt; мы сдвигаем вправо и поднимаем на высоту одной строки вверх. <a href="http://neveragainblog.com.ua/examples/table-of-contents/step-1.html">результат</a>.</p>
<p>Следующим шагом мы создаем вертикальные линии используя background-image + изображение <img src="http://neveragainblog.com.ua/examples/table-of-contents/dotted.gif" alt="" style="margin:0" />. Чтобы перекрыть эти линии  используем background-color для &lt;span&gt; (только для этого мы его и ввели) и &lt;dd&gt;. В результате таблица стилей выглядит так:</p>
<p><code>* {<br />
  margin:0;<br />
  padding:0;<br />
  line-height:1em;<br />
  }<br />
.table-of-content{<br />
  border:1px solid #9b9b9b;<br />
  padding:1em;<br />
  margin:1em;<br />
  }<br />
.table-of-content dt{<br />
  font-weight:bold;<br />
  clear:both;<br />
  padding-right:8em;<br />
  background: url(dotted.gif) repeat-x left bottom;<br />
  margin-bottom:.4em;<br />
  }<br />
.table-of-content dt span{<br />
  background-color:#ffffff;<br />
  padding-right:.4em;<br />
  position:relative;<br />
  top:.1em;<br />
  }<br />
.table-of-content dd{<br />
  position:relative;<br />
  top:-1.286em;<br />
  margin-bottom:-1em;<br />
  float:right;<br />
  background-color:#ffffff;<br />
  padding-left:.4em;<br />
  }</code></p>
<p><a href="http://neveragainblog.com.ua/examples/table-of-contents/step-2.html">Конечный результат</a>.</p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=9sI3BgzcE3g:XLxztGYyEO0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=9sI3BgzcE3g:XLxztGYyEO0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=9sI3BgzcE3g:XLxztGYyEO0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/9sI3BgzcE3g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/87/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/87</feedburner:origLink></item>
		<item>
		<title>CSS media types или различные стили для различных медиа носителей</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/3_V9mS0Qnc0/84</link>
		<comments>http://neveragainblog.com.ua/archives/84#comments</comments>
		<pubDate>Wed, 31 Oct 2007 14:59:35 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[media types]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/84</guid>
		<description><![CDATA[Что такое CSS media types
Большинство людей знают, что CSS делает HTML страницы более симпатичными на экране. Однако, CSS позволяет определять отображение (воспроизведение) страницы и в менее традиционной обстановке. Например, вы можете использовать CSS для того, чтобы рассказать screenreader&#8217;у о том, как читать страницу, или вы можете использовать CSS, чтобы телефон не загружал фоновое изображение 1000&#215;1000px [...]]]></description>
			<content:encoded><![CDATA[<h2>Что такое CSS media types</h2>
<p>Большинство людей знают, что CSS делает HTML страницы более симпатичными на экране. Однако, CSS позволяет определять отображение (воспроизведение) страницы и в менее традиционной обстановке. Например, вы можете использовать CSS для того, чтобы рассказать screenreader&#8217;у о том, как читать страницу, или вы можете использовать CSS, чтобы телефон не загружал фоновое изображение 1000&#215;1000px фотографического качества.</p>
<p>
  Короче говоря, используя CSS media types можно задать разные CSS таблицы для  различных устройств.</p>
<h2>Какие CSS media types существуют?</h2>
<p><a href=http://www.w3.org/TR/REC-CSS2/media.html id=bbx1 title=CSS2>CSS2</a> в настоящее время определяет 10 медиа типов:</p>
<dl>
<dt>All</dt>
<dd>стили будут применятся для всех устройств</dd>
<dt>Aural</dt>
<dd>синтезаторы речи</dd>
<dt>Braille</dt>
<dd>тактильные дисплеи Брайля</dd>
<dt>Embossed</dt>
<dd>для принтеров, использующих рельефную азбуку Брайля</dd>
<dt>Handheld</dt>
<dd>ниши телефоны и другие карманные девайсы</dd>
<dt>Print</dt>
<dd>для всеми любимых принтеров</dd>
<dt>Projection</dt>
<dd>презентации, демонстрируемые с помощью проекторов</dd>
<dt>Screen</dt>
<dd>для цветных дисплеев высокого разрешения, таких как экраны наших<br />
    настольных ПК и ноутов.</dd>
<dt>Tty</dt>
<dd>устройства с выводом символов фиксированных размеров (старые&nbsp; LCD<br />
    мониторы, терминалы, старые карманные устройства).</dd>
<dt>tv</dt>
<dd>для цветных дисплеев низкого разрешения разрешения, ограниченной<br />
    прокруткой и возможностью воспроизведения звука.</dd>
</dl>
<p>
Я думаю из всей этой экзотики можно запомнить только All,Handheld,Print и Screen.</p>
<h2>Как их использовать</h2>
<p>Есть два способа указать тип носителя: в&nbsp; HTML и в CSS.</p>
<h3>В HTML</h3>
<p>Чтобы определить медиа тип в HTML, вы можете использовать media=&#8221;" атрибут в ссылке на ваш CSS файл:</p>
<p><code>&lt;link rel="stylesheet" media="screen, print" href="stylesheet.css" /&gt;</code></p>
<p>Как видите, можно определить несколько медиа типов, разделяя их запятой.</p>
<p>Если вы хотите определить различные CSS для различных типов носителей, вам придется разделить их в разные файлы CSS.</p>
<h3>В CSS</h3>
<p>Обертывая (части) ваш CSS в @media {} конструкцию, вы можете определить мадиа тип для этой части вашего CSS:</p>
<p><code>@media screen {<br />
body {color:#f00;}<br />
}<br />
@media print {<br />
body {color:#000;}<br />
}</code></p>
<p>Кроме того, можно указывать тип носителя при импорте стилей, но это не работает в Internet Explorer:</p>
<p><code>@import url("print.css") print;</code></p>
<h2>Media types в будущем: CSS3</h2>
<p><a href=http://www.w3.org/TR/css3-mediaqueries/ id=hsu5 title=CSS3>CSS3</a> добавляет некоторые интересные вещи по media types, которые переименованы в media querie. А media querie состоит из типа и функциональности носителя, таких, как ширина, высота, соотношение или цвет. Например, вы можете задать не только &#8220;экран с высоким разрешение&#8221;, но  и &#8220;экран с высоким разрешением и не менее 800px в ширину&#8221;. Это дает гораздо более широкий спектр вариантов.</p>
<p>Вольный перевод <a href="http://kilianvalkhof.com/2007/css-xhtml/the-css-media-types/">оригинала</a>.</p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=3_V9mS0Qnc0:rX9eyoQRJyU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=3_V9mS0Qnc0:rX9eyoQRJyU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=3_V9mS0Qnc0:rX9eyoQRJyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/3_V9mS0Qnc0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/84/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/84</feedburner:origLink></item>
		<item>
		<title>Колонки одинаковой высоты.</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/YZr-tIVek7k/72</link>
		<comments>http://neveragainblog.com.ua/archives/72#comments</comments>
		<pubDate>Fri, 19 Oct 2007 14:26:55 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[columns]]></category>

		<category><![CDATA[expression]]></category>

		<category><![CDATA[equal height]]></category>

		<category><![CDATA[ie7]]></category>

		<category><![CDATA[ie6]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/72</guid>
		<description><![CDATA[
Итак, задача сделать разметку в 3 колонки, при этом, чтобы колонки были равной высоты, вне зависимости от объема контента в каждой из них.
Основа трёх колонок
Исходный HTML:
&#60;div class="equal"&#62;
&#60;div id="row" class="row"&#62;
&#60;div  class="one"&#62;
&#60;h2&#62;Контейнер&#60;/h2&#62;
&#60;p&#62;...обычный параграф...&#60;/p&#62;
&#60;/div&#62;
&#60;div  class="two"&#62;
&#60;h2&#62;Другой контейнер&#60;/h2&#62;
&#60;p&#62;...обычный параграф...&#60;/p&#62;
&#60;p&#62;...другой обычный параграф...&#60;/p&#62;
&#60;/div&#62;
&#60;div class="three"&#62;
&#60;p&#62;...отцентрированный по вертикали параграф...&#60;/p&#62;
&#60;/div&#62;
&#60;/div&#62;
&#60;/div&#62;
С помощью CSS сделаем так, чтобы этот набор блоков отображался как таблица:
.equal {
display:table;
border-collapse:separate;
}
.row {
display:table-row;
}
.row [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img style="float:none;" src='http://neveragainblog.com.ua/wp-content/uploads/2007/10/e-height.jpg' alt='имитация таблицы' /></p>
<p>Итак, задача сделать разметку в 3 колонки, при этом, чтобы колонки были <strong>равной высоты</strong>, вне зависимости от объема контента в каждой из них.</p>
<h2>Основа трёх колонок</h2>
<p>Исходный <strong>HTML</strong>:</p>
<p><code>&lt;div class="equal"&gt;<br />
&lt;div id="row" class="row"&gt;<br />
&lt;div  class="one"&gt;<br />
&lt;h2&gt;Контейнер&lt;/h2&gt;<br />
&lt;p&gt;...обычный параграф...&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div  class="two"&gt;<br />
&lt;h2&gt;Другой контейнер&lt;/h2&gt;<br />
&lt;p&gt;...обычный параграф...&lt;/p&gt;<br />
&lt;p&gt;...другой обычный параграф...&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div class="three"&gt;<br />
&lt;p&gt;...отцентрированный по вертикали параграф...&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;</code></p>
<p>С помощью <strong>CSS</strong> сделаем так, чтобы этот набор блоков отображался как таблица:</p>
<p><code>.equal {<br />
display:table;<br />
border-collapse:separate;<br />
}<br />
.row {<br />
display:table-row;<br />
}<br />
.row div {<br />
display:table-cell;<br />
}</code></p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-1.html">посмотреть</a>.</p>
<p>Естественно это не работает в <em>Internet Explorer</em>.</p>
<p>Необходимо также заметить, что даже браузеры, поддерживающие <em>CSS table</em>, имеют<br />
некоторые различия и ошибки в обработке <em>CSS table</em>.</p>
<p>Немного украсим нашу таблицу:</p>
<p><code>.equal {<br />
margin:0 auto;<br />
border-spacing:10px;<br />
width:600px;<br />
text-align: left;<br />
}<br />
.row div {<br />
background-color:#f7f8f9;<br />
border: solid 1px #bbb ;<br />
padding-bottom: 30px ;<br />
width:185px;<br />
}<br />
.row div h2 {<br />
margin:0 0 0.5em 0;<br />
padding:0.5em 10px;<br />
font-size:120%;<br />
color:#333;<br />
}<br />
.row div p {<br />
font-size: 100%;<br />
margin:0.5em 0;<br />
padding: 0 10px;<br />
}</code></p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-2.html">посмотреть</a>.</p>
<h2>Основа 3 колонок для IE</h2>
<p>Создадим отдельные стили для <strong>IE</strong>, так как эти браузеры не умею работать с табличной моделью CSS:</p>
<p><code>.equal {<br />
padding: 10px;<br />
width: 580px;<br />
}<br />
.row {<br />
margin-top: 10px;<br />
height: 1%;<br />
}<br />
.row div {<br />
float:left;<br />
position: relative;<br />
overflow-x:hidden;<br />
}<br />
.row .two {<br />
margin-left:10px;<br />
}<br />
.row .three {<br />
margin-left: 10px;<br />
margin-right: -9px;<br />
}</code></p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-3.html">посмотреть</a>.</p>
<p>Для добавления этих стилей используем <em>условные комментарии</em>.</p>
<h2> Костыли для одинаковой высоты в IE6</h2>
<p>Для того, чтобы сделать все блоки одинаковой высоты используем <strong>expression</strong>.</p>
<p>Следующее выражение считывает высоту родительского блока, в банном случае <em>.row</em> (это и будет высота самой высокой колонки).
<p>
<code>* html .row div {height: expression(eval(document.compatMode &amp;&amp; document.compatMode=='CSS1Compat') ? parseFloat(this.parentNode.offsetHeight)-33) :(parseFloat(this.parentNode.offsetHeight)-1));}</code></p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-4.html">посмотреть</a>.</p>
<p>Если посмотреть внимательно, то можно заметить, что высота не совсем одинаковая. Разница составляет <em>1px</em>. Это сделано для того, чтобы при изменении размера шрифта в меньшую сторону, высота пересчитывалась относительно самой высокой колонки.</p>
<p>Если изначально знать какая колонка будет являться самой высокой, то можно высчитывать высоту оставшихся исходя из нее, но так как мы делаем универсальный метод то приходиться прибежать к такому &#8220;просчету&#8221;.</p>
<p>В приведенном выше выражении &#8220;<em>-1</em>&#8221; это тот пиксел, который нам позволит оставить одну самую высокую колонку, а &#8220;<em>-33</em>&#8221; рассчитывается по формуле: <em>padding-bottom: 30px</em> + <em>border-top-width: 1px</em> + <em>border-bottom-width: 1px</em> + <em>1px</em> “разница для самой высокой” = <em>-33</em></p>
<p>При неправильной формуле есть шанс &#8220;повесить&#8221; наш любимый браузер.</p>
<h2>Костыли для одинаковой высоты в IE7</h2>
<p>К сожалению  IE7  также не поддерживает CSS в той мере, в которой нам необходимо, но при этом исправлено много багов, которые были в IE6. Для IE7 используем <em>min-height</em> и тотже <em>1px</em> для соблюдения условия &#8220;самая высокая колонка&#8221;.</p>
<p><code>html&gt;body .row div {min-height: expression( parseFloat(this.parentNode.offsetHeight)-33);}</code></p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-5.html">посмотреть</a>.</p>
<p>Здесь можно было и не использовать хак, так как более старые версии браузера не поддерживают свойство <em>min-height</em>.</p>
<h2>Симуляция таблицы</h2>
<p>С помощью данной таблицы стилей можно без проблем отображать блоки, как при &#8220;табличной верстке&#8221;.</p>
<p><a href="http://neveragainblog.com.ua/examples/equal-height/step-6.html">посмотреть</a>.</p>
<h2>Почему используем CSS таблицы</h2>
<p>Может возникнуть вопрос : &#8220;<strong>Если мы можем использовать CSS table, почему мы не можем использовать HTML table вместо этого? HTML table работают во всех браузерах.</strong>&#8220;</p>
<p>Да, они работаю.</p>
<p>Однако, таблицы в CSS это не таблицы – они разработаны, только чтобы быть<br />
похожими на таблицы. <strong>Таблицы в CSS</strong> могут использоваться всякий раз, где и когда мы хотим визуально имитировать таблицу, в отличие от <strong>таблиц в HTML</strong>, которые должны использоваться только для табличные данных.</p>
<p>Вольный перевод <a href="http://www.gunlaug.no/contents/wd_additions_22.html">оригинала</a>.</p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=YZr-tIVek7k:fOtuxSEQGEc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=YZr-tIVek7k:fOtuxSEQGEc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=YZr-tIVek7k:fOtuxSEQGEc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/YZr-tIVek7k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/72/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/72</feedburner:origLink></item>
		<item>
		<title>Что происходит в браузерах при Quirks Mode</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/rZJbvvh_f6A/70</link>
		<comments>http://neveragainblog.com.ua/archives/70#comments</comments>
		<pubDate>Sun, 07 Oct 2007 10:48:03 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[doctype]]></category>

		<category><![CDATA[quirks mode]]></category>

		<category><![CDATA[browsers]]></category>

		<category><![CDATA[bug]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/70</guid>
		<description><![CDATA[Quirks Mode  -  это режим работы  таких браузеров,  как Internet Explorer (IE), Firefox и Opera. В принципе,  Quirks Mode (также называемый режимом совместимости) означает, что относительно современный браузер преднамеренно имитирует многие ошибки в старых браузерах, в частности IE 4 и IE 5.
Цель  Quirks Mode состоит в том, чтобы старые [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Quirks Mode</strong>  -  это режим работы  таких браузеров,  как Internet Explorer (IE), Firefox и Opera. В принципе,  Quirks Mode (также называемый режимом совместимости) означает, что относительно современный браузер преднамеренно имитирует многие ошибки в старых браузерах, в частности IE 4 и IE 5.</p>
<p>Цель  Quirks Mode состоит в том, чтобы старые страницы показывать в современных браузерах так, как это и планировал автор  (с учетом особенностей работы старых браузеров). Дополнительную информацию о  Quirks Mode можно найти на сайте <a href="http://www.quirksmode.org/">QuirksMode.org</a>.</p>
<p>Нет никакой авторитетной спецификации того, что происходит при  Quirks Mode.Этот режим, по сути, намеренное нарушение спецификаций HTML и CSS.</p>
<p>Если у Вас есть страница, которая, как Вам кажется, работает хорошо, но при этом отсутствует  doctype-декларация (требуемая спецификациями HTML), Вы не можете просто вставить doctype. Причина в том, что декларация заставляет браузер работать в Standards Mode, что противоположно  Quirks Mode. Это может означать что угодно. Я видел, когда добавляли doctype-декларацию, и все содержимое страницы исчезало. Чаще всего, расположение меняется довольно неожиданно. Но для Вас это может быть не так, если Вы знаете о том, что может случиться при Quirks Mode. Перед добавлением doctype-декларации, Вы должны проверить и HTML и CSS код на соответствие синтаксису, используя валидаторы. Во многих случаях этого может быть не достаточно, так как страница, возможно создавалась, полагаясь на вещи, которые будут &#8220;работать&#8221; только при Quirks Mode. Таким образом, после добавления doctype-декларации, Вы должны проверить страницу, по крайней мере, на IE 7 и Firefox 2 при Standards Mode. Если страница отображается некорректно, то для определения проблемы может быть полезен следующий список.</p>
<p>Создавая новую страницу, Вы не обязаны знать о  Quirks Mode и не должны всегда думать об этом. Просто пишите согласно спецификациям HTML и  CSS; это включает использование doctype-декларации, которая переводит современные браузеры в Standards Mode. Но если Вы решите использовать некоторые особенности, которые  работают только при Quirks Mode, типа height=&#8221;100%&#8221; для элемента, Вы должны проверить список для других возможных значений.</p>
<p>Хотя и не все браузеры показывают эти особенности, в Quirks Mode браузеры ведут себя следующим образом :</p>
<ul>
<li>Неправильный расчет <strong>блочной модели</strong> (отличается от CSS спецификации, хотя интуитивно более понятен). Это означает, что размеры блока (ширина и высота) определяет не только содержимое элементов, но также и отступы и границы.</li>
<li><strong>Размеры inline элементов</strong> реагируют на свойства ширины и высоты  (хотя по CSS спецификации они должны игнорироваться)</li>
<li><strong>Процентное задание высоты элемента</strong>  (к примеру , <em>&lt;table height=&#8221;100%&#8221;&gt;</em> в HTML или <em>table { height: 100% }</em>в CSS) применяется, используя имеющуюся высоту, даже если родительский элемент имеет высоту <em>auto</em> (по умолчанию).<br />
<br />
При Standards Mode, высота расчитывается от количества контента. Процентное задание высоты работает только при условии, если задана высота родительского элемента.</li>
<li><strong>Переполнение блока контентом</strong> вызывает изменение его размеров.  Если обьем контента не вписывается в размеры блока (заданные явно либо неявно),  то свойство <em>overflow:hidden</em> означает, что контент будет доступен, и при этом размеры блока не будут изменяться. В случае Quirks Mode контент будет изменять размеры блока. Это можно увидеть, если блоку заданы бекграунд либо границы.</li>
<li><strong>Padding для изображений</strong> игнорируется, когда он задан через CSS  для элемента <em>img</em>или для элемента <em>input type=&#8221;image&#8221;</em> .</li>
<li><strong>Горизонтальный отступ</strong> для обтекаемого изображения 3 px вместо 0. Таким образом, если у <em>img</em> установленны атрибуты <em>align=&#8221;left&#8221;</em> или <em>align=&#8221;right&#8221;</em>, или CSS свойства <em>float: left</em> или <em>float: right</em>, то браузер ведет себя, как будто у <em>img</em> установлен атрибут <em>hspace = &#8220;3&#8243;</em> (или <em>margin-left</em> и <em>margin-right</em> имеют значение 3px).Это применимо к IE, в остальных браузерах Quirks Mode может вызывать отступ только с одной стороны изображения, и его величина может быть  2 px вместо 3.
<li>
<li><strong>Вертикальное выравнивание</strong> изображения определяется относительно основания блока, а не относительно основания текста. Это происходит, когда изображение-это единственное содержимое блока. Это означает, что, например, при QuirksMode изображение в ячейке таблицы - по умолчанию у основания ячейки (что часто является предполагаемым поведением), в то время как при Standards Mode, будет промежуток в несколько пикселей (если не определить для изображения <em>vertical-align: bottom</em>).</li>
<li><strong>Выравнивание блока</strong> по горизонтали с помощью CSS ( <em>margin: 0 auto</em> ) не работает.</li>
<li><strong>Свойства шрифта</strong> не наследуются от <em>body</em> или других элементов в <em>table</em>. Это происходит, в частности, с <em>font-size</em>, но может происходить с <em>font-family</em>, <em>color</em>, и <em>line-height</em>.. Например, если Вы устанавливаете <em>body { font-family: Arial }</em>, возможно, что шрифт в ячейках таблицы останется установленным в браузере по умолчанию.</li>
<li><strong>Размер шрифта</strong> для ячейки таблицы, заданный в относительных величинах, рассчитывается относительно размера шрифта, установленного в браузере, а не относительно родительского элемента для <em>table</em>.</li>
<li><strong>Ключевые слова</strong> для установки размера шрифта рассчитываются неправильно, получается, что <em>medium</em> больше, чем базовый размер шрифта браузера, а <em>small</em> соответствует базовому размеру. Точно также все ключевые слова, <em>xx-small</em>, <em>x-small</em>, <em>small</em>, <em>large</em>, <em>x-large</em>, <em>xx-large</em> рассчитываются неправильно: каждый шаг, больше, чем должен быть.</li>
<li><strong>Неправильные объявления свойств</strong> часто интерпретируются на основе догадок, так например <em>margin: 10</em> интерпретируется как <em>margin: 10px</em> и <em>color: ffffff</em> как <em>color: #ffffff</em>. Это нарушает обязательные правила обработки ошибок в CSS: правила с синтаксически неправильными значениями должны игнорироваться.</li>
<li><strong>Селекторы в CSS</strong> не зависят от регистра. Например, <em>.foo</em> соответствует элементу с классом <em>class=&#8221;Foo&#8221;</em> или <em>class=&#8221;FOO&#8221;</em>. Но в спецификации определена зависимость селекторов от регистра.</li>
<li>Допускается <strong>неправильное написание селекторов</strong>, например таких  как <em>.123a</em> или <em>#42</em>.</li>
<li>Свойство <em>position: fixed</em> соответствует <em>position: static</em> в IE 7.</li>
<li>Значение свойства <em>white-space: pre</em> игнорируется.</li>
<li>Большинство CSS свойств, которые не поддерживались в IE 6, в IE 7 поддерживаются только при Standards Mode.</li>
<li><strong>Парсинг Tag soup</strong>. Например, имея такой код <em>&lt;p&gt;text&lt;table&gt;&#8230;&lt;/table&gt;</em>,в Firefox, при Quirks Mode,  элемент p будет содержать элемент table. При Standards Mode открывающий тег <em>table</em> неявно закроет элемент <em>p</em>. IE  всегда разбирает такой код неправильно.</li>
<li><strong>Переносы строк</strong> могут учитываться. Например, Вы имеете список ссылок. Обычно мы пишем с переносами строк (между &lt;li&gt; и &lt;/li&gt;), для более удобного чтения кода:
<pre>&lt;ul&gt;
&lt;li&gt;&lt;a ...&gt;...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a ...&gt;...&lt;/a&gt;&lt;/li&gt;
...
&lt;/ul&gt;</pre>
<p>Однако, если Вы устанавливаете <em>display: block</em> и границы для элемента a, Вы можете столкнуться с вертикальными промежутками (пустыми линиями) между блоками. В IE7 это происходит при Quirks Mode, в более ранних версиях IE это происходит вне зависимости от режима работы.</li>
<li><strong>Элемент form</strong> имеет по умолчанию <em>bottom-margin</em> равный 1em. В браузере IE такой отступ присутствует вне зависимости от режима работы.</li>
</ul>
<p>Вольный перевод <a href="http://www.cs.tut.fi/~jkorpela/quirks-mode.html">оригинала</a>.</p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=rZJbvvh_f6A:EchowkEnL68:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=rZJbvvh_f6A:EchowkEnL68:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=rZJbvvh_f6A:EchowkEnL68:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/rZJbvvh_f6A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/70/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/70</feedburner:origLink></item>
		<item>
		<title>Как создать стили только для IE</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/Z7F4JDUo9SQ/69</link>
		<comments>http://neveragainblog.com.ua/archives/69#comments</comments>
		<pubDate>Tue, 25 Sep 2007 11:07:11 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[ie7]]></category>

		<category><![CDATA[ie5]]></category>

		<category><![CDATA[ie5.5]]></category>

		<category><![CDATA[сonditional сomments]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[ie6]]></category>

		<category><![CDATA[browsers]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/69</guid>
		<description><![CDATA[Всем известно что браузеры IE некоректно работают с CSS. Мало того, у них у  всех разные ошибки, ошибки которые сть в одной версии, отсутствуют в другой.  Для создание стилей IE есть несколько методов: условные  комментарии (Conditional Comments) и css хаки. Лично я отдаю предпочтение  условным комментария.
Различные таблици стилей, для различных версий [...]]]></description>
			<content:encoded><![CDATA[<p>Всем известно что браузеры IE некоректно работают с CSS. Мало того, у них у  всех разные ошибки, ошибки которые сть в одной версии, отсутствуют в другой.  Для создание стилей IE есть несколько методов: <em>условные  комментарии (Conditional Comments)</em> и <em>css хаки</em>. Лично я отдаю предпочтение  условным комментария.</p>
<p>Различные таблици стилей, <strong>для различных версий IE</strong>:
<dl>
<dd>только IE 7</dd>
<dt><code>&lt;!--[if IE 7]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-7-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
<dd>только IE 6</dd>
<dt><code>&lt;!--[if IE 6]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-6-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
<dd>только IE 5</dd>
<dt><code>&lt;!--[if IE 5]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-5-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
<dd>только IE 5.5</dd>
<dt><code>&lt;!--[if IE 5.5000]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-55-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
<dd>IE 6 и ниже</dd>
<dt><code>&lt;!--[if lte IE 6]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-6-OR-LOWER-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
<dd>ниже IE 6</dd>
<dt><code>&lt;!--[if lt IE 6]&gt;<br />
&lt;link rel="stylesheet" type="text/css" href="IE-6-LOWER-SPECIFIC.css" /&gt;<br />
&lt;![endif]--&gt;</code></dt>
</dl>
<p>Почему следует использовать условные коментарии?</p>
<ul>
<li>При использовании хаков не вариант, что выйдет новая версия, которая будет    понимать этот хак и в ней не будет исправлена ошибка, которая решалась с    помощью хака. Вы наверно сталкивались с тем, что решали проблему для ИЕ6 и при этом скрывали эти стили от ИЕ7, а теперь представте что вы решаете    проблему только для ИЕ7, выходит новая версия, она понимает этот хак, но эта ошибка в новой версии уже исправлена, в такой ситуации велика вероятность что в верстке чтото &#8220;поплывет&#8221; или &#8220;полезет&#8221;.)</li>
<li>Ваша таблица стилей чиста и валидна, никаких zoom:1, filter, expression.</li>
<li>Расширяемость. Выходит новая версия, и мы просто создаем для нее свой файл стилей, в котором определяем обходимые правила, вместо того чтобы лопатить все полотно стилей.</li>
</ul>
<p>Вольный перевод <a href="http://css-tricks.com/how-to-create-an-ie-only-stylesheet/">оригинала</a>.</p>
<p>Также есть статьи:
<ul>
<li><a href="http://neveragainblog.com.ua/archives/56">Подключение таблиц стилей для браузеров IE, Opera, Safari</a></li>
</ul>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=Z7F4JDUo9SQ:4YvB2gpaYp8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=Z7F4JDUo9SQ:4YvB2gpaYp8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=Z7F4JDUo9SQ:4YvB2gpaYp8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/Z7F4JDUo9SQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/69/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/69</feedburner:origLink></item>
		<item>
		<title>Генерирование заголовков для таблицы</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/IFzQIcECPRk/68</link>
		<comments>http://neveragainblog.com.ua/archives/68#comments</comments>
		<pubDate>Sat, 22 Sep 2007 21:10:15 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[table]]></category>

		<category><![CDATA[caption]]></category>

		<category><![CDATA[generated content]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/68</guid>
		<description><![CDATA[Исходный HTML код таблицы:&#60;table summary="Значение атрибута summary" title="Значение атрибута title"&#62;
&#60;tr&#62;
&#60;td&#62;Пример &#60;/td&#62;
&#60;td&#62;Таблицы&#60;/td&#62;
&#60;/tr&#62;
&#60;/table&#62;
CSS:table[summary]:after {
content: "Таблица " counter(table) ":  " attr(summary);
counter-increment: table;
display: table-caption;
caption-side: bottom;
font-size: 10px;
font-style: italic;
white-space: nowrap;
margin-top: 5px;
margin-bottom: 20px;
}
table[title]:before {
display: table-caption;
caption-side: top;
content: attr(title);
font-size: 12px;
font-weight: bold;
white-space: nowrap;
}
Правило content: &#8220;Таблица &#8221; counter(table) &#8220;:  &#8221; attr(summary); выводит номер таблицы и содержание атрибута summary. Правило counter-increment: table; инициализирует счётчик, который [...]]]></description>
			<content:encoded><![CDATA[<p>Исходный HTML код таблицы:<code>&lt;table summary="Значение атрибута summary" title="Значение атрибута title"&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;Пример &lt;/td&gt;<br />
&lt;td&gt;Таблицы&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;/table&gt;</code></p>
<p>CSS:<code>table[summary]:after {<br />
content: "Таблица " counter(table) ":  " attr(summary);<br />
counter-increment: table;<br />
display: table-caption;<br />
caption-side: bottom;<br />
font-size: 10px;<br />
font-style: italic;<br />
white-space: nowrap;<br />
margin-top: 5px;<br />
margin-bottom: 20px;<br />
}<br />
table[title]:before {<br />
display: table-caption;<br />
caption-side: top;<br />
content: attr(title);<br />
font-size: 12px;<br />
font-weight: bold;<br />
white-space: nowrap;<br />
}</code></p>
<p>Правило <em>content: &#8220;Таблица &#8221; counter(table) &#8220;:  &#8221; attr(summary);</em> выводит номер таблицы и содержание атрибута <em>summary</em>. Правило <em>counter-increment: table;</em> инициализирует счётчик, который и будет считать номер таблицы на странице. Следующим шагом задаем <em>display: table-caption;</em> для нашего сгенерированного контента, чтобы он отображался как заголовок.</p>
<p><em>caption-side: top;</em> определяет положение заголовка относительно таблицы.</p>
<p>Думаю что использовать это повсеместно не имеет смысла,так как это поддерживаться не всеми браузерами, но как какая то &#8220;фитча&#8221;, для пользователей например opera, это использовать можно).</p>
<p><a href="http://neveragainblog.com.ua/examples/table/auto-caption.html">пример</a><br />
<a href="http://www.markschenk.com/cssexp/autocaption/autocaption.html">источник</a></p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=IFzQIcECPRk:xRk8IAQ59k0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=IFzQIcECPRk:xRk8IAQ59k0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=IFzQIcECPRk:xRk8IAQ59k0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/IFzQIcECPRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/68/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/68</feedburner:origLink></item>
		<item>
		<title>Генерируем нумерацию заголовков используя CSS</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/RAMnGiMbU_E/64</link>
		<comments>http://neveragainblog.com.ua/archives/64#comments</comments>
		<pubDate>Wed, 19 Sep 2007 20:59:00 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[generated content]]></category>

		<category><![CDATA[:before]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/64</guid>
		<description><![CDATA[
Этот способ работает только в адекватных браузерах, которые понимают как минимум :before и поддерживают генерацию контента средствами CSS
Итак, имеем следующий HTML:&#60;h1&#62;Заголовок&#60;/h1&#62;
&#60;h2&#62;Заголовок&#60;/h2&#62;
&#60;h2&#62;Заголовок&#60;/h2&#62;
&#60;h1&#62;Заголовок&#60;/h1&#62;
&#60;h2&#62;Заголовок&#60;/h2&#62;
&#60;h2&#62;Заголовок&#60;/h2&#62;

Начнем работать над стилями. Первое,что сделаем, объявим счётчики для заголовков:h1 {
	counter-increment: h1;
	}
h2{
	counter-increment: h2
	}

Счётчики объявлены, теперь их надо как то выводить на страницу:h1:before {
	content: counter(h1) ". "
	}
h2:before {
	content: counter(h1) "." counter(h2) " ";
	}
Для заголовка первого уровня [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><img style="float:none" src='http://neveragainblog.com.ua/wp-content/uploads/2007/09/automatic-counters.gif' alt='automatic-counters.gif' /></p>
<p>Этот способ работает только в адекватных браузерах, которые понимают как минимум :before и поддерживают генерацию контента средствами CSS</p>
<p>Итак, имеем следующий HTML:<code>&lt;h1&gt;Заголовок&lt;/h1&gt;<br />
&lt;h2&gt;Заголовок&lt;/h2&gt;<br />
&lt;h2&gt;Заголовок&lt;/h2&gt;<br />
&lt;h1&gt;Заголовок&lt;/h1&gt;<br />
&lt;h2&gt;Заголовок&lt;/h2&gt;<br />
&lt;h2&gt;Заголовок&lt;/h2&gt;<br />
</code></p>
<p>Начнем работать над стилями. Первое,что сделаем, объявим счётчики для заголовков:<code>h1 {<br />
	counter-increment: h1;<br />
	}<br />
h2{<br />
	counter-increment: h2<br />
	}</code>
</p>
<p>Счётчики объявлены, теперь их надо как то выводить на страницу:<code>h1:before {<br />
	content: counter(h1) ". "<br />
	}<br />
h2:before {<br />
	content: counter(h1) "." counter(h2) " ";<br />
	}</code><br />
Для заголовка первого уровня выводим счётчик, который для него объявили, а для заголовка второго уровня выводим так сказать родной счётчик и счётчик заголовков первого уровня. <a href="http://neveragainblog.com.ua/examples/Automatic%20counters/step-1.html">пример</a>
</p>
<p>Последнее что нам осталось сделать - обнулят счётчик второго уровня:<code>h1 {<br />
	counter-reset: h2 0;<br />
	}</code>
</p>
<p>Окончательный вид таблици стилей:<code>h1 {<br />
	counter-increment: h1;<br />
	counter-reset: h2 0;<br />
	}<br />
h1:before {<br />
	content: counter(h1) ". "<br />
	}<br />
h2{<br />
	counter-increment: h2<br />
	}<br />
h2:before {<br />
	content: counter(h1) "." counter(h2) " ";<br />
	}</code><br />
<a href="http://neveragainblog.com.ua/examples/Automatic%20counters/step-1.html">пример</a></p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=RAMnGiMbU_E:FNAE0OG0GqI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=RAMnGiMbU_E:FNAE0OG0GqI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=RAMnGiMbU_E:FNAE0OG0GqI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/RAMnGiMbU_E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/64/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/64</feedburner:origLink></item>
		<item>
		<title>Создание меню с помощью CSS</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/Fd83Xr4-oVE/63</link>
		<comments>http://neveragainblog.com.ua/archives/63#comments</comments>
		<pubDate>Sat, 15 Sep 2007 13:54:31 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[menu]]></category>

		<category><![CDATA[image replacement]]></category>

		<category><![CDATA[ie]]></category>

		<category><![CDATA[bug]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/63</guid>
		<description><![CDATA[Создаем меню
исходный HTML:&#60;ul class="menu"&#62;
&#60;li&#62;&#60;a class="home" href="#"&#62;&#60;/a&#62;&#60;/li&#62;
&#60;li&#62;&#60;a class="blog" href="#"&#62;&#60;/a&#62;&#60;/li&#62;
&#60;li&#62;&#60;a class="autor" href="#"&#62;&#60;/a&#62;&#60;/li&#62;
&#60;/ul&#62;
Изображения кнопок в двух состояних:


Для того,чтобы избежать моргания изображений, связаное с загрузкой изображения, обьеденим два состояния кнопки в один файл:


Преврашаем наши ссылки в кнопки:*{
	margin:0;
	padding:0;
	}
.menu{
	list-type-style:none;
}
.menu li,.menu a{
width:114px;
height:36px
	}
.menu a{
display:block;
background-repeat:no-repeat;
background-position: 0 0;
	}
.menu a:hover{
background-position:0 -36px;
	}
.menu .home{
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-home.gif);
}
.menu .blog{
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-blog.gif);
}
.menu .autor{
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-avtor.gif);
}
пример
]]></description>
			<content:encoded><![CDATA[<h2>Создаем меню</h2>
<p>исходный HTML:<code>&lt;ul class="menu"&gt;<br />
&lt;li&gt;&lt;a class="home" href="#"&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a class="blog" href="#"&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a class="autor" href="#"&gt;&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</code></p>
<p>Изображения кнопок в двух состояних:<br />
<img style="float:none;" src="http://neveragainblog.com.ua/examples/menu/main.gif" alt="" /><img src="http://neveragainblog.com.ua/examples/menu/main-h.gif" alt=""  style="float:none;"/>
</p>
<p>Для того,чтобы избежать моргания изображений, связаное с загрузкой изображения, обьеденим два состояния кнопки в один файл:<br />
<img src="http://neveragainblog.com.ua/examples/menu/menu-home.gif" alt="" style="float:none;" />
</p>
<p>Преврашаем наши ссылки в кнопки:<code>*{<br />
	margin:0;<br />
	padding:0;<br />
	}<br />
.menu{<br />
	list-type-style:none;<br />
}<br />
.menu li,.menu a{<br />
width:114px;<br />
height:36px<br />
	}<br />
.menu a{<br />
display:block;<br />
background-repeat:no-repeat;<br />
background-position: 0 0;<br />
	}<br />
.menu a:hover{<br />
background-position:0 -36px;<br />
	}<br />
.menu .home{<br />
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-home.gif);<br />
}<br />
.menu .blog{<br />
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-blog.gif);<br />
}<br />
.menu .autor{<br />
    background-image:url(http://neveragainblog.com.ua/examples/menu/menu-avtor.gif);<br />
}</code><br />
<a href="http://neveragainblog.com.ua/examples/menu/menu-0.html">пример</a>
</p>
<p> <a href="http://neveragainblog.com.ua/archives/63#more-63" class="more-link">(more&#8230;)</a></p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=Fd83Xr4-oVE:lF8-hzEpBrY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=Fd83Xr4-oVE:lF8-hzEpBrY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=Fd83Xr4-oVE:lF8-hzEpBrY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/Fd83Xr4-oVE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/63/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/63</feedburner:origLink></item>
		<item>
		<title>Шпаргалки по CSS</title>
		<link>http://feedproxy.google.com/~r/com/neveragainblog/~3/D1DMicpmvvw/61</link>
		<comments>http://neveragainblog.com.ua/archives/61#comments</comments>
		<pubDate>Mon, 10 Sep 2007 19:26:06 +0000</pubDate>
		<dc:creator>never again</dc:creator>
		
		<category><![CDATA[шпаргалки]]></category>

		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://neveragainblog.com.ua/archives/61</guid>
		<description><![CDATA[
http://www.utoronto.ca/ian/books/extras/css1-sheet-7nov2000.pdf - автор Ian Graham.
свойства и их значения
селекторы
поддержка браузерами (устарело)
http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/ - Шпаргалки по CSS от ILoveJackDaniels.
свойства
селекторы
блочная модель
синтаксис
еденицы измерения значений
типы носителя
http://www.gosquared.com/dtquidicity/archives/33 - автор dtquidcity.
свойства
селекторы
блочная модель
синтаксис
еденицы измерения значений
типы носителя
http://www.spectrum-research.com/V2/projects_css_reference.asp - автор Spectrum Research.
свойства и их значения
еденицы измерения значений
http://www.veign.com/downloads/guides/qrg0007.pdf - автор Veign.
свойства и их значения
селекторы
еденицы измерения значений
http://home.tampabay.rr.com/bmerkey/cheatsheet.htm - автор Brett Merkey.
свойства
селекторы
блочная модель
синтаксис
каскад
http://www.lazycat.org/webdesign/cssref.php - автор Matt Robinson.
свойства и их [...]]]></description>
			<content:encoded><![CDATA[<dl class="dt-bold">
<dt><a href="http://www.utoronto.ca/ian/books/extras/css1-sheet-7nov2000.pdf" target="_blank" title="http://www.utoronto.ca/ian/books/extras/css1-sheet-7nov2000.pdf" rel="nofollow">http://www.utoronto.ca/ian/books/extras/css1-sheet-7nov2000.pdf</a> - автор Ian Graham.</dt>
<dd>свойства и их значения</dd>
<dd>селекторы</dd>
<dd>поддержка браузерами (устарело)</dd>
<dt><a href="http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/" target="_blank" title="http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/" rel="nofollow">http://www.ilovejackdaniels.com/cheat-sheets/css-cheat-sheet/</a> - Шпаргалки по <acronym title="Cascading Style Sheets">CSS</acronym> от ILoveJackDaniels.</dt>
<dd>свойства</dd>
<dd>селекторы</dd>
<dd>блочная модель</dd>
<dd>синтаксис</dd>
<dd>еденицы измерения значений</dd>
<dd>типы носителя</dd>
<dt><a href="http://www.gosquared.com/dtquidicity/archives/33" target="_blank" title="http://www.gosquared.com/dtquidicity/archives/33" rel="nofollow">http://www.gosquared.com/dtquidicity/archives/33</a> - автор dtquidcity.</dt>
<dd>свойства</dd>
<dd>селекторы</dd>
<dd>блочная модель</dd>
<dd>синтаксис</dd>
<dd>еденицы измерения значений</dd>
<dd>типы носителя</dd>
<dt><a href="http://www.spectrum-research.com/V2/projects_css_reference.asp" target="_blank" title="http://www.spectrum-research.com/V2/projects_css_reference.asp" rel="nofollow">http://www.spectrum-research.com/V2/projects_css_reference.asp</a> - автор Spectrum Research.</dt>
<dd>свойства и их значения</dd>
<dd>еденицы измерения значений</dd>
<dt><a href="http://www.veign.com/downloads/guides/qrg0007.pdf" target="_blank" title="http://www.veign.com/downloads/guides/qrg0007.pdf" rel="nofollow">http://www.veign.com/downloads/guides/qrg0007.pdf</a> - автор Veign.</dt>
<dd>свойства и их значения</dd>
<dd>селекторы</dd>
<dd>еденицы измерения значений</dd>
<dt><a href="http://home.tampabay.rr.com/bmerkey/cheatsheet.htm" target="_blank" title="http://home.tampabay.rr.com/bmerkey/cheatsheet.htm" rel="nofollow">http://home.tampabay.rr.com/bmerkey/cheatsheet.htm</a> - автор Brett Merkey.</dt>
<dd>свойства</dd>
<dd>селекторы</dd>
<dd>блочная модель</dd>
<dd>синтаксис</dd>
<dd>каскад</dd>
<dt><a href="http://www.lazycat.org/webdesign/cssref.php" target="_blank" title="http://www.lazycat.org/webdesign/cssref.php" rel="nofollow">http://www.lazycat.org/webdesign/cssref.php</a> - автор Matt Robinson.</dt>
<dd>свойства и их значения</dd>
<dd>селекторы</dd>
<dd>синтаксис</dd>
<dd>еденицы измерения значений</dd>
<dd>типы носителя</dd>
<dt><a href="http://meyerweb.com/eric/css/references/css1ref.html" target="_blank" title="http://meyerweb.com/eric/css/references/css1ref.html" rel="nofollow">http://meyerweb.com/eric/css/references/css1ref.html</a> - Ondtne руководство по <acronym title="Cascading Style Sheets">CSS</acronym> от Eric Meyer. (часть 1)</dt>
<dd>удобная навигация по спецификации (css1)</dd>
<dt><a href="http://meyerweb.com/eric/css/references/css2ref.html" target="_blank" title="http://meyerweb.com/eric/css/references/css2ref.html" rel="nofollow">http://meyerweb.com/eric/css/references/css2ref.html</a> - Ondtne руководство по <acronym title="Cascading Style Sheets">CSS</acronym> от Eric Meyer. (часть 2)</dt>
<dd>удобная навигация по спецификации (css2)</dd>
</dl>
<p><a href="http://anton.shevchuk.name/php/essential-cheatsheets/">еще много шпаргалок</a></p>
<div><script src="http://odnaknopka.ru/ok1.js"></script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=D1DMicpmvvw:shNt0qjhqhI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?i=D1DMicpmvvw:shNt0qjhqhI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/com/neveragainblog?a=D1DMicpmvvw:shNt0qjhqhI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/com/neveragainblog?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/com/neveragainblog/~4/D1DMicpmvvw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://neveragainblog.com.ua/archives/61/feed</wfw:commentRss>
		<feedburner:origLink>http://neveragainblog.com.ua/archives/61</feedburner:origLink></item>
	</channel>
</rss>
