Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用<svg> viewBox属性?

如何使用<svg> viewBox属性?
EN

Stack Overflow用户
提问于 2013-03-11 10:12:19
回答 6查看 56.7K关注 0票数 85

我是从svg的官方文档中学习的,有这样的一行。我不明白,如果它已经有了widthheight属性,那么在viewBox="0 0 1500 1000"中再次指定它有什么意义呢?它是这样定义的:“一个px单位等于一个用户单位,因此5px的长度等于官方文档中的长度”5“,因此这个viewBox是一个1500px宽1000高的视图,超过了300px和200px。那么为什么它首先要定义宽度和高度值呢?

代码语言:javascript
运行
AI代码解释
复制
 <svg width="300px" height="200px" version="1.1"
         viewBox="0 0 1500 1000" preserveAspectRatio="none"
         xmlns="http://www.w3.org/2000/svg">
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-03-11 10:31:41

宽度和高度是<svg>的大小。viewBox控制其内容的显示方式,因此viewBox="0 0 1500 1000“将按5倍的比例缩小<svg>元素的内容(1500 / 300 =5和1000 / 200 = 5),并且内容的大小将是不使用viewBox而不使用<svg>时的1/5

假设你有一个弹性表面,并将其等分成4个部分。如果你扔掉3块,你得到的曲面大小是原始曲面的四分之一。如果现在拉伸曲面并使其大小与原始曲面相同,则曲面上的所有内容都将是原始曲面的两倍大小。这就是viewBox和width/height的关系。

票数 94
EN

Stack Overflow用户

发布于 2013-06-03 01:36:15

如果不指定viewbox,则假定元素中的所有无单位数字都是像素。( SVG假定将像厘米这样的单位转换为像素时为90 dpi或像素/英寸。)

viewbox允许您使元素中的无单位数字表示“用户单位”,并指定如何将这些单位映射到大小。为简单起见,仅考虑x坐标,即标尺。您的viewbox显示您的标尺将有1500个单位来匹配svg的200像素大小宽度。

从0到1500 (无单位,即用户单位)的直线元素将在绘制时拉伸200像素,即跨越svg绘图的宽度。

(由于SVG可以在不损失分辨率的情况下进行扩展,因此当用户放大或缩小时,像素在现实世界中并没有多大意义。)

这是一种坐标变换。

我建议您学习一本像"SVG Essentials“这样的书,大约用了10美元,我大致引用了这个答案。

票数 32
EN

Stack Overflow用户

发布于 2017-12-30 05:56:59

默认情况下

代码语言:javascript
运行
AI代码解释
复制
<svg width="300" height="200">

svg网格的“标尺”以像素为单位( svg中的所有形状都以像素为单位)

但是你想使用你自己的单位,你可以使用viewBox attr来实现:

代码语言:javascript
运行
AI代码解释
复制
<svg width="300" height="200" viewBox="0 0 1500 1000">

这意味着:

水平轴: 1500 (宽度单位)= 300px => 1(宽度单位)= 300/1500px = 1/5px

垂直轴: 1000 (高度单位)= 200px => 1(高度单位)= 200/1000px = 1/5px

  • 现在svg中的所有形状都将缩放:

与原点相比,它们的宽度比例为1/5px (1/5 <1 =>比例)。

与原点相比,它们的高度也缩放到1/5px (1/5 <1 =>比例缩小)

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15335926

