<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
   <channel>
      <title>Trifler Blog</title>
      <link>http://trifler.ru/blog/</link>
      <description>Lasto Blogging Engine</description>
      <language>ru</language>
      <copyright>gordi</copyright>
      <managingEditor>serg_gordi@mail.ru</managingEditor>
      <webMaster>serg_gordi@mail.ru</webMaster>
      <image>
         <title>Trifler Blog</title>
         <url>http://trifler.ru/blog/i/lastoblog.png</url>
         <link>http://trifler.ru/blog/</link>
      </image>

      <item>
         <title>Иерархия заголовков web-меню</title>
         <link>http://trifler.ru/blog/post_1334838492.html</link>
         <description>&lt;p&gt;Оформление заголовков web-меню в частности древо меню, не самый простой вопрос, как это может показаться на первый взгляд.

Многие верстальщики не уделяют этому моменту должного внимания, в полной мере это относится к многочисленным и разнообразным

меню с вложениями.&lt;/p&gt;

&lt;p&gt;В старые добрые времена, простое линейное web-меню по html-коду могло выглядеть приблизительно так:&lt;/p&gt;

&lt;pre class="pre"&gt;

&amp;lt;ul&gt;

  &amp;lt;li&gt;Раздел 1&amp;lt;/li&gt;

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка 1&amp;lt;/a&gt;&amp;lt;/li&gt;

  ...

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка N&amp;lt;/a&gt;&amp;lt;/li&gt;

  &amp;lt;li&gt;Раздел 2&amp;lt;/li&gt;

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка 1&amp;lt;/a&gt;&amp;lt;/li&gt;

  ...

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка N&amp;lt;/a&gt;&amp;lt;/li&gt;

&amp;lt;/ul&gt;

&lt;/pre&gt;

&lt;p&gt;Стилями выделяем заголовки и ссылки:&lt;/p&gt;

&lt;pre class="pre"&gt;

li {font:bold XXpx Arial;}

a {font:XXpx Verdana;}

&lt;/pre&gt;

&lt;p&gt;Ничем не сложнее все и для древо-меню:&lt;/p&gt;

&lt;pre class="pre"&gt;

&amp;lt;ul&gt;

  &amp;lt;li&gt;Раздел 1&amp;lt;/li&gt;

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка 1&amp;lt;/a&gt;

    &amp;lt;ul&gt;

      &amp;lt;li&gt;Раздел 1.1&amp;lt;/li&gt;

      &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка 1&amp;lt;/a&gt;&amp;lt;/li&gt;

      ...

      &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка N&amp;lt;/a&gt;&amp;lt;/li&gt;

    &amp;lt;/ul&gt;

  &amp;lt;/li&gt;

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка N&amp;lt;/a&gt;&amp;lt;/li&gt;

  &amp;lt;li&gt;Раздел 2&amp;lt;/li&gt;

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка 1&amp;lt;/a&gt;&amp;lt;/li&gt;

  ...

  &amp;lt;li&gt;&amp;lt;a href="#"&gt;Ссылка N&amp;lt;/a&gt;&amp;lt;/li&gt;

&amp;lt;/ul&gt;

&lt;/pre&gt;

&lt;p&gt;При помощи наследования можно задать разный стиль для раздела и подраздела:&lt;/p&gt;

&lt;pre class="pre"&gt;

a {font:XXpx Verdana;}

