我正试图弄清楚我可以通过CSS在SVG上控制什么。
下面的示例显示了属性有时可以通过CSS控制,有时则不能:
div {
border: dashed 1px grey;
padding: 0.5em;
}
rect.controlled-by-css {
stroke: red;
stroke-width: 2px;
x: 5;
y: 20;
height: 10px;
width: 10px;
}
line.controlled-by-css {
x1: 25;
y1: 25;
x2: 40;
y2: 40;
stroke: red;
stroke-width: 2px;
}
<div>
<svg>
<rect stroke ="black" x ="0" y ="0" height ="10" width ="10"/>
<line stroke ="black" x1 ="15" y1 =" 15" x2 ="25" y2 ="0"/>
<rect class ="controlled-by-css"/>
<!-- this line won't show up - x1, x2, y1, y2 are invalid property names -->
<line class ="controlled-by-css"/>
</svg>
</div>
这是怎么回事?
我看过MDN文档,
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/Presentation
上面写着:
SVG表示属性是可以用作SVG元素属性的CSS属性。
但是x,y并没有列为表示元素,但是仍然可以用CSS控制。
我如何知道哪些属性可以用CSS控制,哪些不能?