Ответ 1
Архив демоверсии html5rockstars.com находится здесь: https://web.archive.org/web/20121118201357/http://htmlrockstars.com/blog/using-css-to-create-a-tabbed. -поперечник-зонный нет-JS-требуется/
О том же методе рассказывается, возможно, лучше, здесь: http://www.sitepoint.com/css3-tabs-using-target-selector/
Все сводится к тому, что вы используете CSS3 :target
селектор :target
, чтобы показать, какая вкладка выбрана в данный момент. Это будет работать только в том случае, если на странице только один набор вкладок, но имеет преимущество полной поддержки кнопки браузера назад. Например:
<ul id="menu">
<li><a href="#tab1">First tab</a></li>
<li><a href="#tab2">Second tab</a></li>
<li><a href="#tab3">Third tab</a></li>
</ul>
<div id="tab1" class="tab-content">Content of first tab</div>
<div id="tab2" class="tab-content">Content of second tab</div>
<div id="tab3" class="tab-content">Content of third tab</div>
И тогда в вашей таблице стилей:
.tab-content {
display: none;
}
.tab-content:target {
display: block;
}
К сожалению, это не идеально, так как содержимое вкладки не будет отображаться до тех пор, пока не будет нажата одна из ссылок (если вы не page.html#tab1
на page.html#tab1
). Вторая ссылка выше предлагает что-то вроде следующего в качестве решения этой проблемы:
.tab-content {
z-index: 0;
background-color: white;
position: absolute;
top: 100px;
width: 100%;
height: 300px;
}
.tab-content:first-child {
z-index: 1;
}
.tab-content:target {
z-index: 2;
}
Это несколько хакерски, а также требует абсолютного позиционирования.
В качестве альтернативы, если вы не возражаете, чтобы ваша вкладка по умолчанию была последней в html (вы можете упорядочить ссылки, как вам нравится, конечно), вы можете сделать это:
<ul id="menu">
<li><a href="#tab1">First tab</a></li>
<li><a href="#tab2">Second tab</a></li>
<li><a href="#tab3">Third tab</a></li>
</ul>
<div class="tab-folder">
<div id="tab2" class="tab-content">Content of second tab</div>
<div id="tab3" class="tab-content">Content of third tab</div>
<div id="tab1" class="tab-content">Content of first tab</div>
</div>
CSS:
.tab-folder > .tab-content:target ~ .tab-content:last-child, .tab-folder > .tab-content {
display: none;
}
.tab-folder > :last-child, .tab-folder > .tab-content:target {
display: block;
}
Возможно, это самое чистое решение, которое я бы выбрал среди других, если только я не подозревал, что многие люди будут посещать мою страницу с отключенным CSS.