聊聊CSS中的圆
特别声明:为感谢社区广大朋友对小站的支持,自2019年10月1日至2019年11月11日开通年费VIP通道,年费价格为 ¥299.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)
熟悉CSS的同学都知道,使用CSS可以绘制一些图形,在业内有很多这方面的案例,比如使用CSS绘制不同的纹理、CSS绘制Icons、使用一个div
绘制不同的图形等等。而在Web的实际开发中也经常会碰到一些图形的运用,比如我们今天要聊的圆(比如圆形容器,圆形缩略图,圆形按钮)。使用CSS绘制圆还是会碰到一些棘手的问题。如果你对这方面感兴趣的话,那么接着阅读下面的内容,你一定会有所收获。
CSS绘制圆的技术方案
在Web中,我们可以使用CSS和SVG等技术手段来绘制圆,大家常见的技术方案主要有:
- CSS的
border-radius
- CSS的
radial-gradient
- CSS的
clip-path
的circle()
- CSS的
shape-outside
的circle()
- SVG的
<circle>
上面这些技术方案都可以绘制出圆形,每种技术都有其优缺点。接下来我们来看看这些技术是如何绘制出圆,能运用于什么样的场景等。
CSS的border-radius
在CSS中绘制圆最常见的技术方案应该是border-radius
。不过使用border-radius
绘制圆有一个前提条件,那就是容器的width
和height
必须相等,而且半径的值是其width
(或height
)的50%
(设置100%
同样等效)。比如下面这个示例:
.circle {
width: 50vh;
height: 50vh;
border-radius: 50%; /*也可以是设置100%*/
background-color: #2a394f;
}
CSS的border-radius
属性绘制圆除了设置50%
(或100%
)之外还可以设置一个超大值(一般只要大小于容器宽度即可)。该特性用于制作类似药丸形状按钮非常有效,比如:
.button {
width: 100vh;
min-height: 25vh;
border-radius: 100vw;
background-color: #2a394f;
}
实现类似药丸形状按钮时,如果你不知道按钮高度时,可以设置一个任意大的值,比如
100vw
,甚至是更大的一个值,这样会更安全。
CSS的border-radius
同时也会影响到元素的border
,box-shadow
以及元素的可触摸(可点击)区域:
上面的示例我们使用的是vh
单位(视窗单位),当你改变视窗大小的时候,可以看到圆的大小也随之改变。看上去实现了响应式的圆。其实在CSS中我们还可以利用宽高比的技术方案来实现CSS绘制响应式的圆,只不过需要注意的是宽高比应该采用的1:1
的比例。
使用border-radius
除了绘制圆形之外,我们还可以绘制椭圆,扇形,半圆等等:
如需转载,烦请注明出处:https://www.w3cplus.com/css/css-circle.html
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!