更改所选li项目的背景颜色

时间:2013-10-17 12:13:03

标签: html css

我已经使用列表创建了一个导航,该列表在当前页面上提供了类.selected的列表项。我正在尝试为此类添加背景颜色,但是我不能让它填充整个li项目。它不会在导航所选项目的左侧添加任何背景颜色。不确定这是否有意义?

这是我的html:

<nav>
    <ul>
        <li class="selected"><a href="index.html">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Themes</a></li>
        <li><a href="#">Blog</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</nav>

这是css:

nav li {
  border-right: solid 1px #fbfbfb;
  display: inline;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  list-style: none;
  margin-left: 15px;
  padding: 22px 15px 22px 0;
  text-transform: uppercase;
  text-align: center;
}

nav ul {
  border-top: solid 1px #fbfbfb;
  border-left: solid 1px #fbfbfb;
  margin-bottom: 0;
  padding: 20px 0;
}

nav a {
  color: #6e6e6e;
  text-decoration: none;
}

nav a:hover {
  border-bottom: 1px solid #2ecc71;
}

.selected {
  background-color: #2ecc71;

}

4 个答案:

答案 0 :(得分:0)

只需在左侧添加一些填充到li -

padding: 22px 15px 22px 15px;

这是jsFiddle

答案 1 :(得分:0)

更改padding-left值:

nav li {
    padding: 22px 15px 22px 10px;
}

答案 2 :(得分:0)

边距和边框没有背景颜色。

尝试将li的边距更改为填充或相同大小的边框。

nav li {
  border-right: solid 1px #fbfbfb;
  display: inline;
  font-family: 'Lato', sans-serif;
  font-size: 15px;
  list-style: none;
  padding: 22px 15px 22px 15px;
  text-transform: uppercase;
  text-align: center;
}

答案 3 :(得分:0)

selected 的列表项根据您提供给浏览器的说明完全填充,以显示带有{{1}的li元素}和margin-left: 15px;。您指定的填充表示列表项中内容左侧不应有填充(最后一个值为0)。

尝试删除padding: 22px 15px 22px 0;并将您的填充更改为margin-left: 15px; padding: 22px 15px 22px 15px;元素,如下所示:

nav li
相关问题