使用 CSS 绘制内外不同圆角的矩形、钝角三角形

最近做的项目中 UI 同学给了个内外不同圆角的矩形和钝角三角形的设计,这里记录一下完成过程。

一、实现效果

矩形内部圆角和外部圆角不一致,钝角三角形上不完全覆盖另一个钝角三角形的图案,且两个钝角处圆润程度不一致。
前期项目赶时间的时候用直角三角形实现了,本着不偷工减料及钻研的态度,利用伪类按照设计图实现了一下。蓝色为设计图部分,绿色为实现部分。

二、矩形代码

具体实现代码可参考:rectangle.vue

1、HTML

1
<div class="rectangle"></div>

2、CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.rectangle {
position: relative;
&:before, &:after {
content: '';
position: absolute;
}
&:before {
width: 325px;
height: 180px;
border-radius: 15px;
background-color: #41b883;
}
&:after {
width: 305px;
height: 160px;
top: 10px;
left: 10px;
border-radius: 5px;
background-color: #fff;
}
}

三、钝角三角形代码

具体实现代码可参考:triangle.vue

1、HTML

1
<div class="triangle"></div>

2、CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
.triangle {
width: 30px;
height: 90px;
overflow: hidden;
position: relative;
&:before, &:after {
content: '';
width: 50px;
height: 50px;
position: absolute;
transform: scaleY(1.3) translate(30%, -30px) rotate(45deg);
}
&:before {
left: -7px;
top: 59px;
border-radius: 10px;
background-color: #41b883;
}
&:after {
left: 7px;
top: 59px;
border-radius: 5px;
background-color: #fff;
}
}

四、气泡对话框

具体实现代码可参考:bubble.vue

以上

随笔标题:使用 CSS 绘制内外不同圆角的矩形、钝角三角形

随笔作者:刘先玉

发布时间:2019年12月20日 - 14:59:49

最后更新:2019年12月20日 - 14:59:49

原文链接:https://liuxianyu.cn/article/css-rectangle-triangle.html