2

我正在使用来自以下站点的代码:http ://calebogden.com/css-tabs/它允许我创建一些 CSS 选项卡,但是,只有将鼠标悬停在其中一个选项卡上时才能看到内容,理想情况下我希望内容是可见的,而无需人们这样做。

代码是:

<!-- HTML -->
<div id="content" role="main">

            <div id="tabs">
                <nav class="tabs">
                    <a href="#">About Scamper</a>
                    <section class="tabs-content">
                        Scamper is the coolest.
                    </section>
                    <a href="#">His Anatomy</a>
                    <section class="tabs-content">
                        Partly because he's a penguin.
                    </section>
                    <a href="#">Life Achievements</a>
                    <section class="tabs-content">
                        But also he had a movie made about him.
                    </section>
                    <a href="#">More Info</a>
                    <section class="tabs-content">
                        These tabs sure are great.
                    </section>
                </nav>
            </div>

        </div>

<!-- css -->

#content { padding: 25px; background: #FFF; }

    #tabs {
        border: 1px solid #DEDEDE;
        -webkit-border-radius: 4px;
        -moz-border-radius: 4px;
        border-radius: 4px;
        height: 205px;
        position: relative;
        overflow: hidden;
    }
    .tabs-content {
        padding: 25px;
        height: 120px;
        overflow: hidden;
        position: absolute;
        bottom: 0;
        left: 0;
        display: none;
    }
    .tabs {
        overflow: hidden; 
        background: #e1e1e1; 
        background: -moz-linear-gradient(center top , #f2f2f2, #e1e1e1); 
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f2f2f2), color-stop(100%,#e1e1e1)); 
        -moz-border-radius: 4px 4px 0 0; 
        -webkit-border-radius: 4px 4px 0 0; 
        border-radius: 4px 4px 0 0; 
        -webkit-box-shadow: 0 1px 0 #FFF inset; 
        -moz-box-shadow: 0 1px 0 #FFF inset; 
        box-shadow: 0 1px 0 #FFF inset;
    }
    .tabs a {
        display: block; 
        float: left; 
        font: 15px/35px Arial, Helvetica, Sans-serif; 
        padding: 0 20px 0 40px; 
        color: #999; 
        text-shadow: 0 1px 0 #FFF;
        border-left: solid 1px rgba(0,0,0,0.05);
        border-right: solid 1px rgba(255,255,255,0.7);
        position: relative;
        overflow: hidden;
    }
    .tabs a:first-child {
        border-left-width: 0;
    }
    .tabs a:last-child {
        border-right-width: 0;
    }
    .tabs a:after {
        content: '✔';
        position: absolute;
        top: 0;
        left: 10px;
        line-height: 21px;
        font-size: 10px;
        width: 21px; 
        text-align: center; 
        margin: 7px 10px 5px 0; 
        background: #000; 
        font-size: 12px; 
        -moz-border-radius: 21px; 
        -webkit-border-radius: 21px; 
        border-radius: 21px; 
        background: #bdbdbd; 
        background: -moz-linear-gradient(center top , #d4d4d4, #bdbdbd); 
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#d4d4d4), color-stop(100%,#bdbdbd)); 
        -webkit-box-shadow: 0 1px 0 0 #FFF, 0 1px 0 0 rgba(0,0,0,0.25) inset; 
        -moz-box-shadow: 0 1px 0 0 #FFF, 0 1px 0 0 rgba(0,0,0,0.25) inset; 
        box-shadow: 0 1px 0 0 #FFF, 0 1px 0 0 rgba(0,0,0,0.25) inset; 
        text-shadow: 0 1px 0 #999; 
        color: #ffffff;
    }
    .tabs a:hover {
        background: #FFF;
        border-left-color: #CCC;
    }
    .tabs a:hover:after {
        background: #038bd5; 
        background: -moz-linear-gradient(center top , #2dc3fc, #038bd5); 
        background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2dc3fc), color-stop(100%,#038bd5)); 
        text-shadow: 0 1px 0 #096c9e; 
        -webkit-box-shadow: 0 1px 0 0 rgba(255,255,255,0.45), 0 1px 0 0 rgba(0, 0, 0, 0.25) inset, 0 0 5px 0 rgba(0,148,255,0.85); 
        -moz-box-shadow: 0 1px 0 0 rgba(255,255,255,0.45), 0 1px 0 0 rgba(0, 0, 0, 0.25) inset, 0 0 5px 0 rgba(0,148,255,0.85); 
        box-shadow: 0 1px 0 0 rgba(255,255,255,0.45), 0 1px 0 0 rgba(0, 0, 0, 0.25) inset, 0 0 5px 0 rgba(0,148,255,0.85)
    }
    .tabs a:hover + .tabs-content {
        display: block;
    }
    .tabs-content:hover {
        display: block;
    }
</style>

任何人都可以根据脚本中提供的代码协助我在 CSS 中进行编辑以执行此操作吗?

4

3 回答 3

2

有一个更新版本的代码,允许您单击选项卡以查看内容。单击后,内容仍然可见。

http://calebogden.com/advanced-css-tabs/

相关摘录:

由于我们将使用目标选择器,我们需要将 ID 的 [原文如此] 添加到链接,并选择 HREF 属性。这将允许我们通过它的目标选择选项卡,它是来自同一方法的下一个兄弟。链接的新 HTML 如下所示:

<a id="tab1" href="#tab1">Scamper</a>

随着 HTML 的修改,现在我们需要做的就是将选择器从使用 :hover 更改为 :target。

.tabs a:target { declarations } 
.tabs a:target:after { declarations } 
.tabs a:target + section.tabs-content { declarations }

:target这是一个显示选择器的工作小提琴:http: //jsfiddle.net/8BKtz/

要选择初始选项卡,您可以将哈希放入 URL。

@matthias.p 展示了一个更好的解决方案,通过使用更智能的选择器来选择初始选项卡。然而,所有解决方案(包括原始代码和我的解决方案)都依赖于较新的 CSS 选择器,因此它们将在 IE8 及更低版本中部分或完全中断,即使添加了像 Modernizr 这样的库以支持所使用的 HTML 5 元素(如section)。

现在,我可能会使用一段 JavaScript 来使代码更广泛地兼容。很高兴知道将来会有纯 CSS 解决方案可用。

这是一个完整的解决方案,它使用 JS 来实现更大的兼容性:http: //jsfiddle.net/hN4S3/1/

于 2012-08-18T14:08:39.283 回答
2

通过使用:target选择器,这是可能的。但是所有其他答案的问题是,起初没有选择选项卡,但通常第一个选项卡已经被选中,并且根本没有选择选项卡的状态不存在。以下是我如何进行标签导航: http://jsfiddle.net/UejbP/1/ 正如您所见,第一个标签是自动选择的——没有任何 javascript。

于 2012-08-18T14:32:45.220 回答
0
.tabs-content {
    padding: 25px;
    height: 120px;
    overflow: hidden;
    position: absolute;
    bottom: 0;
    left: 0;
    display: none; //REMOVE THIS LINE
}

如果您希望内容始终可见,这听起来像是您想要的那样,那么只需删除该行就可以了:)

于 2012-08-18T14:08:25.917 回答