<?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>jQuery и другое... &#187; css</title>
	<atom:link href="http://www.linkexchanger.su/category/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linkexchanger.su</link>
	<description>css, html, php, javascript, jQuery, ajax ... - решения, примеры, рецепты</description>
	<lastBuildDate>Sun, 08 Jan 2012 13:25:49 +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>CSS: использование свойства overflow для создания thumbnail&#8217;ов с изменяющимися размерами.</title>
		<link>http://www.linkexchanger.su/2008/63.html</link>
		<comments>http://www.linkexchanger.su/2008/63.html#comments</comments>
		<pubDate>Wed, 16 Jul 2008 05:38:00 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/63.html</guid>
		<description><![CDATA[Эту работу проделал Alen Grakalic. В статье CSS: создание диаграмм я уже знакомил читателей блога с его оригинальными идеями и вот теперь нашел еще одно интересное, изящное решение, с которым и предлагаю подробно познакомиться&#8230;
Итак, для чего это? Иногда на странице не имеется достаточно пространства, чтобы показать большие изображения, но все же очень хочется избежать маленьких [...]]]></description>
			<content:encoded><![CDATA[<p>Эту работу проделал <a href="http://www.cssglobe.com/post/1305/create-resizing-thumbnails-using-overflow-property">Alen Grakalic</a>. В статье <a href="http://www.linkexchanger.su/2008/38.html">CSS: создание диаграмм</a> я уже знакомил читателей блога с его оригинальными идеями и вот теперь нашел еще одно интересное, изящное решение, с которым и предлагаю подробно познакомиться&#8230;<span id="more-63"></span></p>
<p>Итак, для чего это? Иногда на странице не имеется достаточно пространства, чтобы показать большие изображения, но все же очень хочется избежать маленьких и едва распознаваемых картинок. Используя предложенную уловку, мы ограничиваем видимые размеры изображения, и показываем полноразмерное изображение, только когда пользователь наводит указатель мыши на миниатюрное изображение. Впрочем, посмотрите все на примере:<br />
<iframe src="http://www.linkexchanger.su/example_css/cssthumb/cssthumb.html" style="border: medium none " height="160" width="420"></iframe></p>
<blockquote><p>Вы можете скачать <a href="http://www.linkexchanger.su/example_css/cssthumb/cssthumb.zip">исходный код</a> примера, и воспроизвести этот пример на своем сайте.</p></blockquote>
<p>То, что мы видим, это не фактическое изменение размеров изображения. Это &#8211; изменение размеров видимой области при наведении указателя мыши. Здесь используется CSS-свойство overflow.</p>
<p>Свойство <strong>overflow</strong> определяет отображение контента, когда он переполняет область контейнера. Если размеры контейнера ограничены по какой-либо причине, свойство overflow используют, чтобы определить поведение при переполнении контейнера. Возможные значения свойства overflow: visible, hidden, scroll и auto. На использовании свойства overflow и построен этот трюк. По умолчанию часть картиники скрывается, и появляется только при наведении указателя мыши.</p>
<p>Идея состоит в том, чтобы поместить изображение в какой-либо контейнер. Договоримся о том, что таким контейнером для изображения будет являться тэг <strong>a</strong>. Мы устанавливаем размеры (ширину и высоту) контейнера в требуемые значения, и устанавливаем свойство position контейнера relative. Изображение же внутри имеет position:absolute. Используем отрицательные значения свойств top и left, чтобы сместить изображение. Таким образом мы теперь видим только часть картинки в нашем контейнере. Оставшаяся часть картинки скрыта. И показана целиком она будет только лишь при наведении указателя мыши, т.е. при a:hover мы установим свойству overflow значение visible и покажем картинку целиком.</p>
<p>HTML-код &#8211; проще не бывает:</p>
<pre class="brush: xml;">
&lt;ul id=&quot;thumbs&quot;&gt;
  &lt;li&gt;
  &lt;a href=&quot;http://example.com/&quot;&gt;&lt;img src=&quot;1.jpg&quot; /&gt;&lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://example.com/&quot;&gt;&lt;img src=&quot;2.jpg&quot; /&gt;&lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://example.com/&quot;&gt;&lt;img src=&quot;3.jpg&quot; /&gt;&lt;/a&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;a href=&quot;http://example.com/&quot;&gt;&lt;img src=&quot;4.jpg&quot; /&gt;&lt;/a&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Вот фрагмент CSS-кода с комментариями:</p>
<pre class="brush: css;">
/* убираем поля и отступы, */
/* скрываем маркеры списка */
ul#thumbs, ul#thumbs li{
  margin:0;
  padding:0;
  list-style:none;
}

/* включаем элементы списка в плавающую модель, */
/* смещая их влево и таким образом вытягивая по */
/* горизонтали, заодно ставим легкую рамочку и */
/* задаем небольшое поле справа */
ul#thumbs li{
  float:left;
  margin-right:2px;
  border:1px solid #999;
  padding:1px;
}

/* вот он, контейнер для картинки, &quot;глазок&quot;, в */
/* котором отображается ее часть */
ul#thumbs a{
  display:block;
  float:left;
  width:70px; /* ширина видимой части */
  height:70px; /* высота видимой части */
  line-height:70px;
  overflow:hidden; /* скрываем &quot;лишнее&quot; */
  position:relative; /* это важно! */
  z-index:1;
}

