x

Baseline 已广泛支持

此特性已经十分成熟,可在许多设备和浏览器版本上使用。自 2020 年 7 月以来,它已在各大浏览器中可用。

x CSS 属性定义了 SVG <rect> 形状、<image> 图像、<foreignObject> 视口或嵌套的 <svg> 视口左上角的 x 轴坐标,其坐标是相对于最近的 <svg> 祖先的用户坐标系而言的。如果存在,它会覆盖元素的 x 属性。

注意: x 属性仅适用于 <rect><image><foreignObject> 以及嵌套在 <svg> 中的 <svg> 元素。它对外层 <svg> 元素本身没有影响,也不适用于其他 SVG 元素、HTML 元素或伪元素。

语法

css
/* length and percentage values */
x: 40px;
x: 40%;

/* Global values */
x: inherit;
x: initial;
x: revert;
x: revert-layer;
x: unset;

<length><percentage> 值表示 SVG 元素容器左上角的 x 轴坐标位置。

<length>

作为绝对或相对长度,它可以用 CSS <length> 数据类型允许的任何单位表示。

<percentage>

百分比是指 SVG viewBox 的宽度(如果已声明),否则百分比是指当前 SVG 视口的宽度。

正式定义

初始值0
应用于<svg> 中嵌套的 <svg><rect><image><foreignObject> 元素
继承性
百分比参照当前 SVG 视口宽度
计算值指定的百分比或绝对长度
动画类型按计算值类型

正式语法

x = 
<length-percentage>

<length-percentage> =
<length> |
<percentage>

示例

定义 SVG 形状的 x 轴坐标

此示例演示了 x 的基本用法,以及 CSS x 属性如何优先于 x 属性。

HTML

我们包含了四个相同的 SVG <rect> 元素;它们的 xy 属性值都为 10,这意味着四个矩形都在同一位置,距离 SVG 视口的左上角 10px

html
<svg xmlns="http://www.w3.org/2000/svg">
  <rect width="100" height="100" x="10" y="10" />
  <rect width="100" height="100" x="10" y="10" />
  <rect width="100" height="100" x="10" y="10" />
  <rect width="100" height="100" x="10" y="10" />
</svg>

CSS

我们将所有矩形样式化为黑色边框并略微透明,以便重叠的矩形可见。我们为每个矩形提供了不同的填充和 x 值。

css
svg {
  border: 1px solid;
  width: 300px;
}

rect {
  fill: none;
  stroke: black;
  opacity: 0.8;
}

rect:nth-of-type(2) {
  x: 3em;
  fill: red;
}

rect:nth-of-type(3) {
  x: 180px;
  fill: yellow;
}

rect:nth-of-type(4) {
  x: 50%;
  fill: orange;
}

结果

矩形的左边缘分别位于 10(来自属性)、3em180px50%。SVG 宽 300px,因此最后一个矩形的左侧位于 150px 处。

规范

规范
Scalable Vector Graphics (SVG) 2
# X

浏览器兼容性

另见