HTML5中创建半圆有五种方法:一、宽高比+border-radius+overflow裁切;二、伪元素+clip-path;三、单边border-radius控制;四、SVG矢量绘制;五、CSS clip-path path()函数。

如果您希望在HTML5中创建一个半圆形状的元素,可以通过组合使用border-radius和overflow属性实现。以下是几种可靠且兼容性良好的设置方法:
一、利用宽高比+border-radius+overflow隐藏裁切
该方法通过设置元素宽高比为2:1(例如宽200px、高100px),再应用border-radius: 50%使整体呈现椭圆,最后用父容器的overflow: hidden截取上半部分或下半部分,从而得到精确的半圆。
1、创建一个外层容器,设置width: 200px、height: 100px、overflow: hidden;
2、在该容器内嵌套一个子元素,设置width: 200px、height: 200px、border-radius: 50%;
立即学习“前端免费学习笔记(深入)”;
3、给子元素添加margin-top: -50px(上半圆)或margin-top: -100px(下半圆),使其垂直偏移后被外层裁切;
4、为子元素设置背景色,确保半圆区域可见。
二、使用伪元素配合绝对定位裁出半圆
该方法不依赖外层容器的overflow,而是通过伪元素::before或::after生成圆形,再用父元素的相对定位与伪元素的绝对定位+clip-path或遮罩式偏移实现半圆视觉效果。
1、给目标元素设置position: relative;
2、添加::before伪元素,设置content: ""、position: absolute、width: 200px、height: 200px、border-radius: 50%、background: #3498db;
3、设置伪元素top: -50px、left: 0,并添加clip-path: inset(50% 0 0 0)仅显示上半部分;
4、若需下半圆,将clip-path改为inset(0 0 50% 0)。
三、纯border-radius单边控制法(适用于水平半圆)
当需要左右方向的半圆(如左半圆或右半圆)时,可直接对元素的左右两侧分别设置不同半径值,配合固定宽高实现,无需额外裁切。
1、设置元素width: 100px、height: 200px;
2、应用border-top-left-radius: 100px、border-bottom-left-radius: 100px、border-top-right-radius: 0、border-bottom-right-radius: 0;
3、此时左侧形成完整半圆弧,右侧为垂直直线,构成左半圆;
4、若需右半圆,则将非零半径设在右侧,左侧全设为0。
四、SVG内联嵌入方式生成矢量半圆
该方法脱离CSS局限性,使用原生SVG的绘制精确的半圆路径,保证在任意缩放下无锯齿,适合对图形精度要求高的场景。
1、在HTML中插入;
2、添加A表示椭圆弧,100,50为x、y半径,0 0,1控制大弧与方向;
3、设置fill="none"和stroke="#e74c3c"、stroke-width="10"以显示描边半圆;
4、若需填充半圆,改用fill。
五、CSS clip-path path()函数直接定义半圆轮廓
现代浏览器支持clip-path: path(),可通过SVG路径语法直接声明半圆形状,语义清晰且控制粒度高。
1、确保目标元素尺寸为正方形(如width: 200px、height: 200px);
2、添加样式clip-path: path("M0,100 A100,100 0 0,1 200,100 L200,200 L0,200 Z");
3、该路径从左中点出发,画上半圆弧至右中点,再向下封闭矩形底部,形成上半圆填充区;
4、注意:path()函数需Chrome 111+、Firefox 116+、Safari 16.4+才支持,旧版需回退至inset()或ellipse()。











