【问题标题】:Create hollow sphere with pie having any radius using CSS?使用CSS创建具有任何半径的馅饼的空心球体?
【发布时间】:2013-02-09 01:40:23
【问题描述】:

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

具体的效果是什么?

Link To Website

看看那四个彩色的空心球是什么样子的。

而且stackoverflow也不包含任何这样的问题。

【问题讨论】:

  • 你想像那些黄色-红色-蓝色的圆圈一样创建吗?
  • 不,伙计,我认为那个是重复的,还有一个解释做什么和不做什么的教程;)
  • 我刚刚从你的问题clip 中学到了一个新的属性,我已经弄清楚了需要做什么,所以我为什么要回答它。
  • 这是什么“我为什么要回答它”?你能解释一下吗?
  • @AliBassam 我能做的只有当且仅当它满足要求时才能保证你 +25 声誉。

标签: css


【解决方案1】:

要创建饼图效果,您必须有 2 个 div。

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

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

-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

-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);

现在我们必须只修复定位,使用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

查看此Border Radius Generator(用于制作圆圈)。

更新

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

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

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

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

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

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

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

看看 - DEMO

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

【讨论】:

  • 如果我想增加更轻的 div 怎么办?
  • 如何让较轻的 div 增加但不改变其在该 web 中的位置?
  • 它不会改变它的位置,您唯一需要做的就是改变clip中的top,right,bottom,left,以便增加或减少它。
  • 嗯,这是唯一让我感到困惑的事情。您可以看到它在该网络中的动画效果。而当我尝试做什么?发生了什么看:jsfiddle.net/Af8Hh/1 如果我也给出一个大值,#slave div 不会增加
  • 很好的答案。感谢您的努力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多