简单的CSS选项卡 - 需要在活动选项卡上打破边框

时间:2010-05-10 13:15:46

标签: css tabs

我想创建一个非常简单的标签样式,如下所示:

  _____   _____   _____
_|_____|_|     |_|_____|______________

所以基本上边界框上有一个水平边框,它为活动标签打破。我正在使用基本列表,使用以下CSS,但外边框始终显示在各个选项卡上。我尝试了各种定位和z-index也无济于事。

ul.tabHolder {
    overflow: hidden;
    clear: both;
    margin: 1em 0;
    padding: 0;
    border-bottom: 1px solid #666;
}
ul.tabHolder li {
    list-style: none;
    float: left;
    margin: 0 3px -1px; /* -1 margin to move tab down 1px */
    padding: 3px 8px;
    background-color: #444;
    border: 1px solid #666;
    font-size: 15px;
}
ul.tabHolder li.active {
    background-color: #944;
    border-bottom: 1px solid #944;
}

3 个答案:

答案 0 :(得分:4)

请Eric Meyer尝试this solution

以下内容从网站复制,以确保在网站关闭,更改或中断时答案仍然有效。

HTML

<div id="navcontainer">
    <ul id="navlist">
        <li id="active"><a href="#" id="current">Item one</a></li>
        <li><a href="#">Item two</a></li>
        <li><a href="#">Item three</a></li>
        <li><a href="#">Item four</a></li>
        <li><a href="#">Item five</a></li>
    </ul>
</div>

CSS

#navlist
{
    padding: 3px 0;
    margin-left: 0;
    border-bottom: 1px solid #778;
    font: bold 12px Verdana, sans-serif;
}

#navlist li
{
    list-style: none;
    margin: 0;
    display: inline;
}

#navlist li a
{
    padding: 3px 0.5em;
    margin-left: 3px;
    border: 1px solid #778;
    border-bottom: none;
    background: #DDE;
    text-decoration: none;
}

#navlist li a:link { color: #448; }
#navlist li a:visited { color: #667; }

#navlist li a:hover
{
    color: #000;
    background: #AAE;
    border-color: #227;
}

#navlist li a#current
{
    background: white;
    border-bottom: 1px solid white;
}
  

关于代码   必须修改Listamatic站点中的某些列表,以便它们可以在Listamatic的简单列表模型上工作。如有疑问,请先使用外部资源,或者至少比较两种型号,看看哪种型号符合您的需求。

答案 1 :(得分:2)

尽可能少地更改现有代码 - 对display: inline-block标记li.menu容器div上的边框:

.menu {
    border-bottom: 1px solid #666;
}
ul.tabHolder {
    overflow: hidden;
    margin: 1em 0 -2px;
    padding: 0;
}
ul.tabHolder li {
    list-style: none;
    display: inline-block;
    margin: 0 3px;
    padding: 3px 8px 0;
    background-color: #444;
    border: 1px solid #666;
    font-size: 15px;
}
ul.tabHolder li.active {
    background-color: #944;
    border-bottom-color: #944;
}

HTML用于说明(在底部添加div以显示将活动制表符混合为div颜色):

<div class="menu">
    <ul class="tabHolder">
        <li>Menu 1</li>
        <li class="active">Menu 2</li>
        <li>Menu 3</li>
    </ul>
</div>
<div style="background-color: #944; height: 1em">

答案 2 :(得分:1)

&#13;
&#13;
.tab {
  display: inline-block;
  background-color: #aaa;
  padding: 4px;
  border: 1px solid #888;
  border-bottom: none;
  
  position: relative;
  bottom:-1px;
  z-index: -1;
}

.tab-body {
  position: relative;
  height: 100px;
  width: 200px;
  padding: 4px;
  background-color: #ccc;
  border: 1px solid #888;
  z-index: 1;
}

.tab.active {
  background-color: #ccc;
  z-index: 2;
}
&#13;
<div class="tab tab1">Tab 1</div>
<div class="tab tab2 active">Tab 2</div>
<div class="tab tab3">Tab 3</div>

<div class="tab-body">Tab Body</div>
&#13;
&#13;
&#13;