【发布时间】:2015-05-27 21:16:33
【问题描述】:
问题小提琴 1
这是有问题的小提琴:Fiddle 1
#one {
height: 200px;
width: 200px;
border-radius: 100% 0 0 0;
background-color: plum;
box-shadow: inset 40px 40px 0 0 red, inset 80px 80px 0 0 blue, inset 120px 120px 0 0 green;
}
<div id="one"></div>
在这个特定的示例中,我使用了 100% 的左上角边框半径,所有其他边框半径为 0%,并且高度等于宽度,产生一个象限。
现在我向主元素添加了 3 个插入框阴影,带有 x,y 偏移。我希望盒子阴影遵循曲线,并且彼此平行,如下所示:
这是输出:
问题小提琴 2
这是另一个不跟随曲线的 box-shadow 示例。这个没有 x-y 偏移。 Fiddle 2
div {
height: 200px;
width: 200px;
border-radius: 100% 0 0 0;
background-color: plum;
box-shadow: inset 0px 0px 0 70px green;
}
<div></div>
在这种情况下,粉红色区域应该是一个象限,但看起来像一个三角形。
为什么 inset box-shadow 随着传播半径的增加而失去曲线?这是一个错误吗?它似乎不是一个,因为所有主要浏览器都提供相同的输出。
【问题讨论】:
-
你用阴影创建的每个内圆的中心点都在移动,所以圆弧不能跟随外圆的曲线。您还应该能够缩小内圈。你有没有试过玩火车模型,用曲线做一条两轨赛道?你需要有不同的半径更短的弯曲部分:f.tqn.com/y/modeltrains/1/L/3/-/-/-/Curves.png
-
感谢@FabrizioCalderan。第一个问题非常幼稚。你能解释一下第二个吗?
标签: html css rendering box-shadow