有人能使用::after
来解决按钮效果方面的问题吗?我在将::after
内容放在悬停按钮的文本上方时遇到问题。
JSFiddle:https://jsfiddle.net/pegues/yh4g2cme/
.button {
position: relative;
margin: 10px;
padding: 16px 18px;
color: #fff;
font-family: Arial, Helvetica, Sans-serif;
font-size: 1.00rem;
line-height: 1.35rem;
text-align: center;
text-decoration: none;
text-transform: uppercase;
cursor: pointer;
overflow: hidden;
border: 0 none;
background-color: #556f6e;
-webkit-transition: all 0.20s ease-in-out;
-moz-transition: all 0.20s ease-in-out;
-ms-transition: all 0.20s ease-in-out;
-o-transition: all 0.20s ease-in-out;
transition: all 0.20s ease-in-out;
}
.button span {
position: relative;
z-index: 1;
font-weight: inherit;
}
.button::after {
position: absolute;
top: 0;
left: 0;
z-index: 0;
display: block;
width: 4px;
height: 100%;
content: ' ';
background-color: #7cab4c;
-webkit-transition: all 0.20s ease-in-out;
-moz-transition: all 0.20s ease-in-out;
-ms-transition: all 0.20s ease-in-out;
-o-transition: all 0.20s ease-in-out;
transition: all 0.20s ease-in-out;
}
.button:hover::after {
width: 100%;
}
<br/>
<a class="button" href="#" title="" target="_blank"><span>With Span</span></a>
<a class="button" href="#" title="" target="_blank">Without Span</a>
如果我在锚标记中用span
包裹文本,则可以在该范围内添加position: relative; z-index: 1;
,这样就可以解决问题。但是我无法在整个站点的span
的所有锚标记中放置.button
。
答案 0 :(得分:5)
我使用::before
.button {
position: relative;
margin: 10px;
padding: 16px 18px;
color: #fff;
font-family: Arial, Helvetica, Sans-serif;
font-size: 1.00rem;
line-height: 1.35rem;
text-align: center;
text-decoration: none;
text-transform: uppercase;
cursor: pointer;
overflow: hidden;
border: 0 none;
-webkit-transition: all 0.20s ease-in-out;
-moz-transition: all 0.20s ease-in-out;
-ms-transition: all 0.20s ease-in-out;
-o-transition: all 0.20s ease-in-out;
transition: all 0.20s ease-in-out;
}
.button::before {
content: '';
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: #556f6e;
z-index: -2;
}
.button::after {
content: ' ';
position: absolute;
top: 0;
left: 0;
display: block;
width: 4px;
height: 100%;
background-color: #7cab4c;
z-index: -1;
-webkit-transition: all 0.20s ease-in-out;
-moz-transition: all 0.20s ease-in-out;
-ms-transition: all 0.20s ease-in-out;
-o-transition: all 0.20s ease-in-out;
transition: all 0.20s ease-in-out;
}
.button:hover::after {
width: 100%;
}
<br />
<a class="button" href="#" title="" target="_blank"><span>With Span</span></a>
<a class="button" href="#" title="" target="_blank">Without Span</a>
我也仅使用background-size
属性。没有伪元素。
.button {
position: relative;
margin: 10px;
padding: 16px 18px;
display: inline-block;
color: #fff;
font-family: Arial, Helvetica, Sans-serif;
font-size: 1.00rem;
line-height: 1.35rem;
text-align: center;
text-decoration: none;
text-transform: uppercase;
cursor: pointer;
overflow: hidden;
border: 0 none;
background: linear-gradient(#7cab4c, #7cab4c), #556f6e;
background-size: 4px 100%;
background-repeat: no-repeat;
transition: all 0.20s ease-in-out;
}
.button:hover {
background-size: 100% 100%, 100% 100%;
}
<a class="button" href="#" title="" target="_blank">Read More</a>