复制
相关文章
SVG - 基本的SVG属性
SVG - 基本的SVG属性 HTML5学堂:在前一篇文章当中,我们讲解了SVG的基本知识,并且为大家介绍了如何在html文件当中书写SVG代码。今天我们具体讲解SVG的基本属性,如何使用SVG完成线、圆等图形的绘制。 line - 直线 拥有四中基本属性 x1 属性在 x 轴定义线条的开始 y1 属性在 y 轴定义线条的开始 x2 属性在 x 轴定义线条的结束 y2 属性在 y 轴定义线条的结束 demo <line x1 = "20" y1 = "20" x2 = "200" y2 = "180" st
HTML5学堂
2018/03/12
4.1K0
网页中如何使用SVG
① 如果文件中的根元素 带有明确的 height 和 width 属性,则它们会被用作文件的固有尺寸; ② 如果只指定 height 或者 width ,并且 带有 viewBox 属性,那么将用 viewBox 计算宽高比,图像会被缩放已匹配指定的尺寸; ③ 如果 带有 viewBox 属性而没有尺寸,则 viewBox 的 height 和 width 将被视为像素长度。 ④ 没有如何尺寸,浏览器应该为嵌入内容应用默认 HTML 尺寸,通常是 150 像素高,300 像素宽。
奋飛
2021/08/31
2K0
网页中如何使用SVG
网页中如何使用SVG
① 如果文件中的根元素 <svg> 带有明确的 height 和 width 属性,则它们会被用作文件的固有尺寸; ② 如果只指定 height 或者 width ,并且 <svg> 带有 viewBox 属性,那么将用 viewBox 计算宽高比,图像会被缩放已匹配指定的尺寸; ③ 如果<svg> 带有 viewBox 属性而没有尺寸,则 viewBox 的 height 和 width 将被视为像素长度。 ④ 没有如何尺寸,浏览器应该为嵌入内容应用默认 HTML 尺寸,通常是 150 像素高,300 像素宽。
奋飛
2021/02/16
1.2K0
网页中如何使用SVG
一篇文章带你了解SVG 图标
SVG图标是SVG图像,用作Web应用程序或移动应用程序内的图标或图像按钮。SVG图标也可以用于徽标。文章说明了SVG图标如何创建自己的SVG图标,以及在何处可以下载高质量的预制SVG图标。
前端进阶者
2021/01/22
4.6K0
Android使用BottomNavigationView以及如何使用SVG图片
我们经常在iconfont上找图片 然后下载下载放在项目里面,为了适配我们还要下载不同尺寸的图片,但是明明iconfont上的图片就是矢量图,为何我们不用矢量图呢?
码客说
2020/05/09
1.9K0
如何使用SVG动画来制作游戏
在使用过一段时间的SVG动画之后,我相当清楚如何利用它来制作动画片段或者网页布局。一些动画库平台,例如Greensock,和原生的CSS动画简直是绝配。于是我便打算深入地研究一下,看看我能否用这些来制作一款简单的游戏。就像一个精美的工艺品一样,好的游戏拥有许多细致的动画细节。有一天夜里,我的脑海中突然闪现了一个游戏的灵感,我马上起来,画了一些草图,之后给我的哥哥看--他是一个专业的网页设计师。我们立即开始着手设计,讨论了所有的细节动画后(试着画出来并且配以音效),我便开始进行游戏开发。
疯狂的技术宅
2019/03/27
2.2K0
如何使用SVG动画来制作游戏
如何在react中使用svg icons
首先,react是支持svg,所以使用svg是没有问题的,但是到目前为止(版本为v15.3.0)还不支持svg的use标签,所以打算使用svg symbol还是趁早放弃,以下为官方的svg支持标签:
IMWeb前端团队
2019/12/04
1.5K0
如何在react中使用svg icons
该如何正确的使用SVG sprites?
    大家好,这里是@IT·平头哥联盟,我是`首席填坑官`——苏南,今天要给大家分享的是SVG sprite(也叫雪碧图),所谓雪碧图,当然就不是我们常喝的雪碧饮料(Sprites)哦,哈哈~
