【发布时间】:2021-01-12 07:48:27
【问题描述】:
这是创建一对半圆的一种方法:
.shape {
width: 100px;
height: 200px;
border-radius: 50%;
background-color: gray;
border-left: 100px solid black;
}
<div class="shape"></div>
div 看起来像这样:
在div上添加border-left后,椭圆的形状似乎会改变。但我实际上不知道为什么。在我看来,在我添加border-left之前,div必须是一个椭圆。一旦我添加它,它应该看起来像这样:
我的意思是它应该将左侧延伸到100px,而右侧仍然保持椭圆的形状,使自己成为一个不规则的图形。但实际上,它只是变成了一对半圆。为什么?
【问题讨论】:
-
当您将
border添加到content-box元素时,它会将边框的宽度添加到元素宽度。在此示例中,您的100px元素变为200px。border-radius应用于整个元素,在您的示例中,它是一个100px矩形,紧邻另一个100px元素(边框)并创建一个“完美”圆圈 - content-box 与 border-box -
@justinw 但是对于第二张图片,我仍然可以说它将边框的宽度添加到元素宽度中,并且 100px 的元素变成了 200px。虽然是不规则的身材。
-
也许我没有正确理解,但你为什么会期待不规则的形状?边框半径正在应用于整个形状/元素,当您添加边框时是元素+它的边框。
-
@justinw 我想创建一个常规形状,但我不知道它为什么起作用。我认为添加
border-left只会根据其原始形状扩展div的左侧。这样作为您的example,div 仍然保留右侧,同时扩展其左侧。 -
很抱歉,我不太明白哪里出了问题,希望其他人能提供更多帮助。
标签: css css-shapes