无序列表上的CSS样式问题

时间:2015-01-30 14:27:57

标签: css

我正在努力想出一个标签控件,其中包含了jsfiddle的链接以及我想要完成的内容。我在这里遇到的问题是消除Alpha之后无序列表末尾的曲线。我以很多不同的方式尝试过它。看起来下一个标签已被切断。

http://jsfiddle.net/v7u3xsxk/

CSS&标签。

<ul class="tabrow">
    <li id="a" class="current"><a href="#tab1">Adam</a></li>
    <li id="b"><a href="#tab2">Andrew</a></li>
    <li id="c"><a href="#tab3">Alpha</a></li>
</ul>

.tabrow {
    list-style: none;
    margin: 50px 0 0px;
    padding: 0;
    line-height: 35px;
    height: 37px;
    overflow: hidden;   
    font-family: Arial,Helvetica, sans-serif;
    /*position: relative;*/
    width:auto;
}

.tabrow li {
    border: 1px solid #AAA;
    background: #D1D1D1;
    background: -o-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -ms-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -moz-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -webkit-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    display: inline-block;
    position: relative;
    z-index: 0;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 #FFF;
    text-shadow: 0 1px #FFF;
    margin: 0 -5px;
    padding: 0 30px;
    height: 37px;
    line-height: 37px;

}

.tabrow a {
    color: #555;
    text-decoration: none;
}

.tabrow li.current {
    background: #FFF;
    color: #333;
    z-index: 2;
    border-top-color: #FFF;
}

.tabrow:before {
    position: absolute;
    content: " ";
    width: 100%;
    top: 0;
    left: 0;
    border-top: 1px solid #AAA;
    z-index: 1;
}

.tabrow li:before,
.tabrow li:after {
    border: 1px solid #AAA;
    position: absolute;
    top: -1px;
    width: 6px;
    height: 6px;
    content: " ";
}

.tabrow li:before {
    left: -7px;
    border-top-right-radius: 6px;
    border-width: 1px 1px 0px 0px;
    box-shadow: 2px 0px 0 #ECECEC;
}

.tabrow li:after {
    right: -7px;
    border-top-left-radius: 6px;
    border-width: 1px 0px 0px 1px;
    box-shadow: -2px 0px 0 #ECECEC;
}

.tabrow li.current:before {
    box-shadow: 2px 0px 0 #FFF;
}

.tabrow li.current:after {
    box-shadow: -2px 0px 0 #FFF;
}

2 个答案:

答案 0 :(得分:1)

不确定为什么使用了before和after元素。如果删除这些似乎工作。 http://jsfiddle.net/v7u3xsxk/5/

.tabrow {
    list-style: none;
    margin: 50px 0 0px;
    padding: 0;
    line-height: 35px;
    height: 37px;
    overflow: hidden;   
    font-family: Arial,Helvetica, sans-serif;
    /*position: relative;*/
    width:auto;
}

    .tabrow li {
        border: 1px solid #AAA;
        background: #D1D1D1;
        background: -o-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
        background: -ms-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
        background: -moz-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
        background: -webkit-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
        background: linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
        display: inline-block;
    border-radius: 5px 5px 0 0;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 #FFF;
        text-shadow: 0 1px #FFF;
        margin: 0 -5px;
        padding: 0 30px;
        height: 37px;
        line-height: 37px;

    }

    .tabrow a {
        color: #555;
        text-decoration: none;
    }

    .tabrow li.current {
        background: #FFF;
        color: #333;
        z-index: 2;
        border-top-color: #FFF;
    }



    .tabrow li.current {
        box-shadow: 2px 0px 0 #FFF;
    }

    .tabrow li.current {
        box-shadow: -2px 0px 0 #FFF;
    }

答案 1 :(得分:0)

如果您从position: relative;课程中删除.tabrow li,则会解决问题。

更新的代码:

.tabrow li {
    border: 1px solid #AAA;
    background: #D1D1D1;
    background: -o-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -ms-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -moz-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: -webkit-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    background: linear-gradient(top, #ECECEC 50%, #D1D1D1 100%);
    display: inline-block;
      //removed line here
    z-index: 0;
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 #FFF;
    text-shadow: 0 1px #FFF;
    margin: 0 -5px;
    padding: 0 30px;
    height: 37px;
    line-height: 37px;

}

更新:此方法会影响菜单其余部分的样式。