我正在使用border-radius: 50%;和在CSS中创建一个半透明的圆圈border: 400px solid rgba(255, 255, 255, .5);。
border-radius: 50%;
border: 400px solid rgba(255, 255, 255, .5);
在这个圆的周围,我希望有另一个完全透明的边界(例如10个像素),而又想有另一个半透明的边界(10个像素)。
这是我创建圈子的方式:
div.circle { background: rgba(255, 255, 255, .5); height: 400px; width: 400px; border-radius: 50%; margin: auto; margin-top: 10px; } <div class="circle"></div>
我需要怎么做才能在现有边界周围创建另一个边界,然后再创建另一个边界?
您可以使用简单的边框并将背景裁剪到,content-box以在填充区域中创建透明部分:
content-box
div.circle { background: rgba(255, 255, 255, .5) content-box; padding: 10px; height: 180px; width: 180px; box-sizing: border-box; border-radius: 50%; margin:10px auto; border: 10px solid rgba(255, 255, 255, .5); } body { background: pink; } <div class="circle"></div>
您也可以考虑 radial-gradient
radial-gradient
div.circle { background: radial-gradient(farthest-side, rgba(255, 255, 255, .5) calc(100% - 20px),transparent calc(100% - 20px), transparent calc(100% - 10px),rgba(255, 255, 255, .5) calc(100% - 10px)); height: 180px; width: 180px; box-sizing: border-box; border-radius: 50%; margin:10px auto; } body { background: pink; } <div class="circle"></div>
您可以轻松缩放到任意数量的边界:
div.circle { background: radial-gradient(farthest-side, #fff calc(100% - 61px),transparent calc(100% - 60px), transparent calc(100% - 51px),#fff calc(100% - 50px), #fff calc(100% - 41px),transparent calc(100% - 40px), transparent calc(100% - 31px),#fff calc(100% - 30px), #fff calc(100% - 21px),transparent calc(100% - 20px), transparent calc(100% - 11px),#fff calc(100% - 10px)); height: 180px; width: 180px; box-sizing: border-box; border-radius: 50%; margin:10px auto; } body { background: pink; } <div class="circle"></div>