0

我制作了一个带有列表的导航,该列表.selected在当前页面上为列表项提供类。我正在尝试为这个类添加一个背景颜色,但我无法让它填充整个li项目。它不会在 navs 选定的 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

4 回答 4

0

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

padding: 22px 15px 22px 15px;

这是jsFiddle

于 2013-10-17T12:21:02.347 回答
0

改变你的 padding-left价值:

nav li {
    padding: 22px 15px 22px 10px;
}
于 2013-10-17T12:21:04.770 回答
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;
}
于 2013-10-17T12:22:23.360 回答
0

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

尝试删除margin-left: 15px;并将填充更改padding: 22px 15px 22px 15px;为您的nav 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;
}
于 2013-10-17T12:26:45.773 回答