我对带有圆角的 CSS3 菜单有点问题,我不确定这是否是我应用类的方式导致了我的问题。请注意,在下面的示例中,为了节省空间,我省略了代码的-moz-
和变体,但它们存在于我的代码中。-webkit-
我有一个<div>
包含自定义<ul>
菜单的标签,以允许下拉功能,并且还li:hover
用于突出显示所选菜单。而且,有史以来第一次(以我的经验),IE 第一次真正完美地运行,而 Firefox 和 Chrome 需要一些调整。
我的最左侧菜单项的状态存在问题li:hover
,因为当它悬停时,它与角落对齐,然后在“mouseout”之后它也影响border-radius
了包含<ul>
标签的。我能够通过border-radius
首先将 应用于 div 标签然后隐藏溢出来解决此问题,但是由于菜单项包含下拉列表,因此它们没有被显示。因此,我将左侧菜单项设置为 class of menu_end
,并将border-top-left-radius
andborder-bottom-left-radius
的li
and设置为与标签li:hover
的 相匹配,我认为这已经解决了问题。border-radius
<ul>
.menu_end {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.menu_end li:hover {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
但是,我注意到在li:hover
状态下创建的子菜单也继承了这些左圆角的样式,我似乎无法清除它们。我试过添加:
.menu_end ul li ul li{
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
.menu_end ul li ul li:hover {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
由于某种原因不起作用。我还尝试为嵌套<li>
元素分配自己的类:
.menu_end_drop li {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
.menu_end_drop li:hover {
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
这两种方法似乎都不起作用,奇怪的是,如果我在border-radius
不指定位置的情况下应用样式,它会影响两个先前未指定的角,但不会影响左上角和左下角。
我认为这可能与我的样式顺序有关,但我的理解是,稍后在 css 文件中应用的样式会取代以前的任何样式,所以我有点不知所措!
我已经在这个小提琴中包含了所有内容-> http://jsfiddle.net/Z5qWe/2/
任何帮助是极大的赞赏,
最好的祝愿,
乔