li {color:#XXX;font:bold XXpx Arial;}

li li {color:#YYY;font:bold XXpx Arial;}

&lt;/pre&gt;

&lt;p&gt;В более сложном случае:&lt;/p&gt;

&lt;img src="../blog/i/menus/menudrevo01.png" style="display:block;margin:5px auto;width:494px;height:272px;" alt="drevo menu"&gt;

&lt;p&gt;отказ от графики, требует введения дополнительного html-кода.&lt;/p&gt;

&lt;p&gt;С другой стороны в меню представленном на скриншоте четко прослеживается иерархия заголовков разделов и подразделов,

а перевод простого древо меню в меню с вложениями на JavaScript, избавляет от необходимости использовать для этих целей

классы, которым надо выдумывать имена.&lt;/p&gt;

&lt;h3 class="panel"&gt;Ограничения&lt;/h3&gt;

&lt;p&gt;Так, как структура меню круто замешана на относительном позиционировании, то это накладывает несколько ограничений:&lt;/p&gt;

&lt;ul&gt;

&lt;li&gt;В любом разделе или подразделе последней должна стоять простая ссылка&lt;/li&gt;

&lt;li&gt;Не допустим перенос на вторую строку&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Скриншот демострирует к чему может привести невыполнение этих условий:&lt;/p&gt;

&lt;img src="../blog/i/menus/menudrevo02.png" style="display:block;margin:5px auto;width:493px;height:282px;" alt="drevo_menu"&gt;

&lt;p&gt;Выделение цветом уровней вложений меню и соответствующих линий в реальном проекте, может оказаться излишним, сделано с целью показать, что это возможно и помогает на стадии тестирования.&lt;/p&gt;

&lt;p&gt;&lt;a href="../blog/i/menus/menu_drevo.htm"&gt;Пример&lt;/a&gt;&lt;/p&gt;&lt;!-- RSS_link_to_post start --&gt;



&lt;br&gt;

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1334838492.html"&gt;Оставить комментарий&lt;/a&gt;&lt;/div&gt; 

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1334838492.html"&gt;All Comments&lt;/a&gt;&lt;/div&gt; 



&lt;!-- RSS_link_to_post end --&gt;&lt;!-- RSS_link_to_post start --&gt;



&lt;br&gt;

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1334838492.html"&gt;Оставить комментарий&lt;/a&gt;&lt;/div&gt; 

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1334838492.html"&gt;All Comments&lt;/a&gt;&lt;/div&gt; 



&lt;!-- RSS_link_to_post end --&gt;</description>
         <pubDate>Thu, 19 Apr 2012 19:28:12 GMT</pubDate>
      </item>

      <item>
         <title>Спрайты, background:url(…) and link</title>
         <link>http://trifler.ru/blog/post_1333728595.html</link>
         <description>&lt;p&gt;В современном web-дизайне без графики обойтись практически невозможно, можно спорить лишь о том, в каких количествах и насколько оправданно ее наличие или отсутствие в пределах того или иного ресурса.&lt;/p&gt;

&lt;p&gt;Многие web-мастера загоняют мелкие графические элементы в один графический файл - так называемый спрайт и далее позиционируют его в нужное место, тем самым, уменьшая количество запросов к серверу, что положительно сказывается на скорости загрузки web-страницы.&lt;/p&gt;

&lt;p&gt;Рассмотрим частный случай на конкретном примере.&lt;/p&gt;

&lt;img src="../blog/i/image/sl.png" style="display:block;margin:5px auto;width:507px;height:38px;" alt="спрайт"&gt;

&lt;p&gt;Имеем 14 картинок каждая, из которых в реальном проекте является кликабельной и ведет по прописанному ей линку в соответствующее место.&lt;/p&gt;

&lt;p&gt;Если пойти стандартным путем, то html-код и стили могут выглядеть примерно так:&lt;/p&gt;

&lt;pre class="pre"&gt;

&amp;lt;div class="zzz"&amp;gt;

  &amp;lt;a href="#" class="x"&amp;gt;&amp;lt;/a&amp;gt;

  ...

  &amp;lt;a href="#" class="xn"&amp;gt;&amp;lt;/a&amp;gt; 

&amp;lt;/div&amp;gt;



.x {background:url(...) no-repeat YYpx XXpx;}

...

.xn {background:url(...) no-repeat YYpx XXpx;}

&lt;/pre&gt;

&lt;p&gt;Как мы видим, чтобы отпозиционировать часть спрайта в нужное место необходимо указать не только класс ссылке, но и в стилях

прописывать этому классу, помимо всего прочего, позицию нужной картинке, к тому же подбор сдвига по горизонтали, дело весьма утомительное.&lt;/p&gt;

&lt;p&gt;Но можно обойтись более простым способом.&lt;/p&gt;

&lt;p&gt;html-код практически остается без изменений, следует только удалить из тегов «a» ставшие абсолютно не нужными классы.&lt;/p&gt;

&lt;p&gt;Стили тогда приобретут следующий вид:&lt;/p&gt;

&lt;pre class="pre"&gt;

.zzz {

  background:url(...) no-repeat YYpx XXpx;

  margin:5px auto;width:XXpx;height:XXpx;

}

.zzz a {

  &lt;span&gt;margin-left:XXpx&lt;/span&gt;;position:relative;

  &lt;span&gt;top:XXpx&lt;/span&gt;;width:XXpx;height:XXpx;

}

&lt;/pre&gt;

&lt;p&gt;Для смещения ссылки по горизонтали и вертикали достаточно использовать margin-left и отностильное позиционирование, нужные параметры выделены цветом.&lt;/p&gt;

&lt;p&gt;Чтобы добиться максимальной точности совпадения кликабельной области ссылки и индивидуальной картинки, временно добавляем в стили для ссылки верхний и нижий border.&lt;/p&gt;

&lt;p&gt;При сравнении двух вариантов, второй выглядит более предпочтительным, что и было использовано в очередном апгрейде Lasto Blog для переводчика Google и «Хомячкового рая».&lt;/p&gt;&lt;!-- RSS_link_to_post start --&gt;



&lt;br&gt;

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1333728595.html"&gt;Оставить комментарий&lt;/a&gt;&lt;/div&gt; 

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1333728595.html"&gt;All Comments&lt;/a&gt;&lt;/div&gt; 



&lt;!-- RSS_link_to_post end --&gt;&lt;!-- RSS_link_to_post start --&gt;



&lt;br&gt;

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1333728595.html"&gt;Оставить комментарий&lt;/a&gt;&lt;/div&gt; 

&lt;div style="margin-left:10px;color:#575;font-weight:bold;"&gt;&lt;a href="http://trifler.ru/blog/post_1333728595.html"&gt;All Comments&lt;/a&gt;&lt;/div&gt; 



&lt;!-- RSS_link_to_post end --&gt;</description>
         <pubDate>Fri, 06 Apr 2012 23:09:55 GMT</pubDate>
      </item>
   </channel>
</rss>
