Jon P的答案几乎是这样的--但是before元素可以用来在主div的左边制作一个透明的圆圈,一个阴影可以产生想要的剪切效果。
body {
/* You can change the background colour to verify that this is truly transparent */
background-color: pink;
}
.player {
/* Just a normal box */
width: 480px;
height: 80px;
border-radius:0 40px 40px 0;
background-color:#0000FF;
position:relative;
color:#FFF;
/* Move the box right so that we can see the cutout to the left */
margin-left: 40px;
}
.player:before
{
width: 80px;
height: 80px;
border-radius:0 40px 40px 0;
background-color:transparent;
display:inline-block;
vertical-align: middle;
margin-right: 10px;
content: '';
/* This is the cutout: */
box-shadow: 40px 0px #00f;
position: relative;
left: -80px;
}
5条答案
按热度按时间kb5ga3dv1#
这是yet another way of doing it,这次使用了一个放射状的背景图像,这样它就变得透明了,并且在Firefox和Chrome中都可以使用。
ukqbszuj2#
您可以使用
before
伪元素来提供“剪切”nuypyhwy3#
w8rqjzmb4#
Jon P的答案几乎是这样的--但是before元素可以用来在主div的左边制作一个透明的圆圈,一个阴影可以产生想要的剪切效果。
epggiuax5#
我也是这么想的,但是我有了一个更好的方法,我用svg作为背景。它也有React更快的优点。我会把我的问题发到这里给其他人,他们也会有同样的问题。