我有时觉得方便给一个元素的大小的方面bottom,top,left和right性能,而不是使用width和height。例如,这是此处接受的答案:
但是,由于某种原因,这不适用于svg元素。我已经使用最新的稳定版Firefox和Chrome尝试了以下示例。该svg元素莫名其妙地要采取的大小300x150:
为什么?
尽管在规范中没有直接提到它(至少据我所知)<svg> 被视为已替换元素(与<div>不可替换的块级元素不同)。
对于绝对定位的替换元素,如果top/ 的值bottom过于受限,则一旦为设置了值top,bottom就会被忽略。left/ right属性也是如此。
10.3计算宽度和边距 / 10.3.8绝对定位,替换的元素
- 如果此时值过度约束,则忽略“ left”(如果包含块的“ direction”属性为“ rtl”)或“ right”(如果“ direction”为“ ltr”)的值)并求解该值。
10.6计算高度和边距 / 10.6.5绝对定位,替换的元素
- 如果此时这些值过度约束,则忽略“底部”的值并求解该值。
因此,绝对定位的<svg>元素将相对于top和left偏移定位。