我尝试使用CSS制作一个带有HTML表格的水平菜单栏来设计它。但是填充并不像我认为的那样工作:当我试图在用户用鼠标“悬停它”时改变整个li的背景颜色。但填充似乎出错了。
这是我在CSS中的代码(使用Sassy CSS):
/* just to be sure the default of browser doesn't change look */
* {
margin:0;
padding:0;
}
/* some other design code ... */
#nav-menu {
padding:5px;
text-align:center;
/* change background: browser specific gradient */
background:$menu-bgcolor;
li {
list-style:none;
display:inline;
padding:2px 10px 2px 10px;
:hover {
background-color:$deco-dark;
color:$deco-verylight;
}
}
}
但结果如下所示:
正如您所见,更改的背景颜色(在这种情况下为$deco-dark
)不会影响整个li
区域(具有渐变的区域),正如我所料。我该怎么做才能改变这种行为?
答案 0 :(得分:3)
使用SASS,以下内容:
li {
:hover { } }
会将样式应用于:hover
内的任何li
元素 。你需要的是
li {
&:hover {} }
它会将样式应用于li
元素本身悬停时。目前,该样式可能仅适用于a
内的li
。
答案 1 :(得分:0)
请尝试将您的li更改为display: inline-block;
。
答案 2 :(得分:0)
您也可以在li中放置锚点,然后相应地设置锚点的样式。这就是我通常做的事情。另外,像布兰特说的那样,你使用的是清单还是表格?列表可能更好,是您实现的,所以只需使用它。