我几乎从这开始:
.player {
width: 480px;
height: 80px;
border-radius: 40px;
}
最简单的方法是什么,没有太多代码?
答案 0 :(得分:6)
您可以使用before
伪元素来提供“剪切”
.player {
width: 480px;
height: 80px;
border-radius:0 40px 40px 0;
background-color:#0000FF;
position:relative;
color:#FFF;
}
.player:before
{
width: 80px;
height: 80px;
border-radius:0 40px 40px 0;
background-color:#FFF;
display:inline-block;
vertical-align: middle;
margin-right: 10px;
content: '';
}
<div class="player">Some Content</div>
答案 1 :(得分:4)
这里是yet another way of doing it,这次是使用径向背景图像。这使它透明,适用于Firefox和Chrome。
.player {
width: 480px;
height: 80px;
border-radius:40px;
background-image: radial-gradient(circle at 38px 40px, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 40px, blue 40px);
color:#FFF;
}
答案 2 :(得分:3)
.wrapper {
width: 500px;
height: 103px;
background-color: red;
padding-top: 15px;
}
.player {
width: 480px;
height: 83px;
margin-left: 10px;
border-top-right-radius: 40px;
border-bottom-right-radius: 40px;
border: 1px solid black;
border-left: none;
background-color: blue;
-webkit-mask-image: radial-gradient(circle at left, transparent 0, transparent 40px, black 41px);
}
<div class="wrapper"><div class="player"></div></div>
答案 3 :(得分:0)
我也是这么想的,但我有一个更好的方法,我使用了 svg 作为背景。它还具有响应更快的优点。我会将我的问题发送给其他也有同样问题的人。
* {
padding: 0;
margin: 0;
}
#sidebar {
width: 500px;
height: 100vh;
background: url(https://svgshare.com/i/XiH.svg) center right;
background-size: 150%;
}
<div id="sidebar"></div>