使用CSS创建具有任何半径的饼的空心球体?

时间:2013-02-08 16:08:06

标签: css css3

我只是想用另一个可以有任何半径的彩色馅饼制作一个空心球体。搜索了很多,但找到了我已经知道的border-radius属性clip: rect(top, right, bottom, left)。我该怎么用?我搜索了它的教程,但教程有点混乱和不完整。

究竟有什么影响?

Link To Website

请参见四色空心球的外观。

stackoverflow也不包含任何类似的问题。

1 个答案:

答案 0 :(得分:6)

要创建该Pie效果,您必须有2个div。

<div id="parent">
    <div id="master">
    </div>
    <div id="slave">
    </div>
</div>

第一个div是原始球体,它可以纯粹用border-radius完成。

enter image description here

-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
width:70px;
height:70px;
border-style:solid;
border-width:10px;
border-color:#573;

第二个div将具有较浅的颜色,再次纯粹使用border-radius

enter image description here

-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
width:70px;
height:70px;
border-style:solid;
border-width:10px;
border-color:#99FF33;

然后我们使用clip:rect(0px,50px,50px,0px);

enter image description here

现在我们只能使用postion:relative;position:absolute;

来修正定位

<强> CSS

#parent
{
    position:relative;
}
#master
{
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    border-radius: 100px;
    width:70px;
    height:70px;
    border-style:solid;
    border-width:10px;
    border-color:#573;
}
#slave
{
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    border-radius: 100px;
    width:70px;
    height:70px;
    border-style:solid;
    border-width:10px;
    border-color:#99FF33;
    position:absolute;
    top:0px;
    left:0px;
    clip:rect(0px,50px,50px,0px);
}

检查 - DEMO

enter image description here

选中此Border Radius Generator(用于制作圈子)。

<强>更新

我找到了一种减少和增加的方法,但它需要2个奴隶,相同的CSS属性。

如果百分比是50%及以上,我们必须隐藏第二个奴隶,并减少或增加第一个奴隶的bottom

clip:rect(0px,50px,20px,0px);

enter image description here

clip:rect(0px,50px,100px,0px);

enter image description here

现在当圆圈的一半被填满时,我们必须show第二个奴隶。要减少它并增加它,我们应该更改top

clip:rect(60px,100px,100px,0px);

enter image description here

clip:rect(20px,100px,100px,0px);

enter image description here

查看 - DEMO

clip:rect(top,right,bottom,left);