rx
语法
/* Initial value */
rx: auto;
/* Length and percentage values */
rx: 20px;
rx: 20%;
/* Global values */
rx: inherit;
rx: initial;
rx: revert;
rx: revert-layer;
rx: unset;
值
<length>
、<percentage>
或 auto
关键字值表示椭圆的水平半径和矩形的水平边框半径。
<length>
-
绝对或相对长度可以用 CSS
<length>
数据类型允许的任何单位来表示。负值无效。 <percentage>
-
百分比指的是当前 SVG 视口的宽度。
<rect>
的使用值永远不会超过矩形宽度的 50%。 auto
-
当设置为或默认为
auto
时,rx
值等于用于ry
的绝对长度值。如果rx
和ry
的计算值都为auto
,则使用值将为0
。
正式定义
正式语法
rx =
<length-percentage> |
auto
<length-percentage> =
<length> |
<percentage>
示例
创建圆角
此示例演示通过将 rx
属性应用于 SVG <rect>
元素来创建具有圆角的矩形。
HTML
我们包含一个 SVG 图像,其中包含四个 <rect>
元素;所有矩形都相同,除了它们的 x
属性值,该值将它们沿 x 轴定位。
<svg xmlns="http://www.w3.org/2000/svg">
<rect width="50" height="120" y="5" x="5" />
<rect width="50" height="120" y="5" x="60" />
<rect width="50" height="120" y="5" x="115" />
<rect width="50" height="120" y="5" x="170" />
<rect width="50" height="120" y="5" x="225" />
</svg>
CSS
使用 CSS,我们在四个矩形上设置 rx
值
svg {
border: 1px solid;
}
rect:nth-of-type(2) {
rx: 10px;
fill: red;
}
rect:nth-of-type(3) {
rx: 2em;
fill: blue;
}
rect:nth-of-type(4) {
rx: 5%;
fill: orange;
}
rect:nth-of-type(5) {
rx: 80%;
fill: green;
}
结果
第一个矩形默认为 auto
;由于此示例中所有 ry
值也默认为 auto
,因此 rx
的使用值为 0
。红色和蓝色矩形分别具有 10px
和 2em
圆角。由于 SVG 视口默认为 300px x 150px,因此橙色矩形的 5%
值会创建 15px
半径。绿色矩形设置了 rx: 80%
。但是,由于 rx
的值永远不会超过矩形宽度的 50%
,因此效果就像设置了 rx: 50%; ry: 50%
一样。
定义椭圆的水平半径
此基本 <ellipse>
示例演示了 CSS rx
属性优先于 SVG rx
属性来定义形状的水平半径。
HTML
我们在 SVG 中包含两个相同的 <ellipse>
元素;每个元素的 rx
属性都设置为 20
。
<svg xmlns="http://www.w3.org/2000/svg">
<ellipse cx="80" cy="50" rx="20" ry="40" />
<ellipse cx="80" cy="50" rx="20" ry="40" />
</svg>
CSS
我们只为第一个椭圆设置样式,让它的孪生兄弟使用默认的用户代理样式(其中 fill
默认为黑色)。几何 rx
属性会覆盖 SVG rx
属性的值。我们还设置了 fill
和 stroke
属性以区分带样式的形状与其孪生兄弟。
svg {
border: 1px solid;
}
ellipse:first-of-type {
rx: 80px;
fill: magenta;
stroke: rebeccapurple;
}
结果
带样式的椭圆的水平半径为 80px
,如 CSS rx
属性值中定义的那样。未设置样式的椭圆的水平半径为 20px
,这是由 rx
属性定义的。
椭圆水平半径百分比值
此示例演示了如何使用百分比值来设置rx
。
HTML
我们使用与上一个示例相同的标记。
<svg xmlns="http://www.w3.org/2000/svg">
<ellipse cx="80" cy="50" rx="20" ry="40" />
<ellipse cx="80" cy="50" rx="20" ry="40" />
</svg>
CSS
CSS 与上一个示例类似,唯一的区别是rx
属性的值;在本例中,我们使用百分比值。
svg {
border: 1px solid;
}
ellipse:first-of-type {
rx: 30%;
fill: magenta;
stroke: rebeccapurple;
}
结果
当为rx
使用百分比值时,这些值相对于 SVG 视口的宽度。这里,样式化椭圆水平半径的大小为当前 SVG 视口宽度的30%
。由于宽度默认为300px
,因此rx
值为90px
。
规范
规范 |
---|
可缩放矢量图形 (SVG) 2 # RX |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 几何属性:
rx
、cx
、cy
、r
、ry
、x
、y
、width
、height
fill
stroke
paint-order
border-radius
简写属性径向渐变
<basic-shape>
数据类型