我希望能够圆了3个最左边的角落,这个形状,我已经创建,任何想法如何才能做到这一点?
div {
position: absolute;
z-index: 1;
width: 423px;
height: 90px;
background-color: #b0102d;
color: white;
right: 0;
margin-top: 10vw;
-webkit-clip-path: polygon(100% 0%, 100% 50%, 100% 100%, 25% 100%, 0% 50%, 25% 0%);
clip-path: polygon(100% 0%, 100% 50%, 100% 100%, 25% 100%, 0% 50%, 25% 0%);
}
<div></div>
7条答案
按热度按时间fhg3lkii1#
使用带圆角属性的inset:
bwleehnv2#
我最近发现用这种方法取得的成功...
SVG图形发生器
中央支助系统
我发现这比使用border-radius并将overflow设置为hidden更有用,因为这种方法不会创建BFC,也不会破坏粘性位置和css透视效果,而且,如果你愿意,它允许你“插入”svg路径的位置,以便在元素内部使用“corner-radius”进行剪辑。
9w11ddsr3#
SVG过滤器可以对任何类型的
clip-path
进行舍入。您只需将其应用于父元素。调整stdDeviation
以控制半径:相关:https://stackoverflow.com/a/65485455/8620333
vd2z7a6w4#
你也可以乱来的圆圈,以获得一些不同的效果。
Codepen
可惜你不能把多边形和圆结合起来......或者你可以,但我还没有玩够它来弄明白。HTH
a0zr77ik5#
剪辑路径:插入(45% 0% 33% 10%约10px)
rlcwz9us6#
我没有一个评论选项是的,所以我写它作为一个答案。
你需要写尽可能多的点来圆角。没有别的...例如,多写几个点来使下部位更圆:
哦,是的,或者SVG作为评论的人在这里。:)
qgelzfjb7#
你可以使用一个子元素,并在它和子元素的伪元素上嵌套一个
clip-path
。父元素会先在形状上做一个polygon
剪辑,然后伪元素会有一个ellipse
来圆化边界。剪辑会有一个组合效果。下面是经过一些调整的演示,以说明正在发生的事情:
一个二个一个一个
椭圆的水平大小和位置可用于在边缘上获得不同的效果。请注意,父对象的背景起始位置需要调整为与椭圆放置位置相同的值(
clip-path
中的最后一个值),因为它会填充右侧被剪切掉的内容。在第二个演示中,可以通过从.parent div
中删除background-color: blue
来直观地显示这一点。Here是一个额外的Codepen,用于尝试它。