<?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/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linkexchanger.su</link>
	<description>css, html, php, javascript, jQuery, ajax ... - решения, примеры, рецепты</description>
	<lastBuildDate>Tue, 25 May 2010 08:13:42 +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>15</slash:comments>
		</item>
		<item>
		<title>jQuery API: работа библиотеки с CSS свойствами.</title>
		<link>http://www.linkexchanger.su/2008/58.html</link>
		<comments>http://www.linkexchanger.su/2008/58.html#comments</comments>
		<pubDate>Sun, 01 Jun 2008 23:29:29 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery документация]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[документация jQuery]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/58.html</guid>
		<description><![CDATA[В сегодняшней статье по документации jQuery будет разобрана работа библиотеки с CSS свойствами. Мы будем учиться получать и устанавливать значения CSS-свойств для элементов, в том числе работать с шириной и высотой, а также определять позицию элемента.
CSS:
css(name)
возвращает: String
Возвращает значения для css-свойства, указанного в name, для первого элемента в наборе.
В этом примере, чтобы получить доступ к css-свойству [...]]]></description>
			<content:encoded><![CDATA[<p>В сегодняшней статье по <strong>документации jQuery</strong> будет разобрана работа библиотеки с CSS свойствами. Мы будем учиться получать и устанавливать значения CSS-свойств для элементов, в том числе работать с шириной и высотой, а также определять позицию элемента.<span id="more-58"></span></p>
<h2 style="color: #cc6600">CSS:</h2>
<h3>css(name)</h3>
<p>возвращает: String<br />
Возвращает значения для css-свойства, указанного в name, для первого элемента в наборе.</p>
<p>В этом примере, чтобы получить доступ к css-свойству background-color нужно всего лишь кликнуть по элементу div.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).click(function () {
  var color = $(this).css(&quot;background-color&quot;);
  $(&quot;#result&quot;).html(&quot;Цвет этого div'а &lt;span&gt;&quot;
  + color + &quot;&lt;/span&gt;.&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_name.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_name.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>css(properties)</h3>
<p>возвращает: jQuery<br />
Устанавливает значения для css-свойств всех элементов набора, используя объект, состоящий из пар ключ/значение. Это наилучший способ установить значения для сразу нескольких css-свойств всех элементов набора.</p>
<p>Посмотрите этот пример. Если указатель мыши проходит над параграфом, то для этого параграфа будет установлен желтый фон и жирное начертание текста. Когда же указатель мыши выходит за пределы параграфа &#8211; фон изменяется на серый, начертание текста становится нормальным, а сам текст становится синего цвета.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).hover(function () {
  $(this).css({
    backgroundColor:&quot;yellow&quot;,
    fontWeight:&quot;bolder&quot;
  });
}, function () {
  var cssObj = {
    backgroundColor: &quot;#ddd&quot;,
    fontWeight: &quot;&quot;,
    color: &quot;rgb(0,40,244)&quot;
  }
  $(this).css(cssObj);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_properties.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_properties.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>css(name, value)</h3>
<p>возвращает: jQuery<br />
Устанавливает значение одного css-свойства для всех элементов набора. Если в качестве значения какого-либо из css-свойств используется число, оно автоматически конвертируется в значение в пикселах.</p>
<p>В этом примере, для того чтобы изменить цвет текста любого параграфа, используется событие mouseover.</p>
<pre class="brush: jscript;">$(&quot;p&quot;).mouseover(function () {
  $(this).css(&quot;color&quot;,&quot;red&quot;);
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/css_name_value.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/css_name_value.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Позиционирование:</h2>
<h3>offset()</h3>
<p>возвращает: Object{top,left}<br />
Для первого элемента в наборе получает текущие отступы относительно точки просмотра. Возвращается объект, содержащий значения (целые числа) отступов сверху и слева. Этот метод работает только с видимыми элементами.</p>
<p>В этом примере мы получаем значения отступов для второго параграфа, куда собственно эти значения и подставляем.</p>
<pre class="brush: jscript;">var p = $(&quot;p:last&quot;);
var offset = p.offset();
p.html( &quot;left: &quot; + offset.left + &quot;, top: &quot; + offset.top );</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/offset.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/offset.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h2 style="color: #cc6600">Высота и ширина:</h2>
<h3>height()</h3>
<p>возвращает: Integer<br />
Получает текущее значение высоты в пикселах для первого элемента в наборе. Начиная с версии jQuery 1.2, этот метод позволяет найти высоту для window и document.</p>
<p>В этом примере мы получаем несколько значений высоты. Функция showHeight вспомогательная, просто для вывода значений в элемент div.</p>
<pre class="brush: jscript;">function showHeight(ele, h) {
  $(&quot;div&quot;).text(&quot;Высота элемента &quot;
+ ele + &quot; равна &quot; + h + &quot;px.&quot;);
}
$(&quot;#getp&quot;).click(function () {
  showHeight(&quot;paragraph&quot;, $(&quot;p&quot;).height());
});
$(&quot;#getd&quot;).click(function () {
  showHeight(&quot;document&quot;, $(document).height());
});
$(&quot;#getw&quot;).click(function () {
  showHeight(&quot;window&quot;, $(window).height());
});</pre>
<blockquote><p>Обратите внимание, что пример демонстрируется во фрейме, поэтому некоторые значения, которые Вы видите, меньше ожидаемых Вами.</p></blockquote>
<p><iframe src="http://www.linkexchanger.su/jquery_css/height.html" style="border: medium none " height="180" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/height.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>height(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает высоту в CSS-свойстве для каждого элемента в наборе. Если единицы измерения не определены однозначно (например &#8216;em&#8217; или &#8216;%&#8217;), тогда значение устанавливается в px.</p>
<p>В этом примере по клику на элементе div, для него устанавливается высота в 30px и заодно изменяется цвет.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).one('click', function () {
  $(this).height(30).css({cursor:&quot;auto&quot;, backgroundColor:&quot;green&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/height_val.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/height_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>width()</h3>
<p>возвращает: Integer<br />
Получает текущее значение ширины в пикселах для первого элемента в наборе. Начиная с версии jQuery 1.2, этот метод позволяет найти ширину для window и document.</p>
<p>В этом примере мы получаем несколько значений высоты. Функция showWidth вспомогательная, просто для вывода значений в элемент div.</p>
<pre class="brush: jscript;">function showWidth(ele, w) {
  $(&quot;div&quot;).text(&quot;Ширина элемента &quot; + ele + &quot; равна &quot; + w + &quot;px.&quot;);
}
$(&quot;#getp&quot;).click(function () {
  showWidth(&quot;paragraph&quot;, $(&quot;p&quot;).width());
});
$(&quot;#getd&quot;).click(function () {
  showWidth(&quot;document&quot;, $(document).width());
});
$(&quot;#getw&quot;).click(function () {
  showWidth(&quot;window&quot;, $(window).width());
});</pre>
<blockquote><p>Обратите внимание, что пример демонстрируется во фрейме, поэтому некоторые значения, которые Вы видите, меньше ожидаемых Вами.</p></blockquote>
<p><iframe src="http://www.linkexchanger.su/jquery_css/width.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/width.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<h3>width(val)</h3>
<p>возвращает: jQuery<br />
Устанавливает ширину в CSS-свойстве для каждого элемента в наборе. Если единицы измерения не определены однозначно (например &#8216;em&#8217; или &#8216;%&#8217;), тогда значение устанавливается в px.</p>
<p>В этом примере по клику на элементе div, для него устанавливается ширина в 30px и заодно изменяется цвет.</p>
<pre class="brush: jscript;">$(&quot;div&quot;).one('click', function () {
  $(this).width(30).css({cursor:&quot;auto&quot;, &quot;background-color&quot;:&quot;blue&quot;});
});</pre>
<p><iframe src="http://www.linkexchanger.su/jquery_css/width_val.html" style="border: medium none " height="120" width="420"></iframe></p>
<blockquote><p>Откройте <a href="http://www.linkexchanger.su/jquery_css/width_val.html" target="_blank">пример</a> в отдельном окне и посмотрите исходный код.</p></blockquote>
<p>Вот и все на сегодня. Статья получилась не очень большая, но, надеюсь эта информация пригодится многим.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/58.html/feed</wfw:commentRss>
		<slash:comments>32</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>jQuery Puzzle</title>
		<link>http://www.linkexchanger.su/2008/33.html</link>
		<comments>http://www.linkexchanger.su/2008/33.html#comments</comments>
		<pubDate>Mon, 11 Feb 2008 05:50:12 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[microformat]]></category>
		<category><![CDATA[puzzle]]></category>
		<category><![CDATA[микроформат]]></category>
		<category><![CDATA[пазлы]]></category>
		<category><![CDATA[пятнашки]]></category>

		<guid isPermaLink="false">http://www.linkexchanger.su/2008/33.html</guid>
		<description><![CDATA[Этот плагин к jQuery написал Ralf Stoltze. Мне очень понравилось &#8211; можно немного отдохнуть и расслабиться. И самое интересное &#8211; легко и просто можно подставить любую картинку, да хоть свою фотографию&#8230;
В общем расслабьтесь и поиграйте пока, а все пояснения потом, когда отдохнете.

Для того, чтобы сделать эту игрушку на своем сайте необходимо будет скачать библиотеку jQuery [...]]]></description>
			<content:encoded><![CDATA[<p>Этот плагин к jQuery написал <a href="http://www.2meter3.de/jqPuzzle/" target="_blank">Ralf Stoltze.</a> Мне очень понравилось &#8211; можно немного отдохнуть и расслабиться. И самое интересное &#8211; легко и просто можно подставить любую картинку, да хоть свою фотографию&#8230;<span id="more-33"></span></p>
<p>В общем расслабьтесь и поиграйте пока, а все пояснения потом, когда отдохнете.<br />
<iframe src="http://www.linkexchanger.su/example_jquery/puzzle.html" style="border: medium none " height="390" width="420"></iframe><br />
Для того, чтобы сделать эту игрушку на своем сайте необходимо будет <a href="http://jquery.com/" target="_blank">скачать библиотеку jQuery</a> и <a href="http://www.2meter3.de/jqPuzzle/#howto" target="_blank">плагин jqPuzzle</a>.</p>
<blockquote><p>В примере, <a href="http://www.linkexchanger.su/example_jquery/puzzle.zip">исходный код</a> которого Вы можете скачать на моем сайте, плагин jqPuzzle уже есть.</p></blockquote>
<p>В раздел<strong> HEAD</strong> страницы надо файлов javascript, вот так:</p>
<pre class="brush: xml;">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.jqpuzzle.js&quot;&gt;&lt;/script&gt;</pre>
<p>и, если Вы используете не пример с моего сайта Вам надо будет подключить файл стилей (в моем примере стили включены в страницу).</p>
<pre class="brush: xml;">&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;jquery.jqpuzzle.css&quot; /&gt;</pre>
<p>Дальнейшая настройка возможна тремя различными способами:<br />
<strong>Способ первый, самый простой.</strong><br />
Просто добавляем на страницу понравившуюся картинку</p>
<pre class="brush: xml;">&lt;img src=&quot;image.jpg&quot; alt=&quot;Моя картинка&quot; class=&quot;jqPuzzle&quot; /&gt;</pre>
<p>и указываем имя класса <strong>class=&raquo;jqPuzzle&raquo;</strong>. Это все! Пятнашки будут работать! Правда все настройки будут установлены по умолчанию и Вам придется довольствоваться надписями на кнопках на английском языке.</p>
<p><strong>Способ второй, настройка с использованием CSS микроформатов.</strong><br />
Этот способ позволит настроить наиболее важные возможности. По сути, Вы просто добавляете второе (дополнительное) имя класса к уже существующему имени в тэге IMG, соблюдая следующий синтаксис:</p>
<pre class="brush: xml;">jqp[-LANGUAGE]-rROWS-cCOLS[-hHOLE][-sSHUFFLE_ROUNDS][-FLAGS]</pre>
<p>Здесь необходимо заменить символы в верхнем регистре реальными значениями. Все, что заключено в квадратные скобки можно не использовать. Приведу список возможных значений и примеры.</p>
<p><strong>LANGUAGE:</strong> код языка. По умолчанию &#8211; английский (en). Доступные языки &#8211; fr, de, pt и я дописал для русского &#8211; ru (это если использовать исходный код с моего сайта).<br />
<strong>ROWS:</strong> количество строк (от 3 до 9)<br />
<strong>COLS:</strong> количество столбцов (от 3 до 9)<br />
<strong>HOLE:</strong> позиция свободного места (от 1 до ROWS*COLS). По умолчанию &#8211; последняя позиция, в правом нижнем углу.<br />
<strong>SHUFFLE ROUNDS:</strong> количество циклов перемешивания. По умолчанию установлено 3.<br />
<strong>FLAGS:</strong> дополнительные опции с помощью которых можно настроить вид игрушки при загрузке страницы (перечислены ниже). Можно использовать любое количество флагов, в любом порядке.<br />
<strong>S:</strong> картинка будет перемешана при загрузке страницы.<br />
<strong>N:</strong> при загрузке цифры будут скрыты.<br />
<strong>A:</strong> скрывает кнопку &laquo;Перемешать&raquo;.<br />
<strong>B:</strong> скрывает кнопку &laquo;Оригинал&raquo;.<br />
<strong>C:</strong> скрывает кнопку &laquo;Цифры&raquo;.<br />
<strong>D:</strong> скрывает количество перемещений.<br />
<strong>E:</strong> скрывает количество секунд.</p>
<p>Несколько примеров, чтобы стало совсем понятно.</p>
<p>Пример 1: 3 строки, 5 колонок, &laquo;дырка&raquo; в позиции 5.</p>
<pre class="brush: xml;">&lt;img src=&quot;image.jpg&quot; alt=&quot;Моя картинка&quot; class=&quot;jqPuzzle jqp-r3-c5-h5&quot; /&gt;</pre>
<p>Пример 2: язык &#8211; немецкий, 5 строк, 5 колонок.</p>
<pre class="brush: xml;">&lt;img src=&quot;image.jpg&quot; alt=&quot;Моя картинка&quot; class=&quot;jqPuzzle jqp-de-r5-c5&quot; /&gt;</pre>
<p>Пример 3: язык &#8211; русский, 3 строки, 3 колонки, &laquo;дырка&raquo; в позиции 5, загружается со скрытыми цифрами и не отображается количество перемещений и время.</p>
<pre class="brush: xml;">&lt;img src=&quot;image.jpg&quot; alt=&quot;Моя картинка&quot; class=&quot;jqPuzzle jqp-ru-r3-c3-h5-NDE&quot; /&gt;</pre>
<p>думаю, что смысл здесь вполне понятен.</p>
<p><strong>Способ третий, использование синтаксиса jQuery. </strong></p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
    $(document).ready(function() {
        $(&quot;img&quot;).jqPuzzle();
    });
&lt;/script&gt;</pre>
<p>это простейший пример, с настройками по умолчанию, который сделает пятнашки из всех тэгов img на странице. Понятно, что это для примера, реально Вы можете использовать любой селектор. Вообще же <strong>jqPuzzle()</strong> может принимать два аргумента, первый из которых содержит настройки, а второй &#8211; надписи на кнопках. Выглядеть это может вот так:</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
  var myTexts = {
    shuffleLabel: &quot;Перемешать&quot;,
    toggleOriginalLabel: &quot;Оригинал&quot;,
    toggleNumbersLabel: &quot;Цифры&quot;,
    confirmShuffleMessage: &quot;Перемешать?&quot;,
    movesLabel: &quot;перемещений&quot;,
    secondsLabel: &quot;секунд&quot;
  }
  var settings = {
    rows: 4,
    cols: 4,
    hole: 16,
    shuffle: false,
    numbers: true,
    language: en
  }
  $(&quot;.jqPuzzle&quot;).jqPuzzle(settings, myTexts);
});
&lt;/script&gt;</pre>
<p>Что касается стилевого оформления &#8211; можно подправить все на свой вкус и цвет, естественно не трогая названий классов.</p>
<p>Согласитесь, прикольная игрушка?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/33.html/feed</wfw:commentRss>
		<slash:comments>15</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>14</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>5</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>8</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>8</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>2</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>2</slash:comments>
		</item>
	</channel>
</rss>