/* ну и сама картинка позиционируется абсолютно, */
/* ее верхний левый край смещается в невидимую */
/* область */
ul#thumbs a img{
  float:left;
  position:absolute;
  top:-10px;
  left:-35px;
}</pre>
<p>Теперь CSS-код, который определит поведение при наведении указателя мыши на картинку.</p>
<pre class="brush: css;">
/* показываем картинку полностью, &quot;поднимаем&quot; */
/* ее над соседними картинками и убираем рамку с */
/* элемента  - она теперь не нужна. */
ul#thumbs a:hover{
  overflow:visible;
  z-index:1000;
  border:none;
}
/* а вот полной картинке рамочку добавим */
ul#thumbs a:hover img{
  border:1px solid #999;
  background:#fff;
  padding:2px;
}</pre>
<p>Эту идею можно использовать и для единичной картинки. Исходный код разбирать подробно наверное уже не стоит, потому как в интересующей нас части он ничем не отличается от уже разобранного нами. А пример &#8211; пожалуйста:<br />
<iframe src="http://www.linkexchanger.su/example_css/cssthumb/cssthumb_2.html" style="border: medium none " height="200" width="420"></iframe></p>
<blockquote><p>Вы можете скачать <a href="http://www.linkexchanger.su/example_css/cssthumb/cssthumb_2.zip">исходный код</a> примера, и воспроизвести этот пример на своем сайте.</p></blockquote>
<p>Вот и все. Надеюсь, кому-нибудь пригодится.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/63.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>CSS: создание диаграмм</title>
		<link>http://www.linkexchanger.su/2008/38.html</link>
		<comments>http://www.linkexchanger.su/2008/38.html#comments</comments>
		<pubDate>Mon, 18 Feb 2008 05:48:51 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[chart]]></category>
		<category><![CDATA[диаграмма]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/38.html</guid>
		<description><![CDATA[За создание диаграмм с помощью только CSS спасибо Alen Grakalic, а я в свою очередь немного &#171;оживил&#187; диаграмму с помощью php и предлагаю посмотреть и детально разобрать как это работает&#8230;

Вы можете скачать исходный код примера, и воспроизвести это пример на своем сайте.
В этом примере не используется ни JavaScript, ни какие-либо другие приложения. Используется только HTML-разметка [...]]]></description>
			<content:encoded><![CDATA[<p>За создание диаграмм с помощью только CSS спасибо <a href="http://cssglobe.com/post/1272/pure-css-data-chart" target="_blank">Alen Grakalic</a>, а я в свою очередь немного &laquo;оживил&raquo; диаграмму с помощью php и предлагаю посмотреть и детально разобрать как это работает&#8230;<span id="more-38"></span></p>
<p><iframe src="http://www.linkexchanger.su/example_css/csschart/index.php" style="border: medium none " width="420" height="500"></iframe></p>
<blockquote><p>Вы можете скачать <a href="http://www.linkexchanger.su/example_css/csschart/chart.zip">исходный код</a> примера, и воспроизвести это пример на своем сайте.</p></blockquote>
<p>В этом примере не используется ни JavaScript, ни какие-либо другие приложения. Используется только HTML-разметка и CSS.</p>
<blockquote><p>Повторюсь, я немного &laquo;оживил&raquo; пример, добавив php-код, который генерирует набор случайных двузначных чисел. Нажмите кнопку &laquo;Пересчитать&raquo; и диаграмма изменится.</p></blockquote>
<p>Стоит только осознать идею Алена, как все становится понятным. Для построения диаграммы выбран элемент <strong>dl</strong> (definition list). Но можно рассматривать элементы <strong>dt</strong> (definition titles) как пункты по оси X и элементы <strong>dd</strong> (definition descriptions) как значения по оси Y.</p>
<p>Чтобы понять это, давайте посмотрим на пример разметки диаграммы без стилевого оформления. Вот так это выглядит:</p>
<dl>
<dt>1-й день</dt>
<dd>27</dd>
<dt>2-й день</dt>
<dd>53</dd>
</dl>
<p>А вот соответствующий этому HTML-код:</p>
<pre class="brush: xml;">
&lt;dl&gt;
  &lt;dt&gt;1-й день&lt;/dt&gt;
  &lt;dd&gt;27&lt;/dd&gt;
  &lt;dt&gt;2-й день&lt;/dt&gt;
  &lt;dd&gt;53&lt;/dd&gt;
&lt;/dl&gt;</pre>
<p>Далее добавляем внутрь элементов <strong>dd</strong> элементы <strong>span</strong> и внутри них элементы <strong>em</strong>. Элементам <strong>span</strong> назначаем имена классов. В итоге должно получиться вот это:</p>
<pre class="brush: xml;">
&lt;dd&gt;&lt;span class=&quot;type2 p80&quot;&gt;&lt;em&gt;80&lt;/em&gt;&lt;/span&gt;&lt;/dd&gt;</pre>
<p>Теперь начнем разбираться с таблицей стилей.</p>
<pre class="brush: css;">dl#csschart, dl#csschart dt, dl#csschart dd{
    margin:0;
    padding:0;
}
dl#csschart{
    background:url(bg_chart.gif) no-repeat 0 0;
    width:400px;
    height:400px;
}</pre>
<p>Удаляем установленные по умолчанию поля и отступы и в следующем правиле задаем для элемента <strong>dl</strong> свойство <strong>background</strong> и определяем его ширину <strong>width</strong> и высоту <strong>height</strong>.<br />
Файл <strong>bg_chart.gif</strong> &#8211; картинка фона для диаграммы в которой нарисованы оси X и Y. Картинка как раз имеет размеры 400х400 px.</p>
<pre class="brush: css;">dl#csschart dt{
    display:none;
}</pre>
<p>Делаем невидимыми элементы dt, поскольку информация, содержащаяся в них (1-й день, 2-й день,&#8230;) нам не нужна.<br />
Дальше &#8211; интереснее&#8230;. Элемент <strong>dd</strong> содержит два дочерних элемента &#8211; <strong>span</strong> и <strong>em</strong>. Таким образом можно манипулировать тремя элементами.<br />
Элементы <strong>dd</strong> позиционируются с помощью добавления полей, установки их высоты в 100% и ширины в соответствии с шириной шага сетки на фоновой картинке. Элементы <strong>dd</strong> включаются в &laquo;плавающую&raquo; модель (<strong>float:left;</strong>), используется относительное (<strong>position:relative;</strong>) позиционирование, что позволяет сопоставлять дочерние по отношению к dd элементы  (<strong>span</strong> и <strong>em</strong>) со своим родителем (<strong>dd</strong>). Ниже это можно увидеть в CSS-коде.</p>
<pre class="brush: css;">dl#csschart dd{
  position:relative;
  float:left;
  width:36px;
  height:360px;
  margin-top:20px;
}
dl#csschart dd.first{
  margin-left:22px;
}</pre>
<p>Элементы <strong>span</strong> выполняют роль колонок, позиционируются абсолютно относительно своего родительского элемента (<strong>dd</strong>) и располагаются в самом низу, что позволяет им &laquo;вырастать&raquo; до нужного размера, базируясь на значении количества процентов. Элементы em &#8211; квадратики, где цифрами отображается количество процентов. Кусочек этого кода приведен ниже:</p>
<pre class="brush: css;">dl#csschart span{
  position:absolute;
  display:block;
  width:33px;
  bottom:0;
  left:0;
  z-index:1;
  color:#555;
  text-decoration:none;
}
dl#csschart span em{
  display:block;
  font-style:normal;
  float:left;
  line-height:200%;
  background:#fff;
  color:#555;
  border:1px solid #b1b1b1;
  position:absolute;
  top:50%;
  left:3px;
  text-align:center;
  width:23px;
}</pre>
<p>Но как же получается требуемая высота?<br />
Давайте снова обратим внимание на HTML-разметку.</p>
<pre class="brush: xml;">
&lt;dd&gt;&lt;span class=&quot;type2 p80&quot;&gt;&lt;em&gt;80&lt;/em&gt;&lt;/span&gt;&lt;/dd&gt;</pre>
<p>Мы увидим, что элемент <strong>span</strong> имеет <strong>два css класса</strong>.<br />
Первый класс определяет тип столбика диаграммы, посмотрите css-код и тут все станет понятно:</p>
<pre class="brush: css;">dl#csschart span.type1 {
  background:url(type1.gif) repeat-y;
}
dl#csschart span.type2{
  background:url(type2.gif) repeat-y;
}
dl#csschart span.type3{
  background:url(type3.gif) repeat-y;
}
dl#csschart span.type4{
  background:url(type4.gif) repeat-y;
}</pre>
<p>Просто в качестве фонового изображения используются небольшие разноцветные полоски.<br />
Второй же класс (p0 &#8211; p100) фактически определяет высоту элементов <strong>span</strong>.</p>
<pre class="brush: css;">dl#csschart span.p0{height:0%;}
dl#csschart span.p1{height:1%;}
dl#csschart span.p2{height:2%;}
dl#csschart span.p3{height:3%;}
dl#csschart span.p4{height:4%;}
.........................
dl#csschart span.p99{height:99%;}
dl#csschart span.p100{height:100%;}</pre>
<p>Вот так работает эта штука.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/38.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS: горизонтальное и вертикальное центрирование элемента в окне браузера.</title>
		<link>http://www.linkexchanger.su/2008/29.html</link>
		<comments>http://www.linkexchanger.su/2008/29.html#comments</comments>
		<pubDate>Wed, 06 Feb 2008 21:10:21 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[верстка]]></category>
		<category><![CDATA[макет]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/29.html</guid>
		<description><![CDATA[Наверняка это может когда-нибудь понадобится. Например при создании страницы-входа на сайт или формы авторизации для входа в какую-либо закрытую часть сайта. В этом случае очень хочется, чтобы элементы дизайна располагались бы в центре окна браузера как по горизонтали, так и по вертикали.
Для примера придумаем несложный HTML-код. Пусть это будет элемент DIV, внутри которого есть картинка [...]]]></description>
			<content:encoded><![CDATA[<p>Наверняка это может когда-нибудь понадобится. Например при создании страницы-входа на сайт или формы авторизации для входа в какую-либо закрытую часть сайта. В этом случае очень хочется, чтобы элементы дизайна располагались бы в центре окна браузера как по горизонтали, так и по вертикали.<span id="more-29"></span></p>
<p>Для примера придумаем несложный HTML-код. Пусть это будет элемент <strong>DIV</strong>, внутри которого есть картинка и текст. Ну например вот такой:</p>
<pre class="brush: xml;">
&lt;div id=&quot;example&quot;&gt;
 &lt;img src=&quot;http://myserver.ru/img/im1.png&quot; alt=&quot;Это картинка&quot; /&gt;
  А это просто текст слов...
&lt;/div&gt;</pre>
<p>Я не буду задавать какие-либо стили для элементов, находящихся внутри блока <strong>#example</strong>, ведь это только пример, а вот CSS-правило для этого блока разберем подробно.</p>
<pre class="brush: css;">#example {
  position:absolute;
  top:50%;
  left:50%;
  width:250px;
  height:200px;
  margin-left:-125px;
  margin-top:-100px;
  border:1px dotted red;
}</pre>
<blockquote><p>Я исхожу из того, что нам заранее известны ширина и высота центрируемого элемента. Ведь именно этими величинами мы попытаемся воспользоваться, чтобы центрировать элемент на в окне браузера (именно в окне браузера, а не на экране).</p></blockquote>
<p>Задавая элементу <strong>#example</strong> абсолютное позиционирование, мы извлекаем его из нормального потока и имеем возможность поместить в любом месте страницы. Что мы и делаем, помещая верхний левый угол элемента в центр окна браузера, задавая свойствам <strong>top</strong> и <strong>left</strong> значения <strong>50%</strong>.</p>
<p>Зная ширину (250px) и высоту (200px) элемента <strong>#example</strong> мы задаем свойствам <strong>margin-left</strong> и <strong>margin-top</strong> отрицательные значения, равные половине ширины и, соответственно высоты центрируемого элемента, заставляя его таким образом сдвинуться влево и вверх и занять место в центре окна браузера.</p>
<p>Свойство <strong>border</strong> добавлено лишь для наглядности.</p>
<p>Необходимо отметить, что такое центрирование все-таки немного приблизительное, поскольку на разных компьютерах текст может выводиться разной высоты, разные браузеры будут учитывать или не учитывать ширину полосы прокрутки (даже если фактически ее нет) и т.д.</p>
<p>Но все-таки для большинства задач это решение вполне подойдет.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/29.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>CSS: создание горизонтального текстового меню на основе списка.</title>
		<link>http://www.linkexchanger.su/2008/28.html</link>
		<comments>http://www.linkexchanger.su/2008/28.html#comments</comments>
		<pubDate>Mon, 04 Feb 2008 21:11:43 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[ul]]></category>
		<category><![CDATA[меню]]></category>
		<category><![CDATA[список]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/28.html</guid>
		<description><![CDATA[Мы уже пробовали создавать вертикальное текстовое меню на основе списка. Попробуем теперь использовать список для создания горизонтального текстового меню.
Как всегда первый шаг &#8211; это создание HTML-разметки.

&#60;ul&#62;
  &#60;li&#62;&#60;a href=&#34;/&#34;&#62;Главная&#60;/a&#62;&#60;/li&#62;
  &#60;li&#62;&#60;a href=&#34;products.html&#34; id=&#34;current&#34;&#62;Продукция&#60;/a&#62;&#60;/li&#62;
  &#60;li&#62;&#60;a href=&#34;gallery.html&#34;&#62;Фото&#60;/a&#62;&#60;/li&#62;
  &#60;li&#62;&#60;a href=&#34;responses.html&#34;&#62;Отзывы&#60;/a&#62;&#60;/li&#62;
  &#60;li&#62;&#60;a href=&#34;feedback.html&#34;&#62;Контакты&#60;/a&#62;&#60;/li&#62;
&#60;/ul&#62;

Здесь необходимо обратить внимание на пункт, где встречается id=&#187;current&#187;. В реально работающем меню необходимо [...]]]></description>
			<content:encoded><![CDATA[<p>Мы уже пробовали создавать вертикальное текстовое меню на основе списка. Попробуем теперь использовать список для создания горизонтального текстового меню.<span id="more-28"></span></p>
<p>Как всегда первый шаг &#8211; это создание HTML-разметки.</p>
<pre class="brush: xml;">
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/&quot;&gt;Главная&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;products.html&quot; id=&quot;current&quot;&gt;Продукция&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;gallery.html&quot;&gt;Фото&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;responses.html&quot;&gt;Отзывы&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;feedback.html&quot;&gt;Контакты&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<blockquote><p>Здесь необходимо обратить внимание на пункт, где встречается <strong>id=&raquo;current&raquo;</strong>. В реально работающем меню необходимо определять текущую страницу при ее загрузке и присваивать этот <strong>id</strong> соответствующему пункту.</p></blockquote>
<p>А теперь приведу таблицу стилей для организации этого списка в горизонтальное меню.</p>
<pre class="brush: css;">ul {
  padding:3px 0;
  margin-left:0;
  border-bottom:1px solid #003;
  font:bold 8pt Verdana, sans-serif;
}
ul li {
  list-style:none;
  margin:0;
  display:inline;
}
ul li a {
  padding:3px 0.5em;
  margin-left:3px;
  border:1px solid #003;
  border-bottom:none;
  background-color:#FFA6BD;
  text-decoration:none;
  color:#AD2039;
}
ul li a:hover {
  background-color:#AD2039;
  color:#FFA6BD;
}
ul li a#current {
  background-color:#fff;
  border-bottom:1px solid #fff;
}</pre>
<p>Ничего особенно хитрого тут нет. Сначала зададим отступы и левое поле для элемента <strong>ul</strong>, там же определяем нижнюю рамку для всего элемента и шрифт, а вот затем начинается более интересное правило. Для <strong>ul li</strong> мы скрываем стандартные маркеры, полям задаем значение 0 и наконец <strong>display:inline;</strong> &#8211; вот что заставляет наш список &laquo;вытянуться&raquo; в строку.</p>
<p>Дальше описываем элемент <strong>a</strong>, задавая ему отступы, поля, рамки, определяя цвет фона и шрифта. Обращу внимание разве что на определения свойства <strong>border</strong>. Сначала заданы значения свойства <strong>border</strong> для всех четырех сторон, а в следующей строке мы пишем <strong>border-bottom:none;</strong>, т.е. отменили рамку снизу. Такой вариант написания вполне имеет право на существование.</p>
<p>Далее определяем стили элемента <strong>а</strong> при наведении на него указателя мыши &#8211; тут мы изменим только цвет фона и цвет текста.</p>
<p>И самое последнее &#8211; стили для элемента имеющего <strong>id=&raquo;current&raquo;</strong>. Цвет фона задаем совпадающим с цветом основного фона страницы, как впрочем и цвет нижней рамки.</p>
<p>Вот, что у нас получилось в итоге.<br />
<iframe src="http://www.linkexchanger.su/example_css/ul-menu-horizontal.html" style="border: medium none " height="70" width="420"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/28.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CSS: создание текстового меню с визуальными эффектами на основе списка.</title>
		<link>http://www.linkexchanger.su/2008/27.html</link>
		<comments>http://www.linkexchanger.su/2008/27.html#comments</comments>
		<pubDate>Sun, 03 Feb 2008 21:12:05 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[ul]]></category>
		<category><![CDATA[меню]]></category>
		<category><![CDATA[список]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/27.html</guid>
		<description><![CDATA[Попробуем создать навигационное меню для сайта, но при его создании будем учитывать некоторые ограничения. Например, что это меню не должно использовать JavaScript, но в то же время иметь визуальные эффекты. Это меню должно оставаться работоспособным даже в случае, если в браузере пользователя отключено отображение стилей.
Итак, приступим. Меню будет представлять собой список, так как и теоретически [...]]]></description>
			<content:encoded><![CDATA[<p>Попробуем создать навигационное меню для сайта, но при его создании будем учитывать некоторые ограничения. Например, что это меню не должно использовать JavaScript, но в то же время иметь визуальные эффекты. Это меню должно оставаться работоспособным даже в случае, если в браузере пользователя отключено отображение стилей.<span id="more-27"></span></p>
<p>Итак, приступим. Меню будет представлять собой список, так как и теоретически и практически это наилучший способ структурирования меню.  Прежде всего создадим HTML-разметку.</p>
<pre class="brush: xml;">
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/&quot;&gt;Главная&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;О компании&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;products.html&quot;&gt;Каталог продукции&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;gallery.html&quot;&gt;Фото объектов&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;responses.html&quot;&gt;Отзывы клиентов&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;scheme.html&quot;&gt;Схема проезда&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;feedback.html&quot;&gt;Форма для связи&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>Далее приведу файл стилей, который будет подробно прокомментирован.</p>
<pre class="brush: css;">ul {
  list-style:none;
  margin:0;
  padding:0;
  font-family:Arial, Helvetica, sans-serif;
  font-size:0.9em;
  font-weight:bold;
  width:20em;
  border-bottom:1px solid #003;
  border-right:1px solid #003;
  border-left:1px solid #003;
}
ul li {
  border-top:1px solid #003;
}
ul li a {
  display:block;
  padding:2px 2px 2px 0.5em;
  border-left:15px solid #AD2039;
  background-color:#FFA6BD;
  color:#AD2039;
  text-decoration:none;
  width:100%;
}
html &gt; body ul li a {
  width:auto;
}
ul li a:hover {
  border-left:15px solid #FFA6BD;
  background-color:#AD2039;
  color:#FFA6BD;
}</pre>
<p>Рассмотрим подробнее стилевое оформление элемента <strong>ul</strong>. Сначал скроем стандартные маркеры списка, затем установим значения свойств <strong>margin</strong> и <strong>padding</strong> (почему мы устанавливаем именно оба свойства можно прочитать в статье &laquo;CSS: задание отступов и изменение стилей маркера в списках.&raquo;). Свойства <strong>font</strong> установят нужные шрифты и размер. Свойство <strong>width</strong> ясное дело будет отвечать за ширину списка. Следующие три строки устанавливают рамку шириной в 1px справа, снизу и слева для элемента <strong>ul</strong>.</p>
<p>Почему не сверху? Потому, что неплохо иметь такую же тонкую рамку, которая будет отделять каждый элемент списка. Это мы проделаем, написав правило <strong>border-top:1px solid #003;</strong> для <strong>ul li</strong> (для всех элементов li, являющихся дочерними по отношению к элементу ul).</p>
<p>В следующем правиле <strong>ul li a</strong> мы зададим стили ссылок. Поскольку элемент <strong>a</strong> по умолчанию &#8211; это строчный элемент, нам необходимо изменить его отображение, чтобы элементы <strong>a</strong> отображались как блочные. Это необходимо для того, чтобы можно было использовать меню щелкая мышью на всем выбираемом элементе, а не только на тексте ссылки. Делаем это, задавая свойству <strong>display</strong> значение <strong>block</strong>.</p>
<p>Определяем отступы со всех сторон в свойстве <strong>padding</strong>, задаем рамку слева толщиной в 15px в свойстве <strong>border-left</strong>, определяем свойства <strong>background-color</strong> (цвет фона) и <strong>color</strong> (цвет текста), а также удаляем подчеркивание ссылок, воспользовавшись свойством <strong>text-decoration</strong>.</p>
<p>Последняя строчка задает теперь уже блочному элементу ширину <strong>width</strong> в 100%. Это сделано специально для IE, но может создать проблемы в Netscape Navigator и IE для Mac и поэтому следующее правило <strong>html&gt;body ul li a</strong> написано специально для решения этой проблемы. IE не сможет его прочесть, поскольку не умеет обрабатывать правила для селектора потомка.</p>
<p>И наконец последнее правило будет задавать стили использующиеся при наведении указателя мыши на ссылку. Здесь мы просто задаем другие цвета в свойствах <strong>border-left</strong>, <strong>background-color</strong> и <strong>color</strong>.</p>
<p>Вот как это будет выглядеть. По моему неплохо. Такое меню будет вполне работоспособно и при отключенной поддержке стилевого оформления.<br />
<iframe src="http://www.linkexchanger.su/example_css/ul-menu-vertical.html" style="border: medium none " height="200" width="420"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/27.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>CSS: как создать графический или текстовый маркер в списке.</title>
		<link>http://www.linkexchanger.su/2008/26.html</link>
		<comments>http://www.linkexchanger.su/2008/26.html#comments</comments>
		<pubDate>Fri, 01 Feb 2008 06:00:16 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[ol]]></category>
		<category><![CDATA[ul]]></category>
		<category><![CDATA[маркер]]></category>
		<category><![CDATA[список]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/26.html</guid>
		<description><![CDATA[Выбор стандартных маркеров в списках в общем невелик, особенно если вести речь о ненумерованных списках. Как быть, если стоит задача создать и использовать свои собственные маркеры, текстовые или графические? Задача эта вполне решаема&#8230;.
Правда сразу оговорюсь, что для начала мы разберем скорее теоретические основы, поскольку существует браузер названИЕкоторого все знают. Нормальное решение основано на использовании автоматически [...]]]></description>
			<content:encoded><![CDATA[<p>Выбор стандартных маркеров в списках в общем невелик, особенно если вести речь о ненумерованных списках. Как быть, если стоит задача создать и использовать свои собственные маркеры, текстовые или графические? Задача эта вполне решаема&#8230;.<span id="more-26"></span></p>
<p>Правда сразу оговорюсь, что для начала мы разберем скорее теоретические основы, поскольку существует браузер названИЕкоторого все знают. Нормальное решение основано на использовании автоматически генерируемого контента, а вышеупомянутый браузер (будем честными до конца &#8211; не только он один) не поддерживает эту возможность. Зато это прекрасно работает в Mozilla, FireFox, Netscape 6+, Opera и Safari. А затем разберем и универсальное решение. К сожалению не такое изящное.</p>
<p>Посмотрите на этот CSS-код:</p>
<pre class="brush: css;">ul {
  list-style:none;
  margin:0;
  padding:0 0 0 1em;
  text-indent:-1em;
}
li {
  width:20%;
  padding:0;
  margin:0 0 0.25em 0;
}
li:before {
  content:&quot;&#92;&#48;0BB &#92;&#48;020&quot;;
}</pre>
<p>Для начала скрываем маркер списка, который имеется по умолчанию с помощью <strong>list-style:none;</strong> затем устанавливаем левый отступ 1em, но при этом сдвигаем текст влево на ту же величину, т.е. -1em для того, чтобы &laquo;вытолкнуть&raquo; стандартный маркер из блока элемента списка. С помощью псевдоэлемента <strong>:before</strong> генерируем текстовый маркер. В свойстве <strong>content</strong> нужные символы указаны с помощью шестнадцатеричного escape-эквивалента Unicode, как того требует спецификация CSS2.1. В примере сгенерирована последовательность символов из двойной стрелки-ёлочки и пробела. Изящно, просто и красиво, но не для IE &#8230;</p>
<p>&#8230; и решение, которое подойдет для всех браузеров. К сожалению, уже не такое красивое. Текстовый маркер придется просто вставлять перед каждым элементом списка. Как показано ниже:</p>
<pre class="brush: xml;">
&lt;ul&gt;
  &lt;li&gt;» Первый пункт списка&lt;/li&gt;
  &lt;li&gt;» Второй пункт списка&lt;/li&gt;
  &lt;li&gt;» Третий пункт списка&lt;/li&gt;
  &lt;li&gt;» Четвертый пункт списка&lt;/li&gt;
  &lt;li&gt;» Пятый пункт списка&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>а таблицу стилей для этого варианта надо немного изменить. Вот так:</p>
<pre class="brush: css;">ul {
  list-style:none;
  margin:0;
  padding:0 0 0 1em;
}
li {
  width:20%;
  padding:0;
  margin:0 0 0.25em 0;
}</pre>
<p>Однако и в этом способе есть недостаток, правда не очень критический. Если в браузере пользователя отключена поддержка CSS, он увидит два маркера для каждого элемента списка &#8211; маркер, генерируемый браузером и маркер, который мы добавили вручную.</p>
<p>Разберем другой вопрос: как сделать маркер, используя картинку?</p>
<p>Для того, чтобы применить графический маркер используется свойство <strong>list-style-image</strong>, как показано в примере ниже</p>
<pre class="brush: css;">ul {
  list-style-type: disc;
  list-style-image: url(marker.png);
}</pre>
<p>Свойство <strong>list-style-type</strong> используется здесь на всякий случай, если браузер пользователя не имеет возможности использовать изображение. А в свойстве <strong>list-style-image</strong> задается путь к нужной картинке. Управлять размером картинки, которая используется как маркер списка, из таблицы CSS мы не сможем и поэтому надо убедиться в том, что картинка имеет подходящие размеры. Еще один нюанс состоит в том, что значения графических маркеров наследуются и если Вы создаете вложенные списки и хотите отказаться от маркера изображения в них, надо опять использовать свойство <strong>list-style-image</strong>. Вот таким образом:</p>
<pre class="brush: css;">ul ul {
  list-style-image:none;
}</pre>
<p>А вот если хочется в качестве маркера списка иметь довольно большую картинку, такой способ уже не подойдет, поскольку часть картинки может быть просто &laquo;обрезана&raquo;. Чтобы обойти это ограничение нужно поступить несколько иначе:</p>
<pre class="brush: css;">ul {
  margin-left:10px;
  padding-left:0px;
  list-style:none;
}
li {
  padding:0.5em 0 0.5em 54px;
  font: 1.3em/1.6 Verdana, Arial, sans-serif;
  background:url(bigMarker.png) no-repeat;
}</pre>
<p>Сначала задаем значения и для левого поля и для левого отступа списка (почему именно так, я объяснял в одной из предыдущих статей). Потом удаляем маркер, используемый по умолчанию. Теперь главное: <strong>padding:0.5em 0 0.5em 54px;</strong> &#8211; мы освобождаем место слева от элемента списка, для того, чтобы вставить туда нашу большую картинку (например 54х54 пиксела), затем задаем свойство <strong>font</strong> таким образом, чтобы текст элемента списка не диссонировал с размером картинки-маркера и наконец используем свойство <strong>background</strong>, чтобы эту картинку вставить в качестве маркера списка.</p>
<p>Надеюсь, что это статья поможет кому-нибудь&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/26.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CSS: задание отступов и изменение стилей маркера в списках</title>
		<link>http://www.linkexchanger.su/2008/20.html</link>
		<comments>http://www.linkexchanger.su/2008/20.html#comments</comments>
		<pubDate>Tue, 22 Jan 2008 19:59:57 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[li]]></category>
		<category><![CDATA[ol]]></category>
		<category><![CDATA[ul]]></category>
		<category><![CDATA[маркер]]></category>
		<category><![CDATA[список]]></category>
		<category><![CDATA[стиль]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/20.html</guid>
		<description><![CDATA[Знаете ли Вы, что разные браузеры используют различные методы для формирования отступов в нумерованных и ненумерованных списках? Это действительно так. Браузеры IE и Opera создают отступы руководствуясь свойством margin, а Mozilla и Netscape &#8211; используют для этого же свойство padding. Для того, что бы страница выглядела одинаково во всех браузерах надо что-то предпринимать. Так что [...]]]></description>
			<content:encoded><![CDATA[<p>Знаете ли Вы, что разные браузеры используют различные методы для формирования отступов в нумерованных и ненумерованных списках? Это действительно так. Браузеры IE и Opera создают отступы руководствуясь свойством margin, а Mozilla и Netscape &#8211; используют для этого же свойство padding. Для того, что бы страница выглядела одинаково во всех браузерах надо что-то предпринимать. Так что же?<span id="more-20"></span></p>
<p>Решение в этом случае достаточно простое. При создании стилевого оформления списка надо просто учесть этот факт и задать оба свойства, например вот так:</p>
<pre class="brush: css;">
ul {
  margin-left: 50px;
  padding-left: 0px;
}</pre>
<p>Если же Вы попытаетесь разделить эти 50px между свойствами margin и padding, то отображение страницы в разных браузерах будет уже неодинаковым.<br />
С одним вопросом немного разобрались. Теперь во всех браузерах отступы одинаковые, но вот как-то бедно выглядят эти списки. У одного в качестве маркера &#8211; закрашенный кружочек, у другого &#8211; ничем не примечательные цифры.</p>
<blockquote><p>Возможно также создавать и свои собственные маркеры для списков, причем как текстовые, так и графические, но эти возможности мы рассмотрим отдельно.</p></blockquote>
<p>Для того, чтобы поменять стандартный стиль списка, воспользуйтесь свойством <strong>list-style-type</strong> и Вы сможете изменить маркер или тип счетчика.  Приведу возможные значения для ненумерованного списка.<br />
<strong>disc</strong> &#8211; обычно по умолчанию. Закрашенный кружок.<br />
<strong>circle</strong> &#8211; незакрашенный кружок.<br />
<strong>square</strong> &#8211; закрашенный квадратик.<br />
Т.е., если мы хотим вместо появляющегося по умолчанию закрашенного кружочка увидеть квадратик, пишем:</p>
<pre class="brush: css;">
li {
  list-style-type: square;
}</pre>
<p>Точно так же для нумерованного списка по умолчанию применяется значение <strong>decimal</strong>, т.е. начинается с 1, затем 2, 3 и так далее&#8230;<br />
Приведу еще несколько возможных значений:<br />
<strong>decimal-leading-zero</strong> &#8211; начинается с 01, потом идет 02, 03 и так далее. Количеству ведущих нулей может равняться числу значащих цифр. Например 0001 будет показан в списке из например 9999 элементов.<br />
<strong>lower-roman</strong> &#8211; строчные римские цифры.<br />
<strong>upper-roman</strong> &#8211; заглавные римские цифры.<br />
<strong>lower-greek</strong> &#8211; начинается с букв греческого алфавита: альфа, бета, гамма и т.д. (не поддерживается в IE).<br />
<strong>hebrew</strong> &#8211; начинается с традиционного иврита (не поддерживается в IE).<br />
<strong>none</strong> &#8211; как же без этого &#8211; маркеры не отображаются.</p>
<p>Ну и еще один маленький совет: браузеры в большинстве случаев изменяют тип маркера при переходе с одного уровня списка на другой. Для того, чтобы этого избежать необходимо менять значение свойства list-style-type в каждом списке-потомке.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/20.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS: верстка несимметричных макетов.</title>
		<link>http://www.linkexchanger.su/2008/19.html</link>
		<comments>http://www.linkexchanger.su/2008/19.html#comments</comments>
		<pubDate>Mon, 21 Jan 2008 12:37:27 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[верстка]]></category>
		<category><![CDATA[макет]]></category>
		<category><![CDATA[несимметричный]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/19.html</guid>
		<description><![CDATA[Мы уже пробовали создавать макет страницы из одной, двух и трех колонок. Как говорил один персонаж из комедии &#171;Берегись автомобиля&#187;: &#171;А не замахнуться ли нам на Вильяма, понимаете ли нашего, Шекспира?&#187; Давайте попробуем создать &#171;резиновый&#187; несимметричный макет страницы, а потом преобразовать его в несимметричный макет с фиксированным расположением элементов.
Как всегда начнем с разметки нашей будущей [...]]]></description>
			<content:encoded><![CDATA[<p>Мы уже пробовали создавать макет страницы из одной, двух и трех колонок. Как говорил один персонаж из комедии &laquo;Берегись автомобиля&raquo;: &laquo;А не замахнуться ли нам на Вильяма, понимаете ли нашего, Шекспира?&raquo; Давайте попробуем создать &laquo;резиновый&raquo; несимметричный макет страницы, а потом преобразовать его в несимметричный макет с фиксированным расположением элементов.<span id="more-19"></span><br />
Как всегда начнем с разметки нашей будущей страницы.</p>
<pre class="brush: xml;">
&lt;div id=&quot;header&quot;&gt;
... какой-то заголовок или слоган ...
&lt;/div&gt;
&lt;div id=&quot;sidebar&quot;&gt;
... здесь может быть меню сайта ...
&lt;/div&gt;
&lt;div id=&quot;content&quot;&gt;
... здесь основное содержимое ...
&lt;/div&gt;
&lt;div id=&quot;info&quot;&gt;
... дополнительная  информация ...
&lt;/div&gt;</pre>
<p>Вы можете <a href="http://www.linkexchanger.su/example_css/assimetric.html" target="_blank">посмотреть пример</a>, того что получилось, и после этого разберем следующий CSS код.</p>
<pre class="brush: css;">
body {
  margin:5px 0 0 5px;
  background-color:#000;
  background-image:url(flowers.jpg);
  background-position: top right;
  background-repeat:no-repeat;
  color:#fff;
}
#header {
  position:absolute;
  right:5%;
  top:10%;
  width:40%;
  font-weight:bold;
  font-size:1.4em;
}

#sidebar {
  position:absolute;
  left:35%;
  top:1%;
  width:65%;
  background-color:#333;
}
#content {
  position:absolute;
  left:5%;
  top:20%;
  width:45%;
}
#info {
  position:absolute;
  left:80%;
  width:20%;
  top:80%;
  background-color:#333;
}</pre>
<p>Для размещения фонового изображения задаем значения в процентах, что позволит ему перемещаться вместе с содержимым страницы при изменении размеров окна браузера.<br />
Далее мы используем свойство <strong>position</strong>, которому задаем значение <strong>absolute</strong> и определяем позицию элемента, задавая его положение (свойства top, left, right, bottom) опять же в процентах.<br />
Еще легче создать несимметричный макет с фиксированным расположением элементов на странице. Используйте вместо относительных величин (проценты), абсолютные (например px).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/19.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS: верстка макета из трех колонок с постоянной шириной</title>
		<link>http://www.linkexchanger.su/2008/17.html</link>
		<comments>http://www.linkexchanger.su/2008/17.html#comments</comments>
		<pubDate>Thu, 17 Jan 2008 12:05:57 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[верстка]]></category>
		<category><![CDATA[макет]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/17.html</guid>
		<description><![CDATA[Попробуем создать макет с тремя колонками, которые не будут изменять свою ширину при изменении ширины окна браузера. Эта задачка даже немного посложнее создания &#171;резинового&#187; макета с тремя колонками, хотя на первый взгляд должно быть наоборот.
Как всегда начнем с HTML-разметки страницы. Изначально можно взять точно такую же разметку, которую мы использовалим для верстки трехколоночной &#171;резиновой&#187; модели. [...]]]></description>
			<content:encoded><![CDATA[<p>Попробуем создать макет с тремя колонками, которые не будут изменять свою ширину при изменении ширины окна браузера. Эта задачка даже немного посложнее создания &laquo;резинового&raquo; макета с тремя колонками, хотя на первый взгляд должно быть наоборот.<span id="more-17"></span><br />
Как всегда начнем с HTML-разметки страницы. Изначально можно взять точно такую же разметку, которую мы использовалим для верстки трехколоночной &laquo;резиновой&raquo; модели. Но здесь нам придется дополнить разметку дополнительными элементами. Вот готовый HTML-код:</p>
<pre class="brush: xml;">
&lt;div id=&quot;viewPage&quot;&gt;
  &lt;div id=&quot;header&quot;&gt;
  ... шапка страницы ...
  &lt;/div&gt;
  &lt;div id=&quot;frame&quot;&gt;
    &lt;div id=&quot;sidebar&quot;&gt;
    ... колонка меню ...
    &lt;/div&gt;
    &lt;div id=&quot;content&quot;&gt;
    ... основное содержимое страницы ...
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div id=&quot;otherbar&quot;&gt;
  ... колонка другого меню ...
  &lt;/div&gt;
  &lt;div id=&quot;footer&quot;&gt;
  ... подвал ...
  &lt;/div&gt;
&lt;/div&gt;
</pre>
<blockquote><p>Обратите внимание, что порядок следования элементов <strong>sidebar</strong> и <strong>content</strong> можно запросто изменить, если это необходимо с точки зрения SEO.</p></blockquote>
<p>Легко можно заметить отличия от &laquo;резинового&raquo; макета. Во-первых мы заключили весь набор элементов в элемент div с идентификатором <strong>viewPage</strong> (не экономьте, не стоит использовать тут BODY, мало ли зачем он потом может пригодиться), а во-вторых заключили левую колонку и колонку с основным содержимым в еще один div с <strong>id=&raquo;frame&raquo;</strong>.</p>
<p>Подготовительный этап закончен, теперь с помощью CSS попробуем расположить все элементы так, как мы задумывали.</p>
<pre class="brush: css;">
#viewPage {
  width:870px;
  margin-left:30px;
}
#header {
  text-align:center;
  background-color:#FCF;
}
#sidebar {
  float:left;
  width:200px;
  background-color:#FFC;
}
#content {
  float:right;
  width:470px;
  background-color:#CCC;
}
#frame {
  float:left;
  width:700px;
}
#otherbar {
  float:right;
  width:140px;
  background-color:#FFC;
}
#footer {
  clear:both;
  paddin-top:1em;
  text-align:center;
  background-color:#CFF;
}</pre>
<p>Для начала задаем общую ширину страницы равную 870px, используя для этого элемент с <strong>id=&raquo;viewPage&raquo;</strong> + отступ от левого края окна браузера в 30px. В элементе <strong>header</strong> комментировать в общем нечего. Далее задаем фиксированную ширину для элементов <strong>sidebar</strong> в 200px и <strong>content</strong> в 470px и выравниваем их в потоке плавающей модели соответственно по левому и правому краю. Обратите внимание, что общая их ширина 200 + 470 = 670px меньше ширины их родительского элемента <strong>frame</strong>. Как говорится, на всякий случай&#8230;</p>
<p>Далее включаем в поток плавающей модели элементы <strong>frame</strong> (вот для чего он и нужен был!) и <strong>otherbar</strong>, выравнивая <strong>frame</strong> по левому, а <strong>otherbar</strong> по правому краю. Ситуация с суммой горизонтальных размеров блоков здесь такая же &#8211; есть запас в 30px (это не догма &#8211; можете и не оставлять запас, если уверены).</p>
<p>Hаконец элемент <strong>footer</strong> мы исключаем из плавающей модели с помощью <strong>clear:both;</strong> и на этом верстка собственно каркаса закончена. Да, разный бэкграунд для элементов я задаю исключительно для наглядности примера.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/17.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS: верстка “резинового” макета из трех колонок</title>
		<link>http://www.linkexchanger.su/2008/16.html</link>
		<comments>http://www.linkexchanger.su/2008/16.html#comments</comments>
		<pubDate>Tue, 15 Jan 2008 14:04:20 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[верстка]]></category>
		<category><![CDATA[макет]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/16.html</guid>
		<description><![CDATA[Следующий шаг &#8211; создание &#171;резинового&#187; макета страницы из трех колонок. Как и в случае макета с двумя колонками сначала создадим HTML-разметку, которую будем в дальнейшем форматировать. По-моему это даже проще, чем одноколоночный макет&#8230;
Итак, зададим HTML-разметку:

&#60;div id=&#34;header&#34;&#62;
... шапка страницы ...
&#60;/div&#62;
&#60;div id=&#34;sidebar&#34;&#62;
... колонка меню ...
&#60;/div&#62;
&#60;div id=&#34;content&#34;&#62;
... основное содержимое страницы ...
&#60;/div&#62;
&#60;div id=&#34;otherbar&#34;&#62;
... колонка меню ...
&#60;/div&#62;
&#60;div id=&#34;footer&#34;&#62;
... подвал ...
&#60;/div&#62;

и [...]]]></description>
			<content:encoded><![CDATA[<p>Следующий шаг &#8211; создание &laquo;резинового&raquo; макета страницы из трех колонок. Как и в случае макета с двумя колонками сначала создадим HTML-разметку, которую будем в дальнейшем форматировать. По-моему это даже проще, чем одноколоночный макет&#8230;<span id="more-16"></span><br />
Итак, зададим HTML-разметку:</p>
<pre class="brush: xml;">
&lt;div id=&quot;header&quot;&gt;
... шапка страницы ...
&lt;/div&gt;
&lt;div id=&quot;sidebar&quot;&gt;
... колонка меню ...
&lt;/div&gt;
&lt;div id=&quot;content&quot;&gt;
... основное содержимое страницы ...
&lt;/div&gt;
&lt;div id=&quot;otherbar&quot;&gt;
... колонка меню ...
&lt;/div&gt;
&lt;div id=&quot;footer&quot;&gt;
... подвал ...
&lt;/div&gt;
</pre>
<p>и отформатируем ее с помощью следующей таблицы стилей:</p>
<pre class="brush: css;">
#content {
  float:left;
  width:50%;
  background-color:#CCC;
}
#sidebar {
  float:left;
  width:30%;
  background-color:#FFC;
}
#otherbar {
  float:left;
  width:20%;
  background-color:#FFC;
}
#header {
  background-color:#FCF;
  text-align:center;
}
#footer {
  clear:both;
  text-align:center;
  background-color:#CFF;
}
</pre>
<p>В этом решении все три колонки включены в плавающую модель, выравниваются по левому краю и суммарная их ширина не превышает 100%.</p>
<p>Однако следует очень внимательно относиться к полям, рамкам и отступам этих элементов, поскольку, если суммарная ширина колонок превысит 100%, то одна или две колонки будут расположены друг под другом.</p>
<p>Вот так легко и просто. Этот метод работает во всех популярных браузерах.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/16.html/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

