【发布时间】:2011-11-11 21:11:10
【问题描述】:
所以我想创建一个只使用 CSS 的标签系统。
到目前为止我的工作有效,但我不知道如何让一个标签默认可见。
标签:
<section class="tabs">
<ul>
<li><a href="#tab1">1</a></li>
<li><a href="#tab2">2</a></li>
<li><a href="#tab3">3</a></li>
</ul>
<section id="tab1"> content for 1... </section>
<section id="tab2"> content for 2... </section>
<section id="tab3"> content for 3... </section>
</section>
还有css(最重要的部分):
.tabs section{
display: none;
}
.tabs section:target{
display: block;
}
所以如果我将section:first-child 设置为阻止(默认情况下第一个选项卡应该可见),那么如果 URL 中有一个锚点,我会得到两个可见部分:第一个选项卡和目标选项卡...
我该如何克服这个问题?
【问题讨论】:
-
这取决于您是否能够或愿意使用 JavaScript。因为 CSS 只控制表示,而不是行为,所以它无法提供您需要的功能。
-
我已经有处理标签显示/隐藏的javascript,css只是关闭js的浏览器的后备。
-
这些标签都在一个页面上吗?非 JS 访问者如何能够看到默认隐藏的内容?
-
通过点击其中一个链接,地址变为site.com/#tabN,触发:target on #tabN...
-
我知道你已经接受了我对你的问题的回答,但我只是希望你确保你检查了我编辑的解决方案,以显示链接是活动的(正如你的评论所指出的那样)。