在 :hover full 中应用显示块

Apply display block in :hover full

我正在尝试制作一个菜单,在我的 nav li 元素中悬停时背景颜色会发生变化,但效果不佳,它没有覆盖边框的所有宽度,我尝试使用 left:0 但没有。

特别是第一个和最后一个 li 没有覆盖元素的所有宽度。

.nav{
 background-color:rgb(214, 19, 25);
 background:linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:-moz-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:-o-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 border: 2px solid rgb(130, 0, 0);
 border-radius:10px;
 width:943px;
 float:left;
 margin:0 auto;
 padding:0;
 position:relative;
 z-index:1
}
.nav ul{
 margin:0;
 display:block;
}

.nav ul li{
 display:inline-block;
 padding:10px 30px;
 font-family:"Kratos True Type";
 font-size:24px;
 border-right:3px solid rgb(101,0,3);
 margin:0;
}
.nav ul li a{
 color:rgba(255, 255, 255, 1);

}
.nav ul .firstnav{
 padding-left:0;
}
.nav ul .lastnav{
 border-right:0;
}
.nav ul li a{
 text-decoration:none;
}
.nav ul li:hover{
 background:rgba(255, 186, 0, 1);
}
<nav class="nav">
  <ul>
   <li class="firstnav"><a href="">HOME</a></li>
  <li><a href="">DAFTAR</a></li>
  <li><a href="">PANDUAN</a></li>
  <li><a href="">DATA PRIBADI</a></li>
  <li class="lastnav"><a href="">DATA BUKU</a></li>
 </ul>
</nav>

黄色背景没有覆盖所有内容的原因是无序列表 (ul) 有一个未重置的 padding-left (read more about reseting with css here)

我稍微修改一下你的代码:

.nav {
  background-color: rgb(214, 19, 25);
  background: linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: -moz-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: -o-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  border: 2px solid rgb(130, 0, 0);
  border-radius: 10px;
  float: left;
  margin: 0 auto;
width:880px;
  padding: 0;
  position: relative;
  z-index: 1
}

.nav ul {
  margin: 0;
  display: block;
  padding: 0;
}

.nav ul li {
  display: inline-block;
  padding: 10px 30px;
  font-family: "Kratos True Type";
  font-size: 24px;
  border-right: 3px solid rgb(101, 0, 3);
  margin: 0;
}

.nav ul li a {
  color: rgba(255, 255, 255, 1);
}

.nav ul .firstnav {
  padding-left: 0;
}

.nav ul .lastnav {
  border-right: 0;
}

.nav ul li a {
  text-decoration: none;
}

.nav ul li:hover {
  background: rgba(255, 186, 0, 1);
}
<nav class="nav">
  <ul>
    <li class="firstnav"><a href="">HOME</a></li>
    <li><a href="">DAFTAR</a></li>
    <li><a href="">PANDUAN</a></li>
    <li><a href="">DATA PRIBADI</a></li>
    <li class="lastnav"><a href="">DATA BUKU</a></li>
  </ul>
</nav>

试试这个。我刚刚对您的代码进行了一些更改。

.nav{
 background-color:rgb(214, 19, 25);
 background:linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:-moz-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:-o-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 background:linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
 border: 2px solid rgb(130, 0, 0);
 border-radius:10px;
 width:auto;
 float:left;
 margin:0 auto;
 padding:0;
 position:relative;
 z-index:1
}
.nav ul{
 margin:0;
  padding: 0;
 display:block;
}

.nav ul li{
 display:inline-block;
 padding: 0;
 font-family:"Kratos True Type";
 font-size:24px;
 border-right:3px solid rgb(101,0,3);
 margin:0;
  float: left;
}
.nav ul li a{
 color:rgba(255, 255, 255, 1);
  padding: 10px 20px;
  display: block;

}
.nav ul .firstnav{
 padding-left:0;
}
.nav ul .lastnav{
 border-right:0;
}
.nav ul li a{
 text-decoration:none;
}
.nav ul li:hover{
 background:rgba(255, 186, 0, 1);
}

.nav ul .firstnav{
 border-radius: 10px 0 0 10px;
}
.nav ul .lastnav{
 border-radius: 0 10px 10px 0;
}
<nav class="nav">
  <ul>
   <li class="firstnav"><a href="">HOME</a></li>
  <li><a href="">DAFTAR</a></li>
  <li><a href="">PANDUAN</a></li>
  <li><a href="">DATA PRIBADI</a></li>
  <li class="lastnav"><a href="">DATA BUKU</a></li>
 </ul>
</nav>

我建议使用 flexbox(注意我减少了 5px 你的 nav width 并且在 paddingnav ul li 上增加了一点以完全适应悬停背景):

.nav {
  background-color: rgb(214, 19, 25);
  background: linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: -moz-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: -o-linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  background: linear-gradient(rgb(215, 19, 25), rgb(163, 6, 11));
  border: 2px solid rgb(130, 0, 0);
  border-radius: 10px;
  width: 938px;
  /*float: left;*/
  display: flex;
  margin: 0 auto;
  padding: 0;
  position: relative;
  z-index: 1
}

.nav ul {
  margin: 0;
  padding: 0;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
}

.nav ul li {
  display: flex;
  padding: 10px 36px;
  /*font-family:"Kratos True Type";*/
  font-size: 24px;
  border-right: 3px solid rgb(101, 0, 3);
  margin: 0;
}

.nav ul li a {
  color: rgba(255, 255, 255, 1);
}

.nav ul .firstnav {
  padding-left: 30px;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
  margin: 0;
}

.nav ul .lastnav {
  border-right: 0;
  padding-right: 30px;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
  margin: 0;
}

.nav ul li a {
  text-decoration: none;
}

.nav ul li:hover {
  background: rgba(255, 186, 0, 1);
  margin: 0;
}
<nav class="nav">
  <ul>
    <li class="firstnav"><a href="">HOME</a></li>
    <li><a href="">DAFTAR</a></li>
    <li><a href="">PANDUAN</a></li>
    <li><a href="">DATA PRIBADI</a></li>
    <li class="lastnav"><a href="">DATA BUKU</a></li>
  </ul>
</nav>