伪元素影响剪辑路径

时间:2016-08-05 15:23:14

标签: html css clip

我正在尝试做一些看似简单的事情,但它并不适合我。 我有一个简单的按钮,具有闪烁的悬停效果。我希望将相同的按钮效果应用于形状像六边形的按钮。我以为我会务实,只是用剪辑路径覆盖按钮(我不关心浏览器支持)。但是,遗憾的是,伪元素会影响剪辑路径,使其无法使用。我错过了一些简单的事吗?或者这两者的组合永远不会起作用?

.button {
outline:none;
border:none;
padding:20px;
display:block;
margin:0 auto;
cursor:pointer;
font-size:16px;
font-weight: bold;
background-color:#DBBD68;
text-transform: uppercase;
position:relative;
transition:all 0.5s ease;
overflow: hidden;
color:#fff;

&.hex{
   width: 280px;
   height: 280px;
   position:absolute;
   top: 0;
   left:0;
   -webkit-clip-path: polygon(20% 50%, 12% 60%, 20% 70%, 82% 70%, 89% 60%, 80% 50%);
   clip-path: polygon(20% 50%, 12% 60%, 20% 70%, 82% 70%, 89% 60%, 80% 50%);
 }
&:before {
    content: '';
    background-color: rgba(255,255,255,.5);
    width:100%;
    height:20px;
    position:absolute;
    left:-135px;
    transform: rotateZ(45deg)
}

我做了一个小提琴来展示这个问题:https://jsfiddle.net/0m5wmvu8/

1 个答案:

答案 0 :(得分:1)

你试图用.hex做一些疯狂的事情,但你唯一应该补充的是剪辑路径。只需将其更改为:

&.hex{
    -webkit-clip-path: polygon(50% 0, 80% 0, 100% 50%, 80% 100%, 20% 100%, 0 50%, 20% 0);
    clip-path: polygon(50% 0, 80% 0, 100% 50%, 80% 100%, 20% 100%, 0 50%, 20% 0);
}

https://jsfiddle.net/8sfc3ott/