径向渐变不能按预期工作

时间:2015-11-10 10:16:03

标签: html css css3 css-gradients

我希望只使用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

这是working fiddle

3 个答案:

答案 0 :(得分:1)

你可以这样做:

<强> CSS

jQuery

<强> DEMO HERE

答案 1 :(得分: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 */
 }   

答案 2 :(得分: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/