CSS文字下划线动画问题

时间:2015-09-15 22:31:39

标签: html css css3 animation underline

我正在尝试学习如何在我的网页上添加下划线动画效果,但我遇到了一个小问题。

这是我用于下划线效果的代码:

.cmn-t-underline {
position: relative;
}

.cmn-t-underline:after {
display: block;
position: absolute;
left: 0;
bottom: -10px;
width: 0;
height: 3px;
background-color: dimgrey;
content: "";
transition: width 0.3s;

}
.cmn-t-underline:hover {
color: #333;
}

.cmn-t-underline:hover:after {
width: 100%;
}

这是我的css上的代码:

    <div class="col-sm-6">
    <h1 class="text-center text-padding cmn-t-underline">Access Everywhere</h1>
        <p class="text-center">Lorem ipsum dolor sit amet</p>
    </div>

这就是动画完成后的结果:

enter image description here

我的问题是,如何使下划线仅直接位于H1标题下?我希望下划线开始于&#39; A&#39;并且结束于&#39;但是我很难弄清楚要在代码中添加什么来解决这个问题。如果有人能帮我解决这个小问题,我真的很感激。

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以在display-table上使用h1来模拟像行为一样的行为,而不是100%的宽度......

body {
    text-align: center;
}

h1 {
    display: table;
    margin: 0 auto;
}

.cmn-t-underline {
    position: relative;
}
.cmn-t-underline:after {
    display: block;
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 0;
    height: 3px;
    background-color: dimgrey;
    content:"";
    transition: width 0.3s;
}
.cmn-t-underline:hover {
    color: #333;
}
.cmn-t-underline:hover:after {
    width: 100%;
}
<div class="col-sm-6">
     <h1 class="text-center text-padding cmn-t-underline">Access Everywhere</h1>
     <p class="text-center">Lorem ipsum dolor sit amet</p>
</div>

答案 1 :(得分:0)

h1的显示更改为inline-block

.cmn-t-underline {
    position: relative;
    display: inline-block;
}
.cmn-t-underline:after {
    display: block;
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 0;
    height: 3px;
    background-color: dimgrey;
    content:"";
    transition: width 0.3s;
}
.cmn-t-underline:hover {
    color: #333;
}
.cmn-t-underline:hover:after {
    width: 100%;
}
<div class="col-sm-6">
   <h1 class="text-center text-padding cmn-t-underline">Access Everywhere</h1>
   <p class="text-center">Lorem ipsum dolor sit amet</p>
</div>