<?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>Seleckis.lv :: журнал Никиты Селецкого &#187; CSS</title>
	<atom:link href="http://www.seleckis.lv/category/journal/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.seleckis.lv</link>
	<description></description>
	<lastBuildDate>Tue, 01 Jun 2010 05:46:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Seleckis’ method vs Pixy’s method</title>
		<link>http://www.seleckis.lv/journal/css/seleckis-method-vs-pixy-s-method</link>
		<comments>http://www.seleckis.lv/journal/css/seleckis-method-vs-pixy-s-method#comments</comments>
		<pubDate>Sun, 16 Aug 2009 20:01:41 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1695</guid>
		<description><![CDATA[Честное слово, пытался найти и убедить себя в том, что этот метод уже существует. Не нашёл. Исправьте меня если я не прав.
Pixy’s method отображение картинок с надписями заключался в том, чтобы внутрь блока с текстом поместить пустой &#60;span&#62;, и вставить картинку как фон для этого span-а. Причём, для того чтобы текст показывался в случае если [...]]]></description>
			<content:encoded><![CDATA[<p>Честное слово, пытался найти и убедить себя в том, что этот метод уже существует. Не нашёл. Исправьте меня если я не прав.</p>
<p>Pixy’s method отображение картинок с надписями заключался в том, чтобы внутрь блока с текстом поместить пустой &lt;span&gt;, и вставить картинку как фон для этого span-а. Причём, для того чтобы текст показывался в случае если картинки отключены, необходимо span поместить поверх текста.</p>
<p>В методе Pixy, для того чтобы &lt;span&gt; с картинкой налез на текст используется абсолютное позиционирование. В таких условиях кнопка не может находиться в строке, она может существовать только как блочный элемент. Почему? Потому что Firefox 2 не поддерживает свойство «display: inline-block». Для отображения блока в строке в Firefox-е используется проприетарное свойство «display: -moz-inline-box» или «display: -moz-inline-stack». Но в таком случае браузер не совсем адекватно позиционирует помещённые внутрь элементы. В частности некорректно работает абсолютное позиционирование.</p>
<p>Задачи, с которыми я сталкивался в вёрстке, требуют гораздо более эффективного решения. Вот эти задачи на примере создания ссылки-кнопки:</p>
<ol>
<li>Ссылка должна быть «инлайновая», т. е. чтобы можно было поместить в строке.</li>
<li>При отключенных картинках в браузере вместо кнопки должна быть надпись-ссылка.</li>
<li>У кнопки должен работать «ховер» — при наведении мышкой, картинка должна меняться.</li>
</ol>
<h3>Метод Селецкого (Seleckis’ Method)</h3>
<p>Фактически тот же Pixy’s method, только:</p>
<ol>
<li>используется строчный блок (inline-block),</li>
<li>&lt;span&gt; помещается не после текста, а перед,</li>
<li>не &lt;span&gt; налезает на текст, а текст подлезает под &lt;span&gt;.</li>
</ol>
<p>Ну а в качестве реализации «ховера» выступает обычный CSS-спрайт.</p>
<p>Итак HTML:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;seleckis&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span>Seleckis<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.seleckis</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #808080; font-style: italic;">/* только для FF2 */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> -moz-inline-box<span style="color: #00AA00;">;</span> 
	-moz-box-orient<span style="color: #00AA00;">:</span> vertical<span style="color: #00AA00;">;</span>
&nbsp;
	<span style="color: #808080; font-style: italic;">/* Для остальных */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.seleckis</span> span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-20px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
.seleckis<span style="color: #00AA00;">,</span>
<span style="color: #6666ff;">.seleckis</span> span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">74px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">seleckis.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">top</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
a<span style="color: #6666ff;">.seleckis</span><span style="color: #3333ff;">:hover</span><span style="color: #00AA00;">,</span>
a<span style="color: #6666ff;">.seleckis</span><span style="color: #3333ff;">:hover </span>span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background-position</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">bottom</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Как видите, в этом коде сам блок становится строчно-блочным, а для FF2 срабатывает свойство «-moz-inline-box», что придаёт ссылке фактически такие же свойства. «-moz-box-orient: vertical» понадобится в том случае, если внутри блока вам нужно поместить содержимое в несколько строк.</p>
<p>Также, хочу отметить, что для элемента <span> мы определяем относительное позиционирование и добавляем отрицательный нижний отступ размером с высоту кнопки, чтобы текст «подлез» под &lt;span&gt; с картинкой. Кстати, картинка спрайта прописывается как ссылке, так и спану. Мало ли что…</p>
<p>Если будут баги, пишите попробуем решить. А так, в моём случае работает в Internet Explorer 6, 7 и 8, Firefox 2 и 3, Opera, Safari, Chrome.</p>
<p><a href='http://seleckis.lv/wp-content/uploads/2009/08/css-seleckis-method.zip'>Качем пример</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/seleckis-method-vs-pixy-s-method/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Min-width и max-width в IE6 с помощью expression</title>
		<link>http://www.seleckis.lv/journal/browsers/min-width-i-max-width-v-ie6-s-pomoschyu-expression</link>
		<comments>http://www.seleckis.lv/journal/browsers/min-width-i-max-width-v-ie6-s-pomoschyu-expression#comments</comments>
		<pubDate>Thu, 06 Aug 2009 08:52:17 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Брaузеры]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1690</guid>
		<description><![CDATA[Уже писали много раз, просто приведу свой код.
В JavaScript-файле размещаем такую функцию:

function width&#40;min,max&#41;&#123;
	w = document.documentElement.clientWidth;
	return &#40;w &#60;= min&#41; ? min + &#34;px&#34; : &#40;&#40;w &#62;= max&#41; ? max + &#34;px&#34; : &#34;auto&#34;&#41;;
&#125;

Функция всего лишь принимает значения максимальной и минимальной ширины, проверяет текущую ширину документа и возвращает значение:

Если ширина документа меньше минимальной ширины, то возвращается минимальная [...]]]></description>
			<content:encoded><![CDATA[<p>Уже писали много раз, просто приведу свой код.</p>
<p>В JavaScript-файле размещаем такую функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> width<span style="color: #009900;">&#40;</span>min<span style="color: #339933;">,</span>max<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	w <span style="color: #339933;">=</span> document.<span style="color: #660066;">documentElement</span>.<span style="color: #660066;">clientWidth</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>w <span style="color: #339933;">&lt;=</span> min<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> min <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;px&quot;</span> <span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>w <span style="color: #339933;">&gt;=</span> max<span style="color: #009900;">&#41;</span> <span style="color: #339933;">?</span> max <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;px&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;auto&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Функция всего лишь принимает значения максимальной и минимальной ширины, проверяет текущую ширину документа и возвращает значение:</p>
<ol>
<li>Если ширина документа меньше минимальной ширины, то возвращается минимальная ширина;</li>
<li>Если ширина документа больше максимальной ширины, то возвращается максимальная ширина;</li>
<li>Иначе ширина указывается автоматическая.</li>
</ol>
<p>Функция из CSS вызывается следующим образом:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> expression<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">600</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">1000</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">/* далее для нормальных браузеров */</span>
    <span style="color: #000000; font-weight: bold;">min-width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">600px</span><span style="color: #00AA00;">;</span> 
    <span style="color: #000000; font-weight: bold;">max-width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1000px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>600 и 1000 — минимальная и максимальная ширина. Поскольку expression работает только для IE, а min-width и max-width уже работают в IE7 и IE8, то этот CSS нужно изолировать и вынести в отдельный css-файл и подключить его с помощью условных комментариев, либо воспользоваться хакками, поскольку чтобы изменить значение придётся лезть в два файла, а не в один. Ну это уже как кому удобнее.</p>
<p><a href='http://seleckis.lv/wp-content/uploads/2009/08/min-max-width.zip'>Скачайте пример</a> и убедитесь, что всё работает.</p>
<p>Минимальную ширину в IE 6 можно эмулировать с помощью приёма, в котором указывается правый border для контейнера шириной в необходимую минимальную ширину элемента, а элементу задаётся правый отрицательный margin равный той же минимальной ширине. При этом внутренний элемент должен быть либо плавающим (float), либо inline-block. В общем не читайте и не внимайте в эти последние предложения, а просто посмотрите <a href="http://www.cssplay.co.uk/boxes/width.html">пример на cssplay.co.uk</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/browsers/min-width-i-max-width-v-ie6-s-pomoschyu-expression/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>«Резиновое» поле ввода в форме</title>
		<link>http://www.seleckis.lv/journal/css/rezinovoe-pole-vvoda-v-forme</link>
		<comments>http://www.seleckis.lv/journal/css/rezinovoe-pole-vvoda-v-forme#comments</comments>
		<pubDate>Fri, 31 Jul 2009 14:48:20 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1669</guid>
		<description><![CDATA[Как известно у полей ввода ширина не может рассчитываться автоматически относительно контейнера, как это работает у блочных элементов. Значение ширины можно задать фиксированное, либо относительное.
Есть сервисы в интернете с полями ввода (например, поиском) у которых ширина задана фиксированно. Соответственно, если шаблон сайта резиновый, то поле ввода растягиваться не будет. Как правило такие сайты имеют фиксированную [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно у полей ввода ширина не может рассчитываться автоматически относительно контейнера, как это работает у блочных элементов. Значение ширины можно задать фиксированное, либо относительное.</p>
<p>Есть сервисы в интернете с полями ввода (например, поиском) у которых ширина задана фиксированно. Соответственно, если шаблон сайта резиновый, то поле ввода растягиваться не будет. Как правило такие сайты имеют фиксированную вёрстку. К примеру, если вы зайдёте на «<a href="http://answers.yahoo.com">Yahoo Answers</a>» и с помощью Firebug (Firefox), Web Inspector (Safari, Chrome) или Developer Tools (Opera, IE8) отключите у элемента &lt;div id=&#8221;y-ks-whole-page&#8221;&gt; свойство «width: 750px;» в стилях, то сайт растянет на всю ширину, а поле поиска вопросов останется той же ширины. Конечно, кроме всего прочего, некоторые другие элементы останутся фиксированными, но мы говорим о полях ввода.</p>
<p>И вспомним работу студии Артемия Лебедева, поисковик «Яндекс» и его страницу <a href="http://ya.ru/">ya.ru</a> — облегчённую версию поисковика или посмотрим на давно забытый (мною) <a href="http://www.rambler.ru/">Рамблер</a>. Вёрстка как видите «резиновая» и соответственно ширина поля ввода для поиска такая же растягивающаяся.</p>
<p>Как же они сделали так, чтобы ширина была динамичной? Очень просто: таблицы. Создаётся таблица из одной строки и нескольких ячеек, в одной из которых помещается поле ввода и растягивается на всю ширину.</p>
<p style="text-align: center"><img title="yandex" src="http://seleckis.lv/wp-content/uploads/2009/07/yandex.gif" alt="yandex" width="600" height="127" /></p>
<p>Это простейший путь. Но не самый лучший.</p>
<h3>Вариант получше</h3>
<p>Начнём со структуры. особо наворачивать не будем. Чем проще, тем лучше.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;form&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text-input&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Continue →&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">fieldset</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>Проще некуда. на самом деле можно было бы обойтись без лишнего div-а, если бы не Internet Explorer 6 и Firefox 2. Но об этом позже.</p>
<p>Перед описанием внешнего вида в CSS сначала нужно понять как предлагается решать задачу. Лучше всего показать схематически.</p>
<p style="text-align: center"><img src="http://seleckis.lv/wp-content/uploads/2009/08/input-variable.gif" alt="input-variable" title="input-variable" width="600" height="167" /></p>
<p>Из схемы видно, что предлагается контейнеру элементов формы добавить боковую границу шириной примерно равной кнопке отправки формы, а растягиваемое поле ввода предлагается растянуть на 100%. Ну и чтобы кнопка не перенеслась на следующую строку, контейнеру нужно запретить перенос строк.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.form</span> fieldset<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">90px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">white-space</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">nowrap</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.form</span> fieldset .text-input<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Этого достаточно, чтобы форма правильно работала в Firefox 3, Opera, Safari, Chrome и Internet Explorer 8.</p>
<p>Для IE 6 и 7 нужно подправить отображение кнопки:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.form</span> fieldset .submit<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">visible</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>А для того, чтобы в IE6 и FF2 контейнер не растягивался так, что появляется горизонтальная прокрутка, нужно внешнему div-у прописать следующие свойства:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">.form<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Вот и всё, теперь у вас есть бестабличная вёрстка растягивающегося поля ввода.</p>
<p><a href="http://seleckis.lv/wp-content/uploads/2009/07/input-variable.zip">Скачайте и посмотрите пример</a>. Он немного приукрашен.</p>
<p><strong>Пара нюансов:</strong></p>
<ul>
<li>Вам нужно точно знать ширину кнопки.</li>
<li>Для &lt;div class=&#8221;form&#8221;&gt; нельзя добавлять margin и padding по горизонтали, иначе будет сдвиг. Ну это вы и сами знаете.</li>
</ul>
<p>Конечно же, никто не мешает вам добавить и левую границу и с отрицательным отступом поместить что-нибудь перед полем ввода (например логотип Яндекса).</p>
<p>Собственно, это я расписывать не буду, а просто посмотрите <a href='http://seleckis.lv/wp-content/uploads/2009/07/input-variable-yandex.zip'>пример, как я сверстал ya.ru</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/rezinovoe-pole-vvoda-v-forme/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Строчная кнопка как кнопка submit</title>
		<link>http://www.seleckis.lv/journal/css/strochnaya-knopka-kak-knopka-submit</link>
		<comments>http://www.seleckis.lv/journal/css/strochnaya-knopka-kak-knopka-submit#comments</comments>
		<pubDate>Sat, 28 Feb 2009 11:17:50 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1577</guid>
		<description><![CDATA[Требуется создать строчную кнопку submit неопределённой ширины  с фоновой картинкой.
Почему это нельзя сделать стандартными средствами? Т. е. мы конечно можем поместить на страницу кнопку

&#60;input type=&#34;submit&#34; value=&#34;Нажми меня&#34; /&#62;

и спокойно её использовать. Но нет, нам же этого мало. Нужно чтобы кнопочка была красивая, градиентная, с закруглёнными уголками.
Стандартным способом мы можем указать фон для кнопки, добавить [...]]]></description>
			<content:encoded><![CDATA[<p>Требуется создать строчную кнопку submit неопределённой ширины  с фоновой картинкой.</p>
<p>Почему это нельзя сделать стандартными средствами? Т. е. мы конечно можем поместить на страницу кнопку</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Нажми меня&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div>

<p>и спокойно её использовать. Но нет, нам же этого мало. Нужно чтобы кнопочка была красивая, градиентная, с закруглёнными уголками.</p>
<p>Стандартным способом мы можем указать фон для кнопки, добавить рамочку и в браузерах FF и Safari добавить закругления. Но проблема в том, что это во-первых не будет работать в IE и Opera, а во вторых, размеры кнопочек, положение текста и отступы везде будут разные.</p>
<p style="text-align: center"><img src="http://seleckis.lv/wp-content/uploads/2009/02/input-test1.png" alt="" title="input-test1" width="480" height="521" /></p>
<p>В FF2 вообще фон вылез за край закруглений.</p>
<p>Можно попробовать поместить кнопку submit в элемент span, чтобы использовать метод Sliding Doors. В этом случае можно будет без проблем поставить в качестве фона картинки как для элемента «span», так и для элемента «input». Но к сожалению и этот способ не подойдёт, поскольку нет возможности адекватно выровнять текст по вертикали.</p>
<p style="text-align: center"><img src="http://seleckis.lv/wp-content/uploads/2009/02/input-test2.png" alt="" title="input-test2" width="480" height="521" /></p>
<p>Поэтому если визуальное представление гораздо важнее чистоты html-кода, то можно воспользоваться следующим методом.</p>
<h3>Двойной «span» и элемент «input»</h3>
<p>За основу возьмём <a href="http://seleckis.lv/journal/ctrochnaya-knopka-kak-ssyilka">статью о создании кнопки как ссылки</a>. Поскольку в данном случае ссылка нам не нужна, то мы её заменяем на span, а внутрь второго span-а помещаем кнопку submit:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">span</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;input-button&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>Кнопка как кнопка<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Кнопка как кнопка&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;</span></pre></div></div>

<p>Принцип Sliding Doors сохраняется и картинки кнопки помещаются в эти два span-а. Не забываем и про то, что кнопка должна быть уровня inline-block.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.input-button</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> -moz-inline-box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* только для FF2 */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>	<span style="color: #808080; font-style: italic;">/* только для IE */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#83af31</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-r.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.input-button</span> span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	_display<span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* только для IE6 */</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-l.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>С кнопкой submit мы сделаем хитро. Разместим кнопку с абсолютным позиционированием относительно span-а поверх текста и сделаем её прозрачной. В итоге мы получим красивую кнопку с возможностями элемента «submit», ширина которой варьируется относительно текста помещённого внутрь.</p>
<p style="text-align: center"><img src="http://seleckis.lv/wp-content/uploads/2009/02/button-scheme.png" alt="" title="button-scheme" width="410" height="138" /></p>
<p>Можно сделать размер больше, как изображено на картинке, но можно и 100% высоту и ширину. Код следующий:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.input-button</span> input <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
	opacity<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	-moz-opacity<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* видимо для старых версий FF */</span>
	filter<span style="color: #00AA00;">:</span> alpha<span style="color: #00AA00;">&#40;</span>opacity<span style="color: #00AA00;">=</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* только для IE */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Все методы представлены в этом <a href='http://seleckis.lv/wp-content/uploads/2009/02/css-inline-button.zip'>архиве</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/strochnaya-knopka-kak-knopka-submit/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Cтрочная кнопка как ссылка</title>
		<link>http://www.seleckis.lv/journal/css/ctrochnaya-knopka-kak-ssyilka</link>
		<comments>http://www.seleckis.lv/journal/css/ctrochnaya-knopka-kak-ssyilka#comments</comments>
		<pubDate>Mon, 02 Feb 2009 09:08:22 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1535</guid>
		<description><![CDATA[Урок-инструкция о том, как следует делать кнопки предназначенные для расположения внутри текста. Имеется в виду, что кнопка будет располагаться на базовой линии строки между словами. Вот так:

Если мы располагаем кнопку внутри текста значит это кому-нибудь нужно мы хотим на неё нажать. А для нажатия обычно используются такие виды элементов, как ссылка и кнопки формы.
В случае [...]]]></description>
			<content:encoded><![CDATA[<p>Урок-инструкция о том, как следует делать кнопки предназначенные для расположения внутри текста. Имеется в виду, что кнопка будет располагаться на базовой линии строки между словами. Вот так:</p>
<p style="text-align: center;"><img title="inline-button" src="http://seleckis.lv/wp-content/uploads/2009/01/inline-button.png" alt="" width="503" height="124" /></p>
<p>Если мы располагаем кнопку внутри текста значит <del datetime="2009-01-30T08:36:17+00:00">это кому-нибудь нужно</del> мы хотим на неё нажать. А для нажатия обычно используются такие виды элементов, как ссылка и кнопки формы.</p>
<p>В случае со ссылкой всё просто: помещаем среди текста ссылку и задаем ей фон. Но чтобы фон отображался и выравнивался корректно, ссылке следует добавить свойство:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.button</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> -moz-inline-box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* только для FF 2 */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Т. е. мы превращаем наш строчный элемент в строчно-блочный. Firefox 2 это свойство не поддерживает, поэтому указываем специальное специфичное свойство имитирующее строчный блок. Следующее за ним свойство предназначено для всех остальных браузеров. После этого можно задать фон для кнопки.</p>
<p>Что делать если нужно в качестве фона задать две картинки: левую и правую? Для так называемого эффекта «Sliding Doors», нужно как минимум два элемента.</p>
<p>Сначала я попробовал обойтись без лишнего элемента:</p>
<ul>
<li>:first-line — не подходит, поскольку предназначен для элементов заведомо блочного уровня, и Опера сразу же переносит все слова в несколько строк и у ссылки пропадает фон.</li>
<li>:first-letter — не подходит, поскольку в Опере работает только для элементов заведомо блочного уровня</li>
<li>:before или :after вместе с content: &#8221; &#8221; — не подходят поскольку внутренний отступ (padding) у строчных элементов по вертикали в браузере Firefox отличается от Opera и Safari, а если превращать вставленный контент в элемент блочного уровня, то Firefox не поддерживает для него плавающий режим (float), а inline-block в Firefox позиционируется со сдвигами по вертикали.</li>
</ul>
<p>Можно было бы использовать хаки, но кто гарантирует, что в других версиях браузеров они будут доступны? Единственное в чём я уверен, так это в необратимости работы хаков для IE 6 и 7 (Хотя мне недавно приснился сон, что IE 6 обновили, исправили ошибки и добавили табы…)</p>
<p>Псевдо-классы и псевдо-элементы я проверял только в браузерах Safari, Opera и Firefox 3. Если в них не удается правильно спозиционировать всё что я хочу, то в другие браузеры я даже не смотрю.</p>
<p>Итог: придется использовать дополнительный элемент.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>…laboris nisi ut aliquip 
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Нажмите кнопку&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>Кнопка как ссылка<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
ex ea commodo consequat…<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></div></div>

<p>Решение в CSS:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> -moz-inline-box<span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* только для FF 2 */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#83af31</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-r.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span> span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* нужно для FF 2 */</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* для всех кроме FF 2 */</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-l.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span><span style="color: #3333ff;">:link </span>span<span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.button</span><span style="color: #3333ff;">:visited </span>span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#fff</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span><span style="color: #3333ff;">:hover </span>span<span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.button</span><span style="color: #3333ff;">:active </span>span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#dfd</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Некоторые пояснения:</p>
<ul>
<li>Высота кнопки должна равняться высоте строки в этом тексте. Это обязательно, иначе будут проблемы с позиционированием картинок на фоне. Опять же, для корректного отображения фона в IE 7 следует для span тоже добавить высоту, можно равной высоте кнопки, а можно просто — 100% <em>(Примечание: это не связано с hasLayout)</em></li>
<li>Для внутреннего элемента, сначала во всех браузерах применится «display: block», а потом, во всех кроме FF 2 сработает свойство «display: inline-block». Первое свойство будет корректно работать в FF 2, а второе — в IE 6, остальным браузерам всё равно.</li>
<li>Добавлено свойство «cursor:pointer», чтобы в IE при наведении на кнопку курсор стал «указующим перстом».</li>
</ul>
<p>Развиваем тему…</p>
<p>Что если кнопке нужно добавить что-то вроде стрелочки, указующей куда-либо. Например вот так:</p>
<p style="text-align: center;"><img title="inline-button-active" src="http://seleckis.lv/wp-content/uploads/2009/01/inline-button-active.png" alt="" width="508" height="121" /></p>
<p>Во-первых, если делать для всех браузеров кроме IE, то лишний элемент добавлять не нужно, можно воспользоваться «:after» и вставить стрелочку таким образом:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.button</span> span<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot; &quot;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-2px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-arrow.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Т. е. внутри элемента span, после текста вставляется абстрактный строчный элемент с пробелом в качестве содержимого, превращается в блочный элемент и чуть чуть поднимается вверх.</p>
<p>Схематически это можно изобразить так:</p>
<p style="text-align: center;"><img src="http://seleckis.lv/wp-content/uploads/2009/01/inline-button-after.png" alt="" title="inline-button-after" width="294" height="132" /></p>
<p>Но поскольку надо сделать так, чтоб работало и в IE тоже, то придется добавить ещё один лишний элемент, а кнопке стоит добавить дополнительный класс:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>…laboris nisi ut aliquip
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Нажмите кнопку&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button active&quot;</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">span</span>&gt;</span>Кнопка как ссылка<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">b</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">span</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span>
ex ea commodo consequat…<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></div></div>

<p>Позиционирование для добавленного элемента уже будет абсолютное и в CSS добавится следующий код:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.button</span><span style="color: #6666ff;">.active</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* нужно для Opera */</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">baseline</span><span style="color: #00AA00;">;</span>	<span style="color: #808080; font-style: italic;">/* только для IE */</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span><span style="color: #6666ff;">.active</span> span <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.button</span><span style="color: #6666ff;">.active</span> span b <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">50</span>%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">18px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-7.5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">13px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">8px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">button-arrow.png</span><span style="color: #00AA00;">&#41;</span> <span style="color: #993333;">no-repeat</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Итак, что же мы сделали:</p>
<ul>
<li>Для класса «active» добавили высоту, чтобы высота кнопки не увеличилась за счёт добавленного элемента.</li>
<li>Туда же добавили вертикальное выравнивание по низу, чтобы в Opera из-за дополнительного элемента не возникло сдвигов. Отменили выравнивание по низу для IE с помощью хака. Другим браузерам по барабану.</li>
<li>Для элемента span добавили «position: relative», чтобы абсолютное позиционирование стрелочки было относительно элемента «span».</li>
</ul>
<p>В <a href='http://seleckis.lv/wp-content/uploads/2009/01/inline-button1.zip'>готовом примере</a> описание элемента «b» и хаки для IE были вынесены в Conditional Comments. Т. е. код почти валидный, не считая свойства «-moz-inline-box» для Firefox 2.</p>
<p>Вариант с кнопкой «submit» и «button», ждите в следующей статье.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/ctrochnaya-knopka-kak-ssyilka/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Списки с разделителями между элементами</title>
		<link>http://www.seleckis.lv/journal/css/spiski-s-razdelitelyami-mezhdu-elementami</link>
		<comments>http://www.seleckis.lv/journal/css/spiski-s-razdelitelyami-mezhdu-elementami#comments</comments>
		<pubDate>Wed, 14 Jan 2009 09:34:27 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1526</guid>
		<description><![CDATA[Часто возникает необходимость создать список с разделительными линиями между элементами списка, Но как правило, в начале и в конце списка линий быть не должно или они должны быть другими. Как же сделать это с помощью CSS не создавая специального класса для первого или последнего элемента списка?
Всё очень просто, нужно всего лишь все элементы списка сдвинуть [...]]]></description>
			<content:encoded><![CDATA[<p>Часто возникает необходимость создать список с разделительными линиями между элементами списка, Но как правило, в начале и в конце списка линий быть не должно или они должны быть другими. Как же сделать это с помощью CSS не создавая специального класса для первого или последнего элемента списка?</p>
<p>Всё очень просто, нужно всего лишь все элементы списка сдвинуть на –1 пиксель, а контейнеру списка добавить свойство, скрывающее не помещающееся содержимое — overflow: hidden.</p>
<p>Пример:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;hlist&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/RGB&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;RGB&quot;</span>&gt;</span>RGB<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/CMYK&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;CMYK&quot;</span>&gt;</span>CMYK<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/XYZ&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;XYZ&quot;</span>&gt;</span>XYZ<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/HSV_(цветовая_модель)&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;HSV&quot;</span>&gt;</span>HSV<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/HSL&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;HSL&quot;</span>&gt;</span>HSL<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/RYB&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;RYB&quot;</span>&gt;</span>RYB<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
		<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://ru.wikipedia.org/wiki/LAB&quot;</span> <span style="color: #000066;">title</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;LAB&quot;</span>&gt;</span>LAB<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>

<p>Есть список цветовых моделей, которые нам необходимо расположить горизонтально и добавить к ним разделители.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.hlist</span> ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* кроме скрытия первого разделителя, свойство не дает контейнеру захлопнуться. */</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.hlist</span> ul li <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* располагаем элементы горизонтально */</span>
	<span style="color: #000000; font-weight: bold;">border-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* создаем левую границу как разделитель */</span>
	<span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* убираем маркеры */</span>
	<span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-1px</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* сдвигаем влево на один пиксель, чтобы первый разделитель скрылся */</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Из-за лишнего сдвига, расстояния слева и справа разделителя не равны. Для того, чтобы уровнять эти расстояния следует сделать внутренние отступы с разницей в один пиксель в пользу стороны сдвига:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span> <span style="color: #933;">16px</span> <span style="color: #933;">5px</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>Для того, чтобы механизм работал в IE, нужно включить для контейнера списка свойство <a href="http://www.satzansatz.de/cssd/onhavinglayout.html">hasLayout</a>. Я для этого использую HolyHack:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.hlist</span> ul <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">1</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Для вертикальных списков делается примерно то же самое, только элементы сдвигаются вверх (margin-top). Также для элементов вертикального списка тоже нужно включить hasLayout, если они не имеют свойства «float: left».</p>
<h4>Важно!</h4>
<p>Механизм не будет работать, если контейнеру списка добавить внутренние отступы (padding), вернее, чтобы скрыть разделитель нужно будет сдвигать дополнительно на величину внутреннего отступа.</p>
<p><a href='http://seleckis.lv/wp-content/uploads/2009/01/list-overflow1.html'>Пример верстки упомянутого механизма.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/spiski-s-razdelitelyami-mezhdu-elementami/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Графические маркеры у списков</title>
		<link>http://www.seleckis.lv/journal/css/graficheskie-markeryi-u-spiskov</link>
		<comments>http://www.seleckis.lv/journal/css/graficheskie-markeryi-u-spiskov#comments</comments>
		<pubDate>Wed, 19 Nov 2008 16:29:00 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1401</guid>
		<description><![CDATA[Не сказать, что это новшество, но поскольку часто спрашивают…
Такие простые вещи, которые, казалось бы, должны решаться на уровне браузера в итоге выглядят убого. Нет, в браузерах сделанных на совесть выглядит всё достаточно неплохо, но правда не гибко,  но Opera и IE располагает маркеры выше, чем нужно.

Все, кто знает об этих проблемах с маркерами, те забыли [...]]]></description>
			<content:encoded><![CDATA[<p>Не сказать, что это новшество, но поскольку часто спрашивают…</p>
<p>Такие простые вещи, которые, казалось бы, должны решаться на уровне браузера в итоге выглядят убого. Нет, в браузерах сделанных на совесть выглядит всё достаточно неплохо, но правда не гибко,  но Opera и IE располагает маркеры выше, чем нужно.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1407" title="list-style-image" src="http://seleckis.lv/wp-content/uploads/2008/11/list-style-image.png" alt="" width="600" height="202" /></p>
<p>Все, кто знает об этих проблемах с маркерами, те забыли CSS-свойство list-style-image и вместо него используют background-image или просто background.</p>
<p>Например:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">marker.gif</span><span style="color: #00AA00;">&#41;</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">5px</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>Результат:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1406" title="background-image" src="http://seleckis.lv/wp-content/uploads/2008/11/background-image.png" alt="" width="600" height="202" /></p>
<p>Если маркеры и прыгают, то примерно +/- 1px по высоте. Это гораздо лучший результат, чем было. Если можете предложить лучше — пожалуйста, предложите свой вариант. </p>
<p>Кроме того, что расположение картинки теперь более точное, есть возможность изменения её позиции относительно не только строки, но и всего элемента списка, если это требуется.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1409" title="background-alt" src="http://seleckis.lv/wp-content/uploads/2008/11/background-alt.png" alt="" width="385" height="269" /></p>
<p>Единственный минус — мы теряем свойство background для других нужд. Чтобы добавлять фон для каждого элемента списка требуется добавлять еще какой-нибудь элемент.</p>
<p><a href="http://seleckis.lv/wp-content/uploads/2008/11/graphics-markers.zip">Простой пример списков с графическими маркерами</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/graficheskie-markeryi-u-spiskov/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Закругленные углы без использования картинок</title>
		<link>http://www.seleckis.lv/journal/css/zakruglennyie-uglyi-bez-ispolzovaniya-kartinok</link>
		<comments>http://www.seleckis.lv/journal/css/zakruglennyie-uglyi-bez-ispolzovaniya-kartinok#comments</comments>
		<pubDate>Thu, 16 Oct 2008 10:44:53 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Технологии]]></category>

		<guid isPermaLink="false">http://seleckis.lv/?p=1289</guid>
		<description><![CDATA[Не мне вам рассказывать какая это проблема для верстальщика. Начиная от соблюдения семантики в написании HTML кода, продолжая валидностью в CSS и заканчивая подгрузкой JavaScript, все спотыкается об него — об Тот, про который не хочется не просто говорить, но, самое главное, видеть и знать, что он существует. Но начнем с самого хорошего.
Картинки против CSS
Когда [...]]]></description>
			<content:encoded><![CDATA[<p>Не мне вам рассказывать какая это проблема для верстальщика. Начиная от соблюдения семантики в написании HTML кода, продолжая валидностью в CSS и заканчивая подгрузкой JavaScript, все спотыкается об него — об Тот, про который не хочется не просто говорить, но, самое главное, видеть и знать, что он существует. Но начнем с самого хорошего.</p>
<h3>Картинки против CSS</h3>
<p>Когда можно обойтись инструкцией CSS — это самый лучший вариант. Достаточно написать border-radius: 5px и получим закругленные уголки с радиусом 5 пикселей. Но эта инструкция доступна только в браузерах поддерживающих CSS3.</p>
<p>Еще раньше были созданны собственные свойства у браузеров Mozilla Firefox 2 (-moz-border-radius) и Safari 3 (-webkit-border-radius) с аналогичным действием. Еще были слухи о мистическом -khtml-border-radius для Konqueror, но говорят, что это не работает. Корректно поддерживал закругленные уголки только Safari, когда как в Мозиле эти уголки выглядят ужасно — пиксельные, без сглаживания, они могли быть использованы только если цвета не слишком контрастные.</p>
<p>В Firefox 3 была реализована более правильная поддержка таких уголков. Они стали красивые, сглаженные.</p>
<p>Опера и IE никогда и не пытались это реализовать. О них и о некрасивых уголках в FF2 и пойдет речь в этом посте.</p>
<h3>Opera и SVG</h3>
<p>Opera, первый и единственный браузер, в котором была реализована поддержка использования SVG в качестве фона блока. Делается это довольно просто.</p>
<p>В отдельный файл (например bg.svg) пишем SVG-код и сохраняем. Это обычный текстовой файл, только с раcширением svg. В CSS для нужного нам блока прописываем фон:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.block</span> <span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">bg.svg</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Чтобы это были именно закругленные уголки, нужно в SVG-файле написать что-то вроде такого:<br />
<code><br />
&lt;svg xmlns="http://www.w3.org/2000/svg"&gt;<br />
&lt;rect stroke="#000" fill="#DDD" stroke-width="4" width="100%" height="100%" rx="15" ry="15" /&gt;<br />
&lt;/svg&gt;<br />
</code><br />
Атрибуты тэга <strong>rect</strong> меняйте как вам нужно.</p>
<p>В принципе, код не обязательно писать вручную, можно воспользоваться любым векторным редактором, который поддерживает экспорт в SVG.</p>
<h3>Firefox 2</h3>
<p><em>Пиксели, пиксели, пиксели&#8230; Они повсюду, они атакуют&#8230; Они напоминают времена DOS-овских игр&#8230;</em></p>
<p>Исправить можно. Опять же через SVG. Но поскольку FF2 не поддерживает SVG в качестве фона, то придется хитрить и добавить пару лишних блоков, один из которых будет являться внедренным объектом, а в другой будет помещено нужное нам содержимое. Таким образом object будет играть роль подложки.</p>
<p>Добавим позиционирование.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* внешний блок */</span>
<span style="color: #6666ff;">.block</span> <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* объект */</span>
<span style="color: #6666ff;">.block</span> <span style="color: #00AA00;">&gt;</span> object <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>В результате .content будет наложен на object.</p>
<p>Осталось придумать как это показать только FF2 и скрыть от других браузеров. В вашем распоряжении наверное только хаки.</p>
<h3>IE</h3>
<p>Много пелось диферамбов языку VML. Сколько статей о том, на сколько он лучше SVG. А в нашем случае все в основном предлагают использовать код такого плана:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--[if vml]&gt;&lt;v:roundrect class=&quot;block&quot; strokecolor=&quot;#000&quot; strokeweight=&quot;4px&quot; arcsize=&quot;0.15&quot;&gt;&lt;![endif]--&gt;</span>
<span style="color: #808080; font-style: italic;">&lt;!--[if !vml]&gt;--&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;block&quot;</span>&gt;</span><span style="color: #808080; font-style: italic;">&lt;!--&lt;![endif]--&gt;</span>
Content of the block
<span style="color: #808080; font-style: italic;">&lt;!--[if !vml]&gt;--&gt;</span><span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #808080; font-style: italic;">&lt;!--&lt;![endif]--&gt;</span>
<span style="color: #808080; font-style: italic;">&lt;!--[if vml]&gt;&lt;/v:roundrect&gt;&lt;![endif]--&gt;</span></pre></div></div>

<p>Да, вариант не плох. Разве что писанины много. Но есть тут один очень неприятный подводный камень.</p>
<p>Как вы заметили радиус углов задается атрибутом arcsize, куда записывается или некое дробное число или число процентов. Как это понимать?</p>
<p>Оказывается неутомимые редмондовские индусы придумали динамичное решение описав его такой ремаркой:</p>
<blockquote><p>Defines the rounded corners of a rounded rectangle as a percentage of half the smaller dimension of the length and width of a rectangle. 0% would have square corners, and 100% would form circular corners. A square with an ArcSize value of 1.0 would be a circle. The default value is 0.2 (20%).</p></blockquote>
<p>Перевожу: Определяет закругленные углы у прямоугольника как проценты от половины меньшего размера длины или ширины прямоугольника. Т. е. берется ширина или высота (что из них меньше, то и берется), делится пополам и высчитываются проценты от этой величины.</p>
<p>А теперь внимание вопрос: с какого укура нужно было быть, чтобы такое придумать?</p>
<p>Если у вас блоки будут определенной высоты и ширины, то подобрать оптимальные проценты закругления можно. Но если блок динамический, то при его разных размерах будут вычисляться разные радиусы углов. Это совершенно неприемлимо.</p>
<h3>Решение</h3>
<p>Вставляем внутрь блока два VML-блока, выставляем высоту в два раза большую нужного нам радиуса, радиус прописывам 1, и размещаем с абсолютным позиционированием один прямоугольник наверх, другой — вниз.</p>
<p>Тупое, но все-таки решение.</p>
<h3>И на сладкое</h3>
<p>Все это замечательно, но в любом из решений, в моем или каком-нибудь другом будут проблемы с границами, сдвигами, интервалами и размерами.</p>
<p>Я попробовал все выровнять, но использовал очень много хакков, и проверял в браузерах FF2, FF3, Safari 3, IE 6, IE 7, Opera 9.5. Не знаю в каких условиях, но где-то обязательно даст сбой. Так что, мой материал несет учебно-ознакомительный характер, а не руководство к использованию.</p>
<p><a href="http://seleckis.lv/wp-content/uploads/2008/10/rounded.zip">Пример закругленных уголков без использования картинок</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/zakruglennyie-uglyi-bez-ispolzovaniya-kartinok/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Reset CSS</title>
		<link>http://www.seleckis.lv/journal/css/reset-css</link>
		<comments>http://www.seleckis.lv/journal/css/reset-css#comments</comments>
		<pubDate>Mon, 26 May 2008 12:09:27 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Шрифты]]></category>

		<guid isPermaLink="false">http://seleckis.lv/journal/css/reset-css</guid>
		<description><![CDATA[Написал свой Reset, который буду использовать в web-проектах. Конечно по мере исследований он будет дополняться. Раньше использовал известный ресет Эрика Мейера.
Итак:

html,body,address,blockquote,div,p,pre,h1,h2,h3,h4,h5,h6,hr,	/* блочные элементы */
dd,dl,dt,ul,ol,li,						/* списки */
a,abbr,acronym,b,big,br,cite,code,del,dfn,em,i,			/* строчные элементы */
ins,kbd,q,samp,small,span,strong,sub,sup,tt,var,		/* строчные элементы */
img,object,							/* картинки и объекты */
caption,table,tbody,td,tfoot,th,thead,tr,			/* табличные элементы */
input,textarea,select,button,form,fieldset,legend,label,	/* элементы формы */
u,font,s,center,dir,menu,strike,xmp				/* устаревшие элементы */
&#123;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
	text-align: left;
	text-indent: 0;
	font: normal 13px/20px &#34;Lucida Grande&#34;,&#34;Lucida Sans [...]]]></description>
			<content:encoded><![CDATA[<p>Написал свой Reset, который буду использовать в web-проектах. Конечно по мере исследований он будет дополняться. Раньше использовал известный <a href="http://meyerweb.com/eric/thoughts/2008/01/15/resetting-again/">ресет Эрика Мейера</a>.</p>
<p>Итак:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">html<span style="color: #00AA00;">,</span>body<span style="color: #00AA00;">,</span>address<span style="color: #00AA00;">,</span>blockquote<span style="color: #00AA00;">,</span>div<span style="color: #00AA00;">,</span>p<span style="color: #00AA00;">,</span>pre<span style="color: #00AA00;">,</span>h1<span style="color: #00AA00;">,</span>h2<span style="color: #00AA00;">,</span>h3<span style="color: #00AA00;">,</span>h4<span style="color: #00AA00;">,</span>h5<span style="color: #00AA00;">,</span>h6<span style="color: #00AA00;">,</span>hr<span style="color: #00AA00;">,</span>	<span style="color: #808080; font-style: italic;">/* блочные элементы */</span>
dd<span style="color: #00AA00;">,</span>dl<span style="color: #00AA00;">,</span>dt<span style="color: #00AA00;">,</span>ul<span style="color: #00AA00;">,</span>ol<span style="color: #00AA00;">,</span>li<span style="color: #00AA00;">,</span>						<span style="color: #808080; font-style: italic;">/* списки */</span>
a<span style="color: #00AA00;">,</span>abbr<span style="color: #00AA00;">,</span>acronym<span style="color: #00AA00;">,</span>b<span style="color: #00AA00;">,</span>big<span style="color: #00AA00;">,</span>br<span style="color: #00AA00;">,</span>cite<span style="color: #00AA00;">,</span>code<span style="color: #00AA00;">,</span>del<span style="color: #00AA00;">,</span>dfn<span style="color: #00AA00;">,</span>em<span style="color: #00AA00;">,</span>i<span style="color: #00AA00;">,</span>			<span style="color: #808080; font-style: italic;">/* строчные элементы */</span>
ins<span style="color: #00AA00;">,</span>kbd<span style="color: #00AA00;">,</span>q<span style="color: #00AA00;">,</span>samp<span style="color: #00AA00;">,</span>small<span style="color: #00AA00;">,</span>span<span style="color: #00AA00;">,</span>strong<span style="color: #00AA00;">,</span>sub<span style="color: #00AA00;">,</span>sup<span style="color: #00AA00;">,</span>tt<span style="color: #00AA00;">,</span>var<span style="color: #00AA00;">,</span>		<span style="color: #808080; font-style: italic;">/* строчные элементы */</span>
img<span style="color: #00AA00;">,</span>object<span style="color: #00AA00;">,</span>							<span style="color: #808080; font-style: italic;">/* картинки и объекты */</span>
caption<span style="color: #00AA00;">,</span>table<span style="color: #00AA00;">,</span>tbody<span style="color: #00AA00;">,</span>td<span style="color: #00AA00;">,</span>tfoot<span style="color: #00AA00;">,</span>th<span style="color: #00AA00;">,</span>thead<span style="color: #00AA00;">,</span>tr<span style="color: #00AA00;">,</span>			<span style="color: #808080; font-style: italic;">/* табличные элементы */</span>
input<span style="color: #00AA00;">,</span>textarea<span style="color: #00AA00;">,</span>select<span style="color: #00AA00;">,</span>button<span style="color: #00AA00;">,</span>form<span style="color: #00AA00;">,</span>fieldset<span style="color: #00AA00;">,</span>legend<span style="color: #00AA00;">,</span>label<span style="color: #00AA00;">,</span>	<span style="color: #808080; font-style: italic;">/* элементы формы */</span>
u<span style="color: #00AA00;">,</span><span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">,</span>s<span style="color: #00AA00;">,</span><span style="color: #993333;">center</span><span style="color: #00AA00;">,</span>dir<span style="color: #00AA00;">,</span>menu<span style="color: #00AA00;">,</span>strike<span style="color: #00AA00;">,</span>xmp				<span style="color: #808080; font-style: italic;">/* устаревшие элементы */</span>
<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">baseline</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-indent</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span> <span style="color: #933;">13px</span>/<span style="color: #933;">20px</span> <span style="color: #ff0000;">&quot;Lucida Grande&quot;</span><span style="color: #00AA00;">,</span><span style="color: #ff0000;">&quot;Lucida Sans Unicode&quot;</span><span style="color: #00AA00;">,</span>Lucida<span style="color: #00AA00;">,</span>arial<span style="color: #00AA00;">,</span><span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Ну это стандартно, частично взято у Эрика. Перечисляются все возможные тэги. Первые пять строчек, я думаю понятны.</p>
<p>Шрифт я указываю явный, причём в пикселях. Я никогда не использовал em или проценты и долго терзал себя мыслью, что бедные, несчастные пользователи IE6 не смогут увеличить размер шрифта, а я такой нехороший не даю им такой возможности.</p>
<p>С некоторых пор я перестал комплексовать и больше не волнуюсь за пользователей IE6. Пусть сами за себя волнуются. Начнём с того, что если пользователи Недобраузера не могут поставить себе другой, более удобный и современный браузер, то я сомневаюсь в том, что они умеют в нём менять размер шрифта. Они будут щуриться, придвигаться поближе к монитору. Тем более, что в IE6 для этого нет горячих клавиш.</p>
<p>Совсем мои волнения угасли после прочтения статьи <a href="http://alistapart.com/articles/settingtypeontheweb">Setting Type on the Web to a Baseline Grid</a>, а точнее её перевода <a href="http://designformasters.info/posts/baseline-grid/">Базовая сетка в веб дизайне</a>.</p>
<blockquote cite="http://alistapart.com/articles/settingtypeontheweb"><p>
At some point as designers we have to strike a balance between creating pixel-perfect layouts and infinitely flexible ones. When you get down to it, resizable text is primarily an accessibility feature, not a design feature. Ideally it’s something that should be provided by the browser, no matter how the page is built, and in modern browsers it is. As long as all your content is readable and accessible at all sizes, it’s not necessarily true that the design must maintain integrity as you scale.</p></blockquote>
<p>И, собственно, перевод:</p>
<blockquote cite="http://designformasters.info/posts/baseline-grid"><p>
С другой точки зрения как дизайнеры мы должны стремиться к балансу между четкой вплоть до пикселя разметкой, и бесконечной гибкостью. Изменяемый размер шрифтов это элемент аксессибилити, а не дизайна, в идеале он должен поддерживаться браузером, не зависимо от того, как сделана страница, и многие современные браузеры так и поступают.
</p></blockquote>
<p>Использование шрифта Lucida Grande обусловленно переходом на MacOS и прочтением <a href="http://habrahabr.ru/blog/typography/42685.html">серии статей о веб-типографике</a>. Не волнуйтесь в IE6 он тоже замечательно отображается, правда только если размер больше 11px, ведь IE6 не умеет сглаживать шрифты, если это не включено для всей системы.</p>
<p>Lucida Sans Unicode — стандартный шрифт в Windows, который особо не используется, но по характеристикам схож с Lucida Grande. Затем идёт nix-овая версия Lucida. Ну а в случае если все три шрифта в системе не найдены, их заменит Arial или любой другой шрифт без засечек.</p>
<p>На самом деле, этот пункт самый настраиваемый в зависимости от проекта.</p>
<p>Идём дальше.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">applet<span style="color: #00AA00;">,</span>iframe<span style="color: #00AA00;">,</span><span style="color: #993333;">embed</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Убираю с глаз долой устаревшие и нестандартные элементы.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">hr<span style="color: #00AA00;">,</span>img<span style="color: #00AA00;">,</span>object <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Границу убираю только у приведённых элементов. Элементы формы я, как видите, не трогаю, поскольку лучше все контролы оставить родными для браузера, чем устраивать на сайте винегрет. Например, поля ввода и кнопки можно стилизовать под сайт, а radio, checkbox, select, textarea, не получится. Если нужно стилизовать, например, поле для поиска, то лучше с ним работать отдельно.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">input<span style="color: #00AA00;">,</span>button<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">visible</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Убрали лишние внутренние отступы у кнопок в IE.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">input<span style="color: #00AA00;">,</span>select<span style="color: #00AA00;">,</span>button <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Это сделано для того, чтобы все элементы формы, располагались по центру строки, а не скакали в разных браузерах на разных уровнях.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">textarea <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>А, поскольку высота textarea обычно больше одной строки, то пусть лучше он позиционируется по верху строки, тогда лейбл для этого поля всегда будет сверху.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">select<span style="color: #00AA00;">&#91;</span><span style="color: #000000; font-weight: bold;">size</span><span style="color: #00AA00;">&#93;</span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
select<span style="color: #00AA00;">&#91;</span><span style="color: #000000; font-weight: bold;">size</span><span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #00AA00;">&#93;</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>А вот здесь применена небольшая хитрость. Поскольку select может быть как высотой в одну строку, так и больше, то нужно всем селектам имеющим атрибут size установить вертикальное позиционирование по верху. Ну а если какой-то селект имеет атрибут size, но его значение равно 1, т. е. его высота будет равна строке, то я возвращаю ему позиционирование посередине. К сожалению, в IE6 это не работает.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">fieldset legend <span style="color: #00AA00;">&#123;</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-7px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Нет я не использую хаки, просто для наглядности и чтоб покороче. Вставляйте в свой IE6-7.css (наверняка что-то подобное у вас есть) и инклудируйте с помощью Conditional Comments. У IE8 какое-то странное отображение legend, так что для него я ничего не делал.</p>
<p>Вообще у IE8 какое-то своё представление о vertical-align: middle для элементов формы. Такое ощущение, что по центру строки позиционируется базовая линия элемента формы, а не весь элемент.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">caption<span style="color: #00AA00;">,</span>td<span style="color: #00AA00;">,</span>th<span style="color: #00AA00;">,</span>tr <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
table <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">collapse</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Здесь думаю понятно.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">optgroup <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">white</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
optgroup option <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">padding-left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">22px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>При использовании optgroup в Опере, почему-то у него чёрный фон и белые буквы. Исправляем этот бред.<br />
Убрать курсивное начертание удаётся только у Firefox. Это единственный браузер с настраиваемыми шрифтами и отступами в optgroup. Соответственно только для Firefox будет работать отступ в 22px (больше всего похожий на отступ в других браузерах).</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">hr <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">7px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Об этом я писал в <a href="http://seleckis.lv/journal/css/gorizontalnyiy-razdelitel-lt-hr-gt">предыдущей статье</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">ol li<span style="color: #00AA00;">,</span> ul li<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Заранее исправляем баг в IE если внутри элементов списка будут содержаться элементы с «display: block».</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">ol li<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">decimal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
ul li<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">disc</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Тоже понятно.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">q <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">quotes</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\0</span>0AB'</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\0</span>0BB'</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\2</span>01E'</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\2</span>01C'</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
q<span style="color: #3333ff;">:before	</span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\0</span>0AB'</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
q<span style="color: #3333ff;">:after		</span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\0</span>0BB'</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
q q<span style="color: #3333ff;">:before	</span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\2</span>01E'</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>
q q<span style="color: #3333ff;">:after	</span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">'<span style="color: #000099; font-weight: bold;">\2</span>01C'</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Русские кавычки внешние и внутренние. Причём в дублированном виде, поскольку Safari перезаписывает quotes, с помощью q:before и q:after.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">sub<span style="color: #00AA00;">,</span> sup<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">11px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
sub<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>	
<span style="color: #00AA00;">&#125;</span>
sup<span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-5px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Этот метод позиционирования верхнего и нижнего индексов, на мой взгляд наиболее удобен, поскольку не будет происходить сдвига верхней и нижней строки.</p>
<p>Всё больше и больше убеждаюсь, что для каждого верстальщика и для каждого проекта reset будет свой. Что-то можно взять за основу, но по ходу дела и с накоплением опыта всё будет изменяться.</p>
<p><a href='http://seleckis.lv/wp-content/uploads/2008/05/ns_resetcss.zip' title=''>Мой ресет одним файлом</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/reset-css/feed</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Горизонтальный разделитель &lt;hr /&gt;</title>
		<link>http://www.seleckis.lv/journal/css/gorizontalnyiy-razdelitel-lt-hr-gt</link>
		<comments>http://www.seleckis.lv/journal/css/gorizontalnyiy-razdelitel-lt-hr-gt#comments</comments>
		<pubDate>Sat, 24 May 2008 13:00:43 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://seleckis.lv/journal/css/gorizontalnyiy-razdelitel-lt-hr-gt</guid>
		<description><![CDATA[Существует элемент &#60;hr /&#62;. Существует он для логического разделения блоков текста. Используется в том случае, если нужно разделить некоторый текст, а подзаголовок неуместен или необязателен. Именно поэтому следует использовать именно этот элемент, а не заменители, на подобие &#60;div class=&#8221;hr&#8221;&#62;&#60;/div&#62;
Всемирно известная проблема (я говорю об MS IE) отображает горизонтальный разделитель с дополнительными отступами, причём, такое ощущение, [...]]]></description>
			<content:encoded><![CDATA[<p>Существует элемент &lt;hr /&gt;. Существует он для логического разделения блоков текста. Используется в том случае, если нужно разделить некоторый текст, а подзаголовок неуместен или необязателен. Именно поэтому следует использовать именно этот элемент, а не заменители, на подобие &lt;div class=&#8221;hr&#8221;&gt;&lt;/div&gt;</p>
<p>Всемирно известная проблема (я говорю об MS IE) отображает горизонтальный разделитель с дополнительными отступами, причём, такое ощущение, что эти отступы прописаны ему на более низком уровне, не поддаваемом изменению с помощью css. Поэтому, чтобы сделать кроссбраузерные отступы у этого элемента, приходится идти на всяческие ухищрения.</p>
<p>Прочитав пару материалов по этому поводу (<a href="http://dimox.name/tag-hr-and-crossbrowser-margin/">Тег &lt;hr /&gt; и кроссбраузерный отступ</a>, <a href="http://www.robertnyman.com/2007/03/09/a-hard-challenge-styling-an-hr-element/">A HaRd challenge &#8211; Styling An HR Element</a>) и проанализировав, выяснил, что <strong>можно</strong> решить проблему кроссбраузерно.</p>
<p>Дмитрий Лялин, предлагал не лишать разделитель отступов, а наоборот, оставить, но везде сделать одинаковые. В теме <strong>A HaRd Challenge &#8211; Styling An HR Element</strong> предлагают убрать их вообще.</p>
<p>Собственно, получаем первое решение — без отступов:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">hr <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> !important<span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-4px</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-10px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>Заметьте, для исправления представления в IE6, я предлагаю вместо хакков и Conditional Comments использовать !important. Для всех браузеров кроме IE6 эта строчка будет приоритетной. А на следующей строчке можем написать исправление для IE6, который будет игнорировать !important.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-4px</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">-10px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span></pre></div></div>

<p>эта строчка произвольная. Нет лекарства в виде какого-то точного значения. При изменении высоты строки, меняются и отступы в IE. И предлагаемый комментаторами в теме <strong>A HaRd Challenge &#8211; Styling An HR Element</strong> вариант -7px годится лишь для того, чтобы можно было использовать border для верхнего и нижнего элемента без залезания на разделитель. Мой вариант был для меня самым оптимальным для высоты строки 36px, с которой я экспериментировал.</p>
<p>display: block — предназначен для того, чтобы в IE6 сработал верхний отрицательный margin.<br />
color: red — чтобы границы в IE стали красными, а то они какие-то серенькие.</p>
<p>Но всё-таки осталась проблема — IE7. Он как и IE6 устанавливает для &lt;hr /&gt; отступ в 7px, но в отличае от IE6, он понимает свойства с флагом !important (правда только в standart mode. Если убрать doctype, то IE7 резко тупеет). Придётся использовать хакки или Conditional Comments. Последние предпочтительнее, например, потому что известный хакк для IE7:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #00AA00;">*+</span>html hr <span style="color: #00AA00;">&#123;</span> ... <span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>работает и для IE8 для которого исправления не требуются.</p>
<p>Ещё одна проблема безотступного &lt;hr /&gt; — налезание тех самых 7 пикселов на следующий за ним блок в IE6 и IE7, что не позволяет использовать для этого блока border иначе граница выглядит слегка порубленной.</p>
<p>Вот что в итоге получилось:</p>
<div style="text-align: center"><img src='http://seleckis.lv/wp-content/uploads/2008/05/hr.png' alt='' /></div>
<p>Borders я добавил для наглядности, если их отключить — выглядит на порядок красивше.</p>
<p>В общем, если вам не нужны отступы или нужны, но менее 7px — используйте вышеприведённый пример, а если вы не против отступов у горизонтального разделителя от 7px и более, то используйте следующий вариант:</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">hr <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">7px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">*</span><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>*margin: 0 — хак для IE6 и IE7 который будет игнорироваться браузером IE8. Но лучше так не делать. Лучше все исправления записывать в отдельный файл и подключать с помощью Conditional Comments. Мало ли что&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seleckis.lv/journal/css/gorizontalnyiy-razdelitel-lt-hr-gt/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>
