双下划线效果CSS

时间:2016-11-02 18:31:59

标签: html css hover

我的代码来自Hover.css pack

.hvr-underline-from-left{
            display: inline-block;
            vertical-align: middle;
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
            box-shadow: 0 0 1px rgba(0, 0, 0, 0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
            -moz-osx-font-smoothing: grayscale;
            position: relative;
            overflow: hidden;
        }
        .hvr-underline-from-left::before {
            content: "";
            position: absolute;
            z-index: -1;
            left: 0;
            right: 100%;
            bottom: 0;
            background: #0F9E5E;
            height: 0.3em;
            -webkit-transition-property: right;
            transition-property: right;
            -webkit-transition-duration: 0.2s;
            transition-duration: 0.2s;
            -webkit-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
        }
        .hvr-underline-from-left:hover::before, .hvr-underline-from-left:focus::before, .hvr-underline-from-left:active::before {
            right: 0;
        }

它的作用是它为悬停时从左侧显示的按钮添加了一个按钮边框。

但我想要的效果是这个,但多次。所以这应该多次添加,每次延迟0.1秒,另一种颜色。我该怎么办? 我尝试使用::before(n),但它没有用。

2 个答案:

答案 0 :(得分:3)

您可以使用after伪类来获得双下划线效果。

//same as before class except for transition delay and bottom position you can adjust that as needed

        .hvr-underline-from-left::after {
        content: "";
        position: absolute;
        z-index: -1;
        left: 0;
        right: 100%;
        bottom: 10px;
        background: #0F9E5E;
        height: 0.3em;
        -webkit-transition-property: right;
        transition-property: right;
        -webkit-transition-duration: 0.1s;
        transition-duration: 0.1s;
        -webkit-transition-timing-function: ease-out;
        transition-timing-function: ease-out;
    }

  // on hover effect for after same as before class. 
    .hvr-underline-from-left:hover::after, 
    .hvr-underline-from-left:focus::after, 
    .hvr-underline-from-left:active::after {
        right: 0;
    }



     //to add more

    .hvr-underline-from-left .hvr-underline-from-left{
    position:absolute;
    height:100%;
    width:100%;
    background:transparent;
    top:0;
    left:0;
    z-index:1000;
    }
    .hvr-underline-from-left .hvr-underline-from-left:after{
    bottom:20px;
     -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    }
    .hvr-underline-from-left .hvr-underline-from-left:before{
    bottom:30px;
     -webkit-transition-duration: 0.3s;
    transition-duration: 0.3s;
    }

// and div tags look like this 
<div class="hvr-underline-from-left">
   <div class="hvr-underline-from-left">
    </div>
</div>

****一旦给出内部容器z-index,请小心,并将其带到100%高度和宽度的前面,主容器内的任何元素都可能无法点击。

答案 1 :(得分:0)

或者,您可以使用css 动画关键字多次获取不同颜色的下划线效果。并根据需要调整时间。例如

&#13;
&#13;
.hvr-underline-from-left{
            display: inline-block;
            vertical-align: middle;
            -webkit-transform: translateZ(0);
            transform: translateZ(0);
            box-shadow: 0 0 1px rgba(0, 0, 0, 0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
            -moz-osx-font-smoothing: grayscale;
            position: relative;
            overflow: hidden;
        }
.hvr-underline-from-left::before {
            content: "";
            position: absolute;
            z-index: -1;
            left: 0;
            right: 100%;
            bottom: 0;
            height: 0.3em;
            -webkit-transition-property: right;
            transition-property: right;
            -webkit-transition-duration: 0.2s;
            transition-duration: 0.2s;
            -webkit-transition-timing-function: ease-out;
            transition-timing-function: ease-out;
        }
.hvr-underline-from-left:hover::before {
            animation:colorUnderline 2s;
            animation-fill-mode: forwards;
        }
        
@keyframes colorUnderline{
          0%{
            right:100%;
            background: #0F9E5E;
          }
          25%{
            background: #0F9E5E;
            right:0;
          }
          26%{
            background: #8e44ad ;
            right:100%;
          }
          50%{
            background: #8e44ad ;
            right:0;
          }
          51%{
            background: #e74c3c ;
            right:100%;
          }
          75%{
            background: #e74c3c ;
            right:0;
          }
          76%{
            background: #f1c40f ;
            right:100%;
            }
          100%{
            right:0;
            background: #f1c40f ;
          }
        }
&#13;
<body>
<div class="hvr-underline-from-left">Test</div>
</body>
&#13;
&#13;
&#13;