0

我希望只使用 CSS 在另一个圆圈的中间制作一个完美的圆圈。为此,我正在使用radial-gradient以下是我的代码

li{
    list-style : none;
} 
li:after{
     border-radius: 50%;
    height: 150px;
    width: 150px;
    line-height: 24px;
    position: absolute;
    top: 0;
    left: 0;
    content: '';
     background: radial-gradient(circle, #FFF, #FFF, #DC352E 30%);
 }   

我的 HTML 结构如下

<ul>
    <li></li>
</ul>

但是这段代码并没有给我完美的结果。我在另一个圆的中间得到一个圆,但内圆的边缘变得模糊。我希望内圈也是一个完美的圆圈,没有任何模糊的边缘。有没有针对此类问题的解决方案?

PS:我只想使用 CSS 而没有图像/SVG

这是一个工作小提琴

4

3 回答 3

1

你可以这样做:

CSS

li{
    list-style : none;
} 
li:after{
     border-radius: 50%;
    height: 150px;
    width: 150px;
    line-height: 24px;
    position: absolute;
    top: 0;
    left: 0;
    content: '';
     background: radial-gradient(circle, #ffffff 0%,#ffffff 29%,#dc352e 30%,#dc352e 100%);
 }  

在这里演示

于 2015-11-10T10:23:10.603 回答
1

这个http://jsfiddle.net/0kLoLeer/9/怎么样

CSS

li{
    list-style : none;
} 
li:after{
     border-radius: 50%;
    height: 150px;
    width: 150px;
    line-height: 24px;
    position: absolute;
    top: 0;
    left: 0;
    content: '';
   background: #ffffff; /* Old browsers */
    background: -moz-radial-gradient(center, ellipse cover, #ffffff 24%, #dc352e 25%); /* FF3.6+ */
    background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(24%,#ffffff), color-stop(25%,#dc352e)); /* Chrome,Safari4+ */
    background: -webkit-radial-gradient(center, ellipse cover, #ffffff 24%,#dc352e 25%); /* Chrome10+,Safari5.1+ */
    background: -o-radial-gradient(center, ellipse cover, #ffffff 24%,#dc352e 25%); /* Opera 12+ */
    background: -ms-radial-gradient(center, ellipse cover, #ffffff 24%,#dc352e 25%); /* IE10+ */
    background: radial-gradient(ellipse at center, #ffffff 24%,#dc352e 25%); /* W3C */
 }   
于 2015-11-10T10:23:45.590 回答
0

您可以使用元素边框:

li{
    list-style : none;
} 
li:after{
    border-radius: 50%;
    height: 150px;
    width: 150px;
    line-height: 24px;
    position: absolute;
    top: 0;
    left: 0;
    content: '';
    background:  red;
    border: 10px solid blue;
 }

https://jsfiddle.net/1nm6gr6y/

于 2015-11-10T10:30:04.973 回答