<?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; ol</title>
	<atom:link href="http://www.linkexchanger.su/tag/ol/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: как создать графический или текстовый маркер в списке.</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>Пользовательские интерфейсы jQuery: drag-and-drop сортируемый список.</title>
		<link>http://www.linkexchanger.su/2008/23.html</link>
		<comments>http://www.linkexchanger.su/2008/23.html#comments</comments>
		<pubDate>Mon, 28 Jan 2008 10:25:02 +0000</pubDate>
		<dc:creator>Gennady</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[drag-and-drop]]></category>
		<category><![CDATA[draggable]]></category>
		<category><![CDATA[droppable]]></category>
		<category><![CDATA[javascript]]></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/23.html</guid>
		<description><![CDATA[Внимание! Эта статья устарела. Новая статья по этой теме: &#171;jQuery UI &#8211; плагин Sortable&#187;. Давайте используем возможности jQuery для создания сортируемого с помощью drag-and-drop списка. Возможность сортировать список с помощью простого перетаскивания мышкой  его пунктов, наверняка сможет произвести впечатление на Ваших пользователей. Только не забывайте одну важную вещь: применение всех этих &#171;фишек&#187; должно быть [...]]]></description>
			<content:encoded><![CDATA[<p><font color="#ff0000">Внимание! Эта статья устарела. Новая статья по этой теме: <a href="http://www.linkexchanger.su/2009/111.html">&laquo;jQuery UI &#8211; плагин Sortable&raquo;</a>.</font> Давайте используем возможности jQuery для создания сортируемого с помощью drag-and-drop списка. Возможность сортировать список с помощью простого перетаскивания мышкой  его пунктов, наверняка сможет произвести впечатление на Ваших пользователей. Только не забывайте одну важную вещь: применение всех этих &laquo;фишек&raquo; должно быть целесообразным и соответствовать ожиданиям пользователя. Не стоит применять такие эффекты сплошь и рядом  &#8211; можно  получить совсем не тот результат, на который Вы рассчитывали. Это было небольшое лирическое отступление, а теперь &#8211; к делу.<span id="more-23"></span><br />
Как обычно, первым делом рассмотрим работу пары примеров.<br />
Меню слева работает с опциями, установленными по умолчанию. Все, что нужно для создания такого меню (разумеется, кроме библиотеки jQuery и своего HTML-кода), это написать следующее:</p>
<pre class="brush: jscript;">$(&quot;#menuList&quot;).sortable();</pre>
<p>где <strong>#menuList</strong> &#8211; это идентификатор списка.<br />
В меню справа использованы некоторые дополнительно установленные опции. Код конечно немного посложнее, но и в нем нет абсолютно ничего страшного.<br />
<iframe src="http://www.linkexchanger.su/example_jquery/sortable.html" style="border: medium none " width="420" height="250"></iframe></p>
<blockquote><p>Вы можете скачать <a href="http://www.linkexchanger.su/example_jquery/sortable.zip">исходный код</a> примера, и при наличии библиотеки jQuery воспроизвести это пример на своем сайте.</p></blockquote>
<p>А теперь разберем примеры более подробно. Этот пример для своей корректной работы требует подключения достаточно большого количества различных вспомогательных файлов.</p>
<pre class="brush: xml;">
&lt;script src=&quot;js/jquery-1.2.1.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.dimensions.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.mouse.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.draggable.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.draggable.ext.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.droppable.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.droppable.ext.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/ui.sortable.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</pre>
<p>Все файлы уже знакомы по предыдущим примерам. Добавился только один файл <strong>ui.sortable.js</strong>, который (как и все остальные) мы подключаем в разделе <strong>HEAD</strong> нашей страницы.<br />
Из таблицы стилей остановлюсь только на небольшом моменте, поскольку это по большому счету дело вкуса.</p>
<pre class="brush: css;">.dragStyle {
  background:#CFD4E6;
  border:1px solid #727EA3;
}</pre>
<p>Класс <strong>dragStyle</strong> используется во втором примере и применяется в момент перемещения элемента, отображая то место, на которое перемещаемый элемент будет &laquo;сброшен&raquo;.</p>
<p>Далее полностью приведен кусок кода, который и отвечает за работу обоих списков.</p>
<pre class="brush: jscript;">&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
  $(&quot;#menuList&quot;).sortable(); // 1-ый спискок

  $(&quot;#menuList2&quot;).sortable({ // 2-ой список
	hoverClass: &quot;dragStyle&quot;,
	start: function(ev, ui) {
	  var text = $(ui.draggable.element).text();
	  $(&quot;#result&quot;).text(&quot;Перемещаем &quot; + text);
	},
	stop: function(ev, ui) {
	  $(&quot;#result&quot;).text(&quot;Перемещение окончено!&quot;);
	}
  });
});
&lt;/script&gt;</pre>
<p>Вот так просто. За работу первого списка отвечает всего-навсего одна строка кода. Для второго списка мы используем некоторые дополнительные опции.<br />
<strong>hoverClass</strong> &#8211; опция содержит название класса, который будет применен в процессе перемещения одного из пунктов списка, чтобы указать место, куда перемещаемый пункт будет &laquo;сброшен&raquo;.<br />
<strong>start</strong> &#8211; здесь указываем функцию, которая выполнится в момент старта перемещения элемента списка. В этой функции мы обращаемся к перемещаемому элементу, получаем его содержимое в виде текста и записываем в переменную <strong>text</strong>. Затем отыскиваем элемент <strong>#result</strong> и вставляем текст туда.<br />
<strong>stop</strong> &#8211; указываем функцию, которая выполнится в момент, когда произошел &laquo;сброс&raquo; элемента на нужную позицию (независимо от того изменилась ли фактическая позиция элемента). Тут тоже все предельно просто &#8211; вставляем текст сообщения в элемент <strong>#result</strong>.</p>
<p>Я использовал для примера всего несколько опций, а их полный список опций можно найти на сайте разработчиков библиотеки.</p>
<p>Буду рад, если найдете возможность оставить свой комментарий или задать вопросы.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linkexchanger.su/2008/23.html/feed</wfw:commentRss>
		<slash:comments>63</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>
	</channel>
</rss>
