从盒子值创建形状
创建形状的一种简单方法是使用来自 CSS 盒模型 模块的值。本文解释了如何做到这一点。
作为形状值允许的 <box-edge>
盒值是
content-box
padding-box
border-box
margin-box
border-radius
值也支持。这意味着您可以给元素一个弯曲的边框,并将您的内容围绕创建的形状流动。
CSS 盒模型
上面列出的值对应于 CSS 盒模型的各个部分。CSS 中的框有内容、内边距、边框和外边距。
通过使用盒值来创建形状,我们可以将内容围绕这些值定义的边缘流动。在下面的每个示例中,我使用一个定义了内边距、边框和外边距的元素,这样您就可以看到内容流动的不同方式。
margin-box
margin-box
是由外边距边缘定义的形状,包括形状的圆角,如果 border-radius
已被用于定义元素。
在下面的示例中,我们有一个圆形的紫色项目,它是一个 <div>
,具有高度、宽度和背景颜色。border-radius
属性已通过设置 border-radius: 50%
来创建圆形。由于该元素有外边距,您可以看到内容围绕圆形形状及其外边距流动。
border-box
border-box
值是由外边框边缘定义的形状。此形状遵循边框外部的所有正常圆角塑形规则。即使您没有使用 CSS border
属性,您仍然有边框。在这种情况下,它将与 padding-box
相同,即由外内边距边缘定义的形状。
在下面的示例中,您可以看到文本现在是如何遵循边框创建的线的。更改边框大小,内容将随之变化。
padding-box
padding-box
值定义了由外内边距边缘包围的形状。此形状遵循边框内部的所有正常圆角塑形规则。如果您没有内边距,则 padding-box
与 content-box
相同。
content-box
content-box
值定义了外层内容边缘所包围的形状。此框的每个角半径等于 border-radius
减去 border-width
和 padding
,或 0
,以较大者为准。这意味着这里不可能有负值。
何时使用盒子值
使用框值是一种创建形状的简单方法;但是,从本质上讲,这只能适用于可以使用受支持良好的 border-radius
属性定义的非常简单的形状。上面显示的示例展示了其中一个用例。您可以使用 border-radius
创建一个圆形形状,然后将文本弯曲到圆形周围。
仅仅使用这种基本技术,就可以创建一些有趣的效果。在本节的最后一个示例中,我将两个元素分别浮动到左侧和右侧,并为每个元素在最靠近文本的方向设置 100% 的边框半径。
对于更复杂的形状,您需要使用其中一个 基本形状 作为值,或者像本节其他指南中所述那样从图像定义形状。