viewBox - SVG: Scalable Vector Graphics 编辑
The viewBox
attribute defines the position and dimension, in user space, of an SVG viewport.
The value of the viewBox
attribute is a list of four numbers: min-x
, min-y
, width
and height
. The numbers separated by whitespace and/or a comma, which specify a rectangle in user space which is mapped to the bounds of the viewport established for the associated SVG element (not the browser viewport).
html,body,svg { height:100% }
svg:not(:root) { display: inline-block; }
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<!--
with relative unit such as percentage, the visual size
of the square looks unchanged regardless of the viewBox
-->
<rect x="0" y="0" width="100%" height="100%"/>
<!--
with a large viewBox the circle looks small
as it is using user units for the r attribute:
4 resolved against 100 as set in the viewBox
-->
<circle cx="50%" cy="50%" r="4" fill="white"/>
</svg>
<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
<!--
with relative unit such as percentage, the visual size
of the square looks unchanged regardless of the viewBox`
-->
<rect x="0" y="0" width="100%" height="100%"/>
<!--
with a small viewBox the circle looks large
as it is using user units for the r attribute:
4 resolved against 10 as set in the viewBox
-->
<circle cx="50%" cy="50%" r="4" fill="white"/>
</svg>
<svg viewBox="-5 -5 10 10" xmlns="http://www.w3.org/2000/svg">
<!--
The point of coordinate 0,0 is now in the center of the viewport,
and 100% is still resolve to a width or height of 10 user units so
the rectangle looks shifted to the bottom/right corner of the viewport
-->
<rect x="0" y="0" width="100%" height="100%"/>
<!--
With the point of coordinate 0,0 in the center of the viewport the
value 50% is resolve to 5 which means the center of the circle is
in the bottom/right corner of the viewport.
-->
<circle cx="50%" cy="50%" r="4" fill="white"/>
</svg>
The exact effect of this attribute is influenced by the preserveAspectRatio
attribute.
Note: Values for width
or height
lower or equal to 0
disable rendering of the element.
Five elements are using this attribute: <marker>
, <pattern>
, <svg>
, <symbol>
, and <view>
.
marker
For <marker>
, viewBox
defines the position and dimension for the content of the <marker>
element.
Value | <number>?, <number>?, <number>?, <number> |
---|---|
Default value | none |
Animatable | Yes |
pattern
For <pattern>
, viewBox
defines the position and dimension for the content of the pattern tile.
Value | <number>?, <number>?, <number>?, <number> |
---|---|
Default value | none |
Animatable | Yes |
svg
For <svg>
, viewBox
defines the position and dimension for the content of the <svg>
element.
Value | <number>?, <number>?, <number>?, <number> |
---|---|
Default value | none |
Animatable | Yes |
symbol
For <symbol>
, viewBox
defines the position and dimension for the content of the <symbol>
element.
Value | <number>?, <number>?, <number>?, <number> |
---|---|
Default value | none |
Animatable | Yes |
view
For <view>
, viewBox
defines the position and dimension for the content of the <view>
element.
Value | <number>?, <number>?, <number>?, <number> |
---|---|
Default value | none |
Animatable | Yes |
Specifications
Specification | Status | Comment |
---|---|---|
Scalable Vector Graphics (SVG) 2 The definition of 'viewBox' in that specification. | Candidate Recommendation | |
Scalable Vector Graphics (SVG) 1.1 (Second Edition) The definition of 'viewBox' in that specification. | Recommendation | Initial definition |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论