在悬停下的下划线和导航项之间添加空格

时间:2016-11-23 11:57:21

标签: html css css-animations

我希望悬停时出现的下划线效果具有app的填充/边距。 5px来自文本,只是在它们之间有一些空间。

以下是Codepen的代码和链接:

http://codepen.io/anon/pen/MbmBjp

谢谢!

* {
  background-color: blue;
}
    
nav ul li {
  display: inline-block;
  padding-left: 35px;
  font-size: 12px;
  font-weight: bold;
}
    
    
/*Underline animation*/
    
li > a {
  position: relative;
  color: white;
  text-decoration: none;
}
    
li > a:hover {
  color: yellow;
}
    
li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: 0;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;
}
    
li > a:hover:before {
  visibility: visible;
  transform: scaleX(1);
}
    
    
<nav class="menu" id="menu">
  <ul>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">SERVICE</a></li>
    <li><a href="#">WORK</a></li>
    <li><a href="#">BLOG</a></li>
    <li><a href="#">CONTACT</a></li>
  </ul>
</nav>

7 个答案:

答案 0 :(得分:3)

变体#01:

在以下选择器中增加或减少bottom值:

li > a:before {
    bottom: -5px;  /* Change in this value will increase or decrease gap */
}

&#13;
&#13;
* {
  background-color: blue;
}

nav ul li {
  display: inline-block;
  padding-left: 35px;
  font-size: 12px;
  font-weight: bold;
}


/*Underline animation*/

li > a {
  position: relative;
  color: white;
  text-decoration: none;
}

li > a:hover {
  color: yellow;
}

li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: -5px;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;
}

li > a:hover:before {
  visibility: visible;
  transform: scaleX(1);
}
&#13;
<nav class="menu" id="menu">
  <ul>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">SERVICE</a></li>
    <li><a href="#">WORK</a></li>
    <li><a href="#">BLOG</a></li>
    <li><a href="#">CONTACT</a></li>
  </ul>
</nav>
&#13;
&#13;
&#13;

变体#02:

<a>上设置以下css:

li > a {
    display: inline-block;
    vertical-align: top;
    padding-bottom: 5px; /* Change in padding-bottom value will increase or decrease gap */
}

&#13;
&#13;
* {
  background-color: blue;
}

nav ul li {
  display: inline-block;
  padding-left: 35px;
  font-size: 12px;
  font-weight: bold;
}


/*Underline animation*/

li > a {
  display: inline-block;
  vertical-align: top;
  padding-bottom: 5px;
  position: relative;
  color: white;
  text-decoration: none;
}

li > a:hover {
  color: yellow;
}

li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: 0;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;
}

li > a:hover:before {
  visibility: visible;
  transform: scaleX(1);
}
&#13;
<nav class="menu" id="menu">
  <ul>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">SERVICE</a></li>
    <li><a href="#">WORK</a></li>
    <li><a href="#">BLOG</a></li>
    <li><a href="#">CONTACT</a></li>
  </ul>
</nav>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

http://codepen.io/anon/pen/PbmBpY

li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: -5px;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;

}

bottom: -5px;添加到li > a:before

答案 2 :(得分:1)

这是一个解决它的codepen:http://codepen.io/anon/pen/zowLZp

padding-bottom: 4px规则中添加li > a,从li&gt;中移除height: 1px。 a:在rule, and add a border-bottom:1px solid white to the same rule。

之前

答案 3 :(得分:1)

将此添加到您的css: li&gt; :悬停

li > a:hover {
  color: yellow;
  padding-bottom:5px;
}

检查以下代码段。

&#13;
&#13;
* {
  background-color: blue;
}

nav ul li {
  display: inline-block;
  padding-left: 35px;
  font-size: 12px;
  font-weight: bold;
}


/*Underline animation*/

li > a {
  position: relative;
  color: white;
  text-decoration: none;
}

li > a:hover {
  color: yellow;
  padding-bottom:5px;
}

li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: 0;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;
}

li > a:hover:before {
  visibility: visible;
  transform: scaleX(1);
}
&#13;
<nav class="menu" id="menu">
  <ul>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">SERVICE</a></li>
    <li><a href="#">WORK</a></li>
    <li><a href="#">BLOG</a></li>
    <li><a href="#">CONTACT</a></li>
  </ul>
</nav>
&#13;
&#13;
&#13;

答案 4 :(得分:1)

只需将bottom选择器中li > a:before的值更改为-5px即可。 如果您不想使用负值,可以使用top: 20px之类的内容并移除bottom: -5px

&#13;
&#13;
* {
  background-color: blue;
}
    
nav ul li {
  display: inline-block;
  padding-left: 35px;
  font-size: 12px;
  font-weight: bold;
}
    
    
/*Underline animation*/
    
li > a {
  position: relative;
  color: white;
  text-decoration: none;
}
    
li > a:hover {
  color: yellow;
}
    
li > a:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: -5px;
  background-color: yellow;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.1s ease-in-out 0s;
}
    
li > a:hover:before {
  visibility: visible;
  transform: scaleX(1);
}
    
    
&#13;
<nav class="menu" id="menu">
  <ul>
    <li><a href="#">ABOUT</a></li>
    <li><a href="#">SERVICE</a></li>
    <li><a href="#">WORK</a></li>
    <li><a href="#">BLOG</a></li>
    <li><a href="#">CONTACT</a></li>
  </ul>
</nav>
&#13;
&#13;
&#13;

答案 5 :(得分:0)

试试这个

<强> demo

li > a:hover {
  color: yellow;
  padding:10px 0;

}

答案 6 :(得分:0)

在你的css下面添加 li > a:hover { color: yellow; padding-bottom: 5px; } ..

entries