苏南
2018/12/07
2.2K0
该如何正确的使用SVG sprites?
SVG 使用
SVG即Scalable Vector Graphics可缩放矢量图形,使用XML格式定义图形, 主要优势在于可缩放的同时不会影响图片的质量。 SVG 在html 中常用的方法 1.使用<img>元素来嵌入SVG图像 <img src=”http://www.w3school.com.cn/svg/rect1.svg”  width=”300″ /> 2.将SVG图像作为背景图像嵌入 background: url(‘http://www.w3school.com.cn/svg/rect1.svg’) no
用户1197315
2018/01/22
2.5K0
评价打分组件,SVG 半颗星的解决方案!
对于一个内容服务的网站来说评价打分也是很重要的一部分,它有利于分析用户对我们的内容的喜好程序。最近,我们团需要为一个项目实现一个星级评价的组件,需求如下:
前端小智@大迁世界
2022/06/15
7090
评价打分组件,SVG 半颗星的解决方案!
如何在react中使用svg icons
该文介绍了如何在React组件中使用SVG图标。首先介绍了传统的使用方式,然后介绍了使用React组件的方式,最后通过一个名为`Mic`的组件示例展示了如何将SVG图标转换为React组件。通过使用Fis3插件,可以自动将SVG转换为React组件,从而简化了React项目中使用SVG的过程。
IMWeb前端团队
2017/12/29
2.8K0
如何在react中使用svg icons
将 SVG 与媒体查询结合使用
在 HTML 文档中,我们可以根据视口的条件显示、隐藏或重新排列页面的某些部分。例如,如果浏览器窗口的宽度为 480 像素,我们可能会将导航从水平导航移动到垂直可折叠列表。将 SVG 与媒体查询一起使用时,我们可以做类似的事情。
玖柒的小窝
2021/09/12
6.3K0
将 SVG 与媒体查询结合使用
使用 SVG 和 Vue.Js 构建动态树图
本文将会带你了解到我是如何创建一个动态树图的,该图使用 SVG(可缩放矢量图形)绘制三次贝塞尔曲线(Cubic Bezier)路径并通过 Vue.js 以实现数据响应。
出其东门
2019/07/19
6.6K0
使用 SVG 和 Vue.Js 构建动态树图
SVG学习笔记,持续记录。
SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。SVG提供了3种类型的图形对象:矢量图形(vectorgraphicshape,例如:由直线和曲线组成的路径)、图像(image)、文本(text)。图形对象还可进行分组、添加样式、变换、组合等操作,特征集包括嵌套变换(nestedtransformations)、剪切路径(clippingpaths)、alpha蒙板(alphamasks)、滤镜效果(filtereffects)、模板对象(templateobjects)和其它扩展(extensibility)。
房东的狗丶
2023/02/17
3K0
SVG学习笔记,持续记录。
FinClip小程序里如何安全使用SVG
网上零零散散有一些关于在小程序中如何使用SVG的内容,但不是语焉不详,就是信息不完整。在此整理一下,供哪怕是此前从来没有接触过SVG的开发者也可以参考,迅速利用。首先SVG可以被视为一种DSL(Domain Specific Language),也就是说它并不仅仅是JPEG、PNG、GIF之外的又一种图片格式,它还是一种“代码”;也因此,它既有无比的潜力让开发者发挥创意作出有意思的应用,它也有潜在安全风险。在小程序中,起码至目前为止,它的使用方式和在普通网页并不完全一样。
Onegun
2022/05/07
2.2K0
FinClip小程序里如何安全使用SVG
SVG 快速入门
本文作者:ivweb villainthr SVG 全称是 Scalable Vector Graphics,即,矢量图。在 Web 中使用 SVG 可以解决位图放大失真的问题。首先,不要把 SVG
腾讯IVWEB团队
2017/07/11
3.1K5
SVG 快速入门
svg.js教程及使用手册详解(一)
   做毕设的时候,因为要使用到画图和自定义动画,所以接触到了SVG。网上关于SVG和Canvas的对比很多,具体的辨析这里就不赘言。网上关于SVG的所谓教程基本上都是SVG本身,但是却没有一个针对svg.js这样的集成的SVG库进行具体讲解的教程,做这件事的,本文应该是第一篇,也是给那些需要动态的使用SVG的兄弟们一点帮助。
王金龙
2019/02/25
8.5K0
SVG 的 path 属性绘制图形
SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics)。
逃跑计划
2022/08/04
1.5K0
SVG 的 path 属性绘制图形
【Web动画】SVG 线条动画入门
通常我们说的 Web 动画,包含了三大类。 CSS3 动画 javascript 动画(canvas) html 动画(SVG) 个人认为 3 种动画各有优劣,实际应用中根据掌握情况作出取舍,本文讨论
Sb_Coco
2018/05/28
2.3K0
我至今没想到,我也能在 CSS 中实现 SVG 动画了
动画是网络中不可或缺的一部分。与互联网早期使用 GIF 图像不同,现在的动画更加细腻和高雅。设计师和前端开发者利用动画使网站看起来更加精致,不仅提升用户体验,还吸引用户关注重要的元素,以传达信息。
前端修罗场
2023/10/07
1.3K0

相似问题

如何使用‘viewBox’标签设置svg的使用属性?

220

理解svg的viewbox属性

21

如何通过viewBox计算SVG viewBox?

20

在SVG JavaScript viewBox中使用缩放的viewBox动画属性值

10

svg viewBox属性移动子位置

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文