【发布时间】:2018-09-07 16:55:28
【问题描述】:
我正在尝试构建仅在悬停在菜单项中时出现的平行四边形背景。对于形状,我使用 :before 和 :after 伪元素,但是我不能对它们应用相同的过渡效果。有谁知道我可以做些什么来解决这个问题?
这是直到现在的代码:
div {
float:left;
background-color:#fff;
margin: 20px;
transition:.5s;
}
.testClass {
margin-top: 0px;
margin-left: 0px;
padding: 5px 10px;
display: block;
background-repeat: no-repeat;
background: #fff;
position: relative;
transition:.5s;
}
.testClass:hover {
background: gold;
transition:.5s;
}
.testClass:hover:before {
content: '';
position: absolute;
top:0;
left:-15px;
width: 0px;
height: 0px;
border-style: solid;
border-width: 0 0 29px 15px;
border-color: transparent transparent gold transparent;
}
.testClass:hover:after {
content: '';
position: absolute;
top:0;
right:-15px;
width: 0px;
height: 0px;
border-style: solid;
border-width: 30px 15px 0 0;
border-color: gold transparent transparent transparent;
}
<div >
<div class="testClass">HOME</div>
<div class="testClass">ABOUT US</div>
<div class="testClass">CONTACT</div>
<div class="testClass">LOGIN</div>
<div class="testClass">SERVICES</div>
</div>
【问题讨论】:
-
您的
::before和::after伪元素需要在没有:hover的情况下额外可见。另外,严格来说,伪元素有双冒号:::before/::after,以区别于伪类。
标签: css css-transitions pseudo-element