CSS - 边境过渡不正常

Ger*_*rep 5 css css-transitions

CSS代码:

.css3_nudge ul li a {
   -webkit-transition-property: color, background-color, padding-left, border-right;
   -webkit-transition-duration: 400ms, 400ms, 400ms, 400ms;
}

.css3_nudge ul li a:hover {
   background-color: #efefef;
   color: #333;
   padding-left: 50px;
   border-right: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<div class="css3_nudge nudge">
   <ul>
      <li><a href="#" title="Home">Home</a></li>
      <li><a href="#" title="Blog">Blog</a></li>
      <li><a href="#" title="About">About</a></li>
      <li><a href="#" title="Register">Register</a></li>
      <li><a href="#" title="Contact">Contact</a></li>
   </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

过渡对所有元素都很好但边界很好,它只出现在400ms的末尾,对边界没有影响.

我想要实现的是像新的谷歌Gmail按钮的效果.

在此先感谢您的帮助

tw1*_*w16 7

这是一个非常简单的修复.在悬停效果之前,您只需要一个已经存在的边框.所以只需设置border-right: 1px solid #fff;如下:

.css3_nudge ul li a {
   -webkit-transition-property: color, background-color, padding-left, border-right;
   -webkit-transition-duration: 400ms, 400ms, 400ms, 400ms;
   border-right: 1px solid #fff; /* added property */
}
Run Code Online (Sandbox Code Playgroud)

然后,过渡实际上只是改变边框的颜色而不是创建边框.

  • 只是想为现在遇到这个问题的任何人添加,您可能最好将边框颜色设置为“透明”,这样您就不必担心颜色管理了,特别是如果它采用共享样式。 (2认同)