如何使用CSS 3保持弯曲的边框

时间:2012-07-22 16:33:42

标签: html css

边框半径样式不适用于以下代码

HTML

<ul id="menu" class="menu">
    <li class="active"><a href="#description">Limerick One</a></li>
    <li><a href="#usage">Limerick Two</a></li>
    <li><a href="#download">Limerick Three</a></li>
</ul>​

CSS:

.menu { padding: 0; clear: both; border-radius:10px; }
.menu li { display: inline; }

.menu li a {
    padding: 6px; float:left;font-family:Gill, Helvetica, sans-serif;  border-right: 1px solid #000; border-bottom: none;
    text-decoration: none; color: #fff; font-weight: bold;
    background-image: linear-gradient(bottom, rgb(68,68,68) 0%, rgb(34,34,34) 54%, rgb(68,68,68) 100%);
    background-image: -o-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(34,34,34) 54%, rgb(68,68,68) 100%);
    background-image: -moz-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(34,34,34) 54%, rgb(68,68,68) 100%);
    background-image: -webkit-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(34,34,34) 54%, rgb(68,68,68) 100%);
    background-image: -ms-linear-gradient(bottom, rgb(68,68,68) 0%, rgb(34,34,34) 54%, rgb(68,68,68) 100%);

    background-image: -webkit-gradient(
        linear,
        left bottom,
        left top,
        color-stop(0, rgb(68,68,68)),
        color-stop(0.54, rgb(34,34,34)),
        color-stop(1, rgb(68,68,68))
    );
}

.menu li.active a  { 
    background-image: linear-gradient(bottom, rgb(138,25,25) 0%, rgb(186,52,52) 54%, rgb(138,25,25) 100%);
    background-image: -o-linear-gradient(bottom, rgb(138,25,25) 0%, rgb(186,52,52) 54%, rgb(138,25,25) 100%);
    background-image: -moz-linear-gradient(bottom, rgb(138,25,25) 0%, rgb(186,52,52) 54%, rgb(138,25,25) 100%);
    background-image: -webkit-linear-gradient(bottom, rgb(138,25,25) 0%, rgb(186,52,52) 54%, rgb(138,25,25) 100%);
    background-image: -ms-linear-gradient(bottom, rgb(138,25,25) 0%, rgb(186,52,52) 54%, rgb(138,25,25) 100%);

    background-image: -webkit-gradient(
        linear,
        left bottom,
        left top,
        color-stop(0, rgb(138,25,25)),
        color-stop(0.54, rgb(186,52,52)),
        color-stop(1, rgb(138,25,25))
    );
}

.content {
    float: left; clear: both;
    background: #fff; padding: 10px 20px 20px; width: 400px;
}

这是小提琴:http://jsfiddle.net/avkKL/

3 个答案:

答案 0 :(得分:0)

-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;

添加webkit和moz前缀。并非所有版本的Chrome / Firefox / Safari都尊重非前缀属性。

答案 1 :(得分:0)

您没有.menu的边框设置,因为内容没有高度。半径设置边框的半径,但必须存在边框才能工作。

例如,将border:1px solid; height:24px添加到.menu。

答案 2 :(得分:0)

Children of an element with a border-radius will always bleed out of their parent

您必须直接在要舍入的元素上设置border-radius

.menu li:first-child a { border-radius: 10px 0 0 10px }
.menu li:last-child a  { border-radius: 0 10px 10px 0 }

这是小提琴:http://jsfiddle.net/avkKL/1/