<?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>Ars Longa, Vita Brevis &#187; аккордеон</title>
	<atom:link href="http://blog.sjinks.pro/tag/accordion/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sjinks.pro</link>
	<description>Quod scripsi, scripsi</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:56:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Аккордеон на CSS без использования JavaScript</title>
		<link>http://blog.sjinks.pro/css/100-css-accordion-without-javascript/</link>
		<comments>http://blog.sjinks.pro/css/100-css-accordion-without-javascript/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 18:17:49 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[аккордеон]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=100</guid>
		<description><![CDATA[Простой аккордеон без использования JavaScript В статье "парочка аккордеонов" я рассказывал, как сделать простой аккордеон с использованием JavaScript. Однако, будучи "certified CSS&#160;2.0 designer" и "certified XHTML&#160;1.0 designer", я не смог удержаться, чтобы не сделать аккордеон без JavaScript (только на CSS/XHTML). IE6 потребуется несколько иная разметка, чем нормальным браузерам (об этом можно прочитать в статье "Кросс-браузерное [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/css/100-css-accordion-without-javascript/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Простой <a href="http://blog.sjinks.pro/tag/accordion/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  аккордеон">аккордеон</a> без использования <a href="http://blog.sjinks.pro/tag/javascript/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a></em></h2>
<p>В статье "<a href="http://blog.sjinks.pro/javascript/91-couple-of-accordions/"><strong>парочка аккордеонов</strong></a>" я рассказывал, как сделать простой аккордеон с использованием JavaScript. Однако, будучи "certified <a href="http://blog.sjinks.pro/tag/css/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">CSS</a>&nbsp;2.0 designer" и "certified <a href="http://blog.sjinks.pro/tag/xhtml/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  XHTML">XHTML</a>&nbsp;1.0 designer", я не смог удержаться, чтобы не сделать аккордеон <strong>без JavaScript</strong> (только на CSS/XHTML).<span id="more-100"></span></p>
<p>IE6 потребуется несколько иная разметка, чем нормальным браузерам (об этом можно прочитать в статье "<a href="http://blog.sjinks.pro/css/49-cross-browser-vertical-menu-without-javascript/"><strong>Кросс-браузерное одноуровневое вертикальное меню без JavaScript</strong></a>"), поэтому я сразу привожу разметку, которая подойдёт для всех браузеров (за основу взята разметка из статьи "<a href="http://blog.sjinks.pro/javascript/91-couple-of-accordions/"><strong>парочка аккордеонов</strong></a>"):</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p1004">
        <div class="code xhtml" id="p100code4">
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;accordion&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 1<span class="sc-2">&lt;!--[if IE 7]&gt;&lt;!--&gt;</span><span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><span class="sc-2">&lt;!--&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.3<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.4<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;active&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 2<span class="sc-2">&lt;!--[if IE 7]&gt;&lt;!--&gt;</span><span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><span class="sc-2">&lt;!--&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.3<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.4<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 3<span class="sc-2">&lt;!--[if IE 7]&gt;&lt;!--&gt;</span><span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><span class="sc-2">&lt;!--&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 3.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 3.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 4<span class="sc-2">&lt;!--[if IE 7]&gt;&lt;!--&gt;</span><span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><span class="sc-2">&lt;!--&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 4.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 4.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc-2">&lt;!--[if lte IE 6]&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/a&gt;&lt;![endif]--&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span>
        </div>
    </div>
</div>

<p>Теперь CSS для нормальных браузеров:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p1005">
        <div class="code css" id="p100code5">
a <span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span> <span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#00F</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
a<span class="re2">:hover </span><span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">underline</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
<span class="re0">#accordion</span> a <span class="br0">&#123;</span> <span class="kw1">outline</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
<span class="re0">#accordion</span><span class="sy0">,</span> <span class="re0">#accordion</span> ul<span class="sy0">,</span> <span class="re0">#accordion</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">150px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-left</span><span class="sy0">:</span> <span class="re3">40px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">2px</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Update 11-May-2008: в IE7 эта конструкция не работает<br />
#accordion &gt; li:not([class=&quot;active&quot;]) ul {<br />
&nbsp; &nbsp; display: none;<br />
}<br />
/**/</span><br />
<span class="coMULTI">/* Для максимальной совместимости с IE7 используем следующие<br />
&nbsp; &nbsp;два правила (их теоретически можно было сделать видимыми только <br />
&nbsp; &nbsp;для IE7, но смысла загромождать код нет :-) ). Легко заметить, что<br />
&nbsp; &nbsp;эти два правила есть инверсия предыдущего закомментированного правила */</span><br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li<span class="br0">&#91;</span>class<span class="sy0">=</span><span class="st0">&quot;active&quot;</span><span class="br0">&#93;</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li<span class="re2">:hover </span>ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li<span class="re2">:last-child </span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> li<span class="re1">.active</span> <span class="sy0">&gt;</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p>Не забудем про IE6:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p1006">
        <div class="code css" id="p100code6">
<span class="sy0">*</span> html <span class="re0">#accordion</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">2px</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* IE7 не понимает last-child */</span><br />
<span class="sy0">*</span><span class="re2">:first-child</span><span class="sy0">+</span>html <span class="re0">#accordion</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li<span class="re1">.active</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li<span class="re1">.active</span> ul a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw1">blue</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li table <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li<span class="re1">.active</span> table <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li a<span class="re2">:hover </span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">position</span><span class="sy0">:</span> <span class="kw2">static</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="coMULTI">/* Спасибо Ивану Маркееву (http://markeev.labwr.ru) за замеченную опечатку */</span><br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li a<span class="re2">:hover </span>table <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p><a href="http://blog.sjinks.pro/test/accordion/accordion3.html">Рабочий пример</a>.</p>
<p class="centered"><a href="http://www.odesk.com/users/~~2a9d5e50f22b834c"><img src="http://www.odesk.com/api/exams/32167/image" alt="oDesk Certified CSS 2.0 Designer"/></a> <a href="http://www.odesk.com/users/~~2a9d5e50f22b834c"><img src="http://www.odesk.com/api/exams/35154/image" alt="oDesk Certified XHTML 1.0 Designer"/></a></p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/css/100-css-accordion-without-javascript/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/css/100-css-accordion-without-javascript/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Парочка аккордеонов</title>
		<link>http://blog.sjinks.pro/javascript/91-couple-of-accordions/</link>
		<comments>http://blog.sjinks.pro/javascript/91-couple-of-accordions/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 18:19:53 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[Scriptaculous]]></category>
		<category><![CDATA[WCAG]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[аккордеон]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=91</guid>
		<description><![CDATA[Несколько вариантов реализации меню-аккордеона с использованием библиотеки Prototype Недавно в одном из проектов появилась необходимость использовать аккордеон (подобный используемому на Desert Ridge Marketplace). Любят заказчики дешевые эффекты, ничего здесь не поделаешь Чем мне не понравился аккордеон на Desert Ridge&#160;&#8212;&#160;это полной зависимостью от JavaScript: если JavaScript выключен, навигация по сайту переставала работать. Это мне не понравилось, [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/javascript/91-couple-of-accordions/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Несколько вариантов реализации меню-аккордеона с использованием библиотеки <a href="http://blog.sjinks.pro/tag/prototype/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Prototype">Prototype</a></em></h2>
<p>Недавно в одном из проектов появилась необходимость использовать <a href="http://blog.sjinks.pro/tag/accordion/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  аккордеон">аккордеон</a> (подобный используемому на Desert Ridge Marketplace). Любят заказчики дешевые эффекты, ничего здесь не поделаешь <img src='http://static.sjinks.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Чем мне не понравился аккордеон на Desert Ridge&nbsp;&mdash;&nbsp;это полной зависимостью от <a href="http://blog.sjinks.pro/tag/javascript/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a>: если <a href="http://blog.sjinks.pro/tag/javascript/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a> выключен, навигация по сайту переставала работать. Это мне не понравилось, и я решил написать свой. </p>
<p>Представляю два решения:</p>
<ol>
<li>Подменю сворачивается/разворачивается по щелчку, элементы меню не зависят друг от друга;</li>
<li>Подменю сворачивается/разворачивается по щелчку, при этом не может быть более одного развёрнутого подменю.</li>
</ol>
<p>При выключенном JavaScript оба аккордеона трансформируются в двухуровневый список.<span id="more-91"></span></p>
<p>Поехали. Будем использовать следующую разметку:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p9112">
        <div class="code xhtml" id="p91code12">
&nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;accordion&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.3<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 1.4<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span> <span class="kw3">class</span><span class="sy0">=</span><span class="st0">&quot;active&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.3<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 2.4<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 3<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 3.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 3.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>Item 4<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 4.1<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="kw2">li</span>&gt;&lt;<span class="kw2">a</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">&quot;#&quot;</span>&gt;</span>SubItem 4.2<span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">a</span>&gt;&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">li</span>&gt;</span><br />
&nbsp; &nbsp; <span class="sc2">&lt;<span class="sy0">/</span><span class="kw2">ul</span>&gt;</span>
        </div>
    </div>
</div>

<p>С разметкой всё просто: обычный двухуровневый список; предполагается, что меню Item2 активно (то есть должно быть развёрнуто).</p>
<p>Оформим аккордеон при помощи <a href="http://blog.sjinks.pro/tag/css/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">CSS</a>:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p9113">
        <div class="code css" id="p91code13">
a <span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span> <span class="kw1">color</span><span class="sy0">:</span> <span class="re0">#00F</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
a<span class="re2">:hover </span><span class="br0">&#123;</span> <span class="kw1">text-decoration</span><span class="sy0">:</span> <span class="kw2">underline</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
<span class="re0">#accordion</span> a <span class="br0">&#123;</span> <span class="kw1">outline</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <br />
<span class="re0">#accordion</span><span class="sy0">,</span> <span class="re0">#accordion</span> ul<span class="sy0">,</span> <span class="re0">#accordion</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">list-style</span><span class="sy0">:</span> <span class="kw2">none</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">margin</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">display</span><span class="sy0">:</span> <span class="kw2">block</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">width</span><span class="sy0">:</span> <span class="re3">150px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> ul <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">margin-left</span><span class="sy0">:</span> <span class="re3">40px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">2px</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> <span class="sy0">&gt;</span> li<span class="re2">:last-child </span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="re0">#accordion</span> li<span class="re1">.active</span> <span class="sy0">&gt;</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p>Покажем уродство IE6, не понимающего CSS&nbsp;2.1:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p9114">
        <div class="code css" id="p91code14">
<span class="sy0">*</span> html <span class="re0">#accordion</span> li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="re3">1px</span> <span class="kw2">solid</span> <span class="re0">#CCC</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="re3">2px</span> <span class="re3">5px</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li li <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="kw1">padding</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">border-bottom</span><span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li<span class="re1">.active</span> a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw2">red</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span><br />
<br />
<span class="sy0">*</span> html <span class="re0">#accordion</span> li<span class="re1">.active</span> ul a <span class="br0">&#123;</span><br />
&nbsp; &nbsp; <span class="kw1">color</span><span class="sy0">:</span> <span class="kw1">blue</span><span class="sy0">;</span><br />
<span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p>За использование пяти лишних правил я и не люблю IE6 (и это мы еще используем простую разметку).</p>
<p>Переходим к JavaScript. В данных примерах я использую библиотеки Prototype и <a href="http://blog.sjinks.pro/tag/scriptaculous/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Scriptaculous">Scriptaculous</a> Effects (всё очень легко переводится на jQuery).<br />
<strong>Вариант 1: независимые элементы меню</strong></p>
          
<div class="codebox">
    <div class="the_code" style="" id="p9115">
        <div class="code javascript" id="p91code15">
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li:not([class=&quot;active&quot;]) ul'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'setStyle'</span><span class="sy0">,</span> <span class="br0">&#123;</span> display <span class="sy0">:</span> <span class="st0">'none'</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'addClassName'</span><span class="sy0">,</span> <span class="st0">'collapsed'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li[class=&quot;active&quot;] ul'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'addClassName'</span><span class="sy0">,</span> <span class="st0">'expanded'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li &gt; a'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'observe'</span><span class="sy0">,</span> <span class="st0">'click'</span><span class="sy0">,</span> <br />
&nbsp; &nbsp; <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; e.<span class="kw3">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> ul <span class="sy0">=</span> e.<span class="me1">findElement</span><span class="br0">&#40;</span><span class="st0">'a'</span><span class="br0">&#41;</span>.<span class="me1">up</span><span class="br0">&#40;</span><span class="st0">'li'</span><span class="br0">&#41;</span>.<span class="me1">down</span><span class="br0">&#40;</span><span class="st0">'ul'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>ul<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Effect.<span class="me1">toggle</span><span class="br0">&#40;</span>ul.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'collapsed'</span><span class="br0">&#41;</span>.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'expanded'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">'blind'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#41;</span><span class="sy0">;</span>
        </div>
    </div>
</div>

<p><a href="http://blog.sjinks.pro/test/accordion/accordion1.html">Рабочий пример для первого варианта.</a></p>
<p><strong>Вариант 2: развёрнуто не более одного меню</strong></p>
          
<div class="codebox">
    <div class="the_code" style="" id="p9116">
        <div class="code javascript" id="p91code16">
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li:not([class=&quot;active&quot;]) ul'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'setStyle'</span><span class="sy0">,</span> <span class="br0">&#123;</span> display <span class="sy0">:</span> <span class="st0">'none'</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'addClassName'</span><span class="sy0">,</span> <span class="st0">'collapsed'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li[class=&quot;active&quot;] ul'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'addClassName'</span><span class="sy0">,</span> <span class="st0">'expanded'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
$$<span class="br0">&#40;</span><span class="st0">'#accordion &gt; li &gt; a'</span><span class="br0">&#41;</span>.<span class="me1">invoke</span><span class="br0">&#40;</span><span class="st0">'observe'</span><span class="sy0">,</span> <span class="st0">'click'</span><span class="sy0">,</span> <br />
&nbsp; &nbsp; <span class="kw2">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span><br />
&nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; e.<span class="kw3">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> ul <span class="sy0">=</span> e.<span class="me1">findElement</span><span class="br0">&#40;</span><span class="st0">'a'</span><span class="br0">&#41;</span>.<span class="me1">up</span><span class="br0">&#40;</span><span class="st0">'li'</span><span class="br0">&#41;</span>.<span class="me1">down</span><span class="br0">&#40;</span><span class="st0">'ul'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>ul<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>ul.<span class="me1">hasClassName</span><span class="br0">&#40;</span><span class="st0">'collapsed'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> c <span class="sy0">=</span> $$<span class="br0">&#40;</span><span class="st0">'#accordion ul:not([class=&quot;collapsed&quot;])'</span><span class="br0">&#41;</span><span class="br0">&#91;</span>0<span class="br0">&#93;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>c<span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Effect.<span class="me1">BlindUp</span><span class="br0">&#40;</span>c.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'collapsed'</span><span class="br0">&#41;</span>.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'expanded'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> Effect.<span class="me1">BlindDown</span><span class="br0">&#40;</span>ul.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'collapsed'</span><span class="br0">&#41;</span>.<span class="me1">toggleClassName</span><span class="br0">&#40;</span><span class="st0">'expanded'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span><br />
<span class="br0">&#41;</span><span class="sy0">;</span>
        </div>
    </div>
</div>

<p><a href="http://blog.sjinks.pro/test/accordion/accordion2.html">Рабочий пример для второго варианта.</a></p>
<p>Всё очень просто!</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/javascript/91-couple-of-accordions/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/javascript/91-couple-of-accordions/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

