如何使用CSS ::before和::after伪元素绘制指定图形?
基于CSS ::before和::after伪元素实现黄色中心圆形区域
修正后的完整代码
首先修复原HTML的语法错误,再补充::after伪元素的样式实现黄色区域:
HTML代码
<div class="body"> <div class="circle"></div> </div>
CSS代码
.body{ width:100%; height:100vh; /* 改为100vh确保容器铺满整个视口 */ margin: 0; background:#191919; display: flex; justify-content: center; align-items: center; } .circle { position: relative; width: 160px; height: 160px; background: #824B20; border-radius: 50%; } .circle::before{ content: ""; width: 100px; height: 100px; background: #E08027; position: absolute; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); } .circle::after{ content:""; width: 40px; /* 设置比中间橙色圆更小的尺寸,形成嵌套效果 */ height: 40px; background: #FFF58F; position: absolute; border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); }
关键说明
- 调整
.body的高度为100vh并清除默认外边距,确保容器能完全覆盖视口 - 利用
::after伪元素创建黄色圆形,通过绝对定位+transform: translate(-50%, -50%)实现精准居中,配合圆角属性形成圆形 - 原HTML存在标签闭合错误,已修正为标准嵌套结构
内容的提问来源于stack exchange,提问作者ABDULAZIZ NOREDIN QADMOR
相关产品推荐
相关产品推荐

