我在使用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/
有解决方法吗?
答案 0 :(得分:0)
我认为问题来自改变元素的不透明度;这会创建一个单独的堆叠上下文,可能是错误的起源。
我已经解决了它使它更简单;只是在悬停时更改mlabel类的颜色,并在此设置转换。我不认为内在的div是必要的。
.mlabel {
width: 92px;
height: 35px;
background-color: black;
-webkit-transition: background-color 1s;
}
.mlabel:hover {
background-color: red;
}
(仅适用于webkit)