Google Chrome位置:固定border-radius overflow:隐藏问题

时间:2013-04-20 16:48:07

标签: css google-chrome overflow css-position css3

我在使用border-radius元素position:fixed时使用overflow:hidden时遇到问题。 overflow属性似乎不起作用。当您将鼠标悬停在导航项目上时,div的红色背景.bmopt应该被裁剪为#mstrip的形状,而只是显示为标准矩形。< / p>

HTML:

<div id='mstrip'>
    <div class='mlabel first'>
        <a href='#' class='mopt'>Item1</a>
        <div class='bmopt'></div>
    </div>
    <div class='mlabel'>
        <a href='#' class='mopt'>Item2</a>
        <div class='bmopt'></div>
    </div>
    <div class='mlabel'>
        <a href='#' class='mopt'>Item3</a>
        <div class='bmopt'></div>
    </div>
    <div class='mlabel'>
        <a href='#' class='mopt'>Item4</a>
        <div class='bmopt'></div>
    </div>
    <div class='mlabel'>
        <a href='#' class='mopt'>Item5</a>
        <div class='bmopt'></div>
    </div>
</div>

CSS:

#mstrip {
    width: 92px;
    height: 223px;
    position: fixed;
    top: 20px;
    border-radius: 40% 8px;
    z-index: 100;
    background: #000;
    overflow: hidden;
    box-shadow: 0 0 4px #000;
}
.mlabel {
    width: 92px;
    height: 35px;
}
.first {
    margin-top: 24px;
}
.mopt {
    display: block;
    width: 92px;
    height: 29px;
    padding-top: 6px;
    text-align: center;
    color: #FFF;
    text-decoration: none;
    font: menu;
    font-size: 0.9em;
    text-shadow: 0 0 1px #FFF;
}
.bmopt {
    position: relative;
    width: 92px;
    height: 35px;
    background: #F00;
    margin-top: -35px;
    z-index: -1;
}

以下是此错误的一个有效示例:http://jsfiddle.net/UxLHR/7/

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

我认为问题来自改变元素的不透明度;这会创建一个单独的堆叠上下文,可能是错误的起源。

我已经解决了它使它更简单;只是在悬停时更改mlabel类的颜色,并在此设置转换。我不认为内在的div是必要的。

.mlabel {
    width: 92px;
    height: 35px;
    background-color: black;
    -webkit-transition: background-color 1s;
}
.mlabel:hover {
    background-color: red;
}

updated fiddle

(仅适用于webkit)