HTML页面中嵌入SVG
HTML页面中嵌入SVG的几种方式
你有N种理由使用SVG在页面中展示图像,如它的矢量特性、广泛的浏览器支持、比JPEG和PNG更小的体积、可用CSS设置外观、使用DOM API操作以及各种可用的SVG编辑工具等。
可以用以下六种方式在页面文档中嵌入SVG:
1. 作为图片使用<img>标签
<img src="mySVG.svg" alt="" />
2. 作为CSS背景图片
.el {background-image: url(mySVG.svg);}
3. 作为对象用<object>标签引入
<object type="image/svg+xml" data="mySVG.svg">
<!-- 如果浏览器不支持,这里显示备选内容 -->
</object>
使用<object>的一大好处是可以提供浏览器不支持情况下的备选方案。
4. 使用<iframe>标签
<iframe src="mySVG.svg">
<!-- 如果浏览器不支持,这里显示备选内容 -->
</iframe>
如果想将SVG代码以及脚本和主页面彻底分离,<iframe>是个不错的选择。但是这样一来在主页面用 JavaScript操作SVG内容就变得稍微麻烦了,并且还有浏览器的同源策略限制。
5. 使用<embed>标签
<embed type="image/svg+xml" src="mySVG.svg" />
<embed>虽然不是HTML规范的一部分,但仍然被广泛支持。它原本是为了支持某些外部插件而存在的,比如 Adobe Flash插件就要依赖这个标签。但是它不能提供浏览器不支持时的备选显示内容。
6. 使用内联<svg>标签
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" …> <!-- svg 内容 --> </svg> 这是目前最常用的方式。使用内联SVG的好处是,可以将CSS样式规则和控制脚本放在当前文档的任何位置,而不是限制在<svg> 标签中。
参考资料
Styling And Animating SVGs With CSS
HTML页面中嵌入SVG的更多相关文章
- 在页面中嵌入svg的几种方法
//在页面中嵌入svg的方法1:使用 <embed> 标签<embed> 标签被所有主流的浏览器支持,并允许使用脚本.注释:当在 HTML 页面中嵌入 SVG 时使用 < ...
- HTML 页面中的 SVG
SVG 文件可通过以下标签嵌入 HTML 文档:<embed>.<object> 或者 <iframe>. 1>使用 <embed> 标签 < ...
- 使用CSS在页面中嵌入字体
http://jingyan.baidu.com/article/3065b3b6e9b2d9becff8a4c1.html 首先感谢css9.net照抄原话: 字体使用是网页设计中不可或缺的一部分. ...
- 如何在页面中使用svg图标
1.svg图标长啥样 注意:图标的宽高无所谓,使用时可以根据需求修改,fill后面是颜色的填充,可修改图标颜色. <svg viewBox="0 0 1024 1024" v ...
- WebIM(5)----将WebIM嵌入到页面中
在之前的文章中,已经开发了一个简单的WebIM,但是这个WebIM是在独立的页面中的,今天发布的WebIM是一个可以嵌入到自己网页中的版本,你只需添加少量的代码,就可以在页面中嵌入一个WebIM.不过 ...
- HTML5中的SVG
* SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名 ...
- 使用JWPlayer在网页中嵌入视频
首发:个人博客,持续更新和纠错 我一直以为在网页中嵌入视频是件复杂的事,一研究才知道原来非常简单. 实际就是在页面中嵌入个控件.社区里已有很多解决方案了.jwplayer是最受欢迎的(之一).控件包括 ...
- JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库
JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...
- JSF页面中使用js函数回调后台action方法
最近遇到了一个问题就是在JSF页面中嵌入html页面,这个html页面中很多功能是使用js动态生成的,现在需要在js函数里想去调用JSF中action类method()方法并动态传送数据给后台进行处理 ...
随机推荐
- MIPS rev.1 指令参数
由于MIPS各个版本之间的操作数会变,如果出现无法识别的情况 需要根据官方的MIPS instruction手册逐条核对,此处的版本为Rev.1 //******MIPS-55*********// ...
- [js]利用闭包向post回调函数传参数
最近在闲逛校园XX站的时候,打算搞个破坏,试试有多少人还是用初始密码登陆.比较懒,所以直接打开控制台来写. 所以问题可以描述为: 向后端不断的post数据,id从1~5000自增,后端会根据情况来返回 ...
- redis内网无法连接的问题
1.修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 2.修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 ...
- C# Pinvoke判断是UEFI模式还是BIOS模式
[DllImport("kernel32.dll", SetLastError = true)] public static extern UInt32 GetFirmwareEn ...
- Visual Studio下使用NUnit进行测试驱动开发
在Visual Studio 2015中集成的MSTest可以用于单元测试. 在项目中,选中需要测试的方法,点击鼠标右键,选择弹出菜单中的[创建单元测试],按照默认设置,即可自动新建一个测试项目. 需 ...
- RDLC报表的相关技巧三(数量/金额的逐页累加)
数量/金额的逐页累加,不是当页小计. 核心步骤: 1.在Group1大组中加入小组Group2,2.Group2的组尾加入一个计算框 : =RunningValue(Fields!BaseAmount ...
- [Objective-C语言教程]函数(11)
函数是一组一起执行任务的语句. 每个Objective-C程序都有一个C函数,也就是main()函数,所有最简单的程序都可以定义为函数. 可将代码划分为单独的函数.如何在不同的函数之间划分代码取决于程 ...
- leetcode-766-Toeplitz Matrix(每一条对角线元素的比较)
题目描述: A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now ...
- babel初学教程
babel安装 安装前你需要安装node.js和npm以及gulp三个包. 然后执行以下命令 $ npm init 然后在安装 babel和babel-core两个包 $ npm install -- ...
- 批量自动化生成PDF目录标签
所需软件: 1. FreePic2Pdf(网上很容易找到) 2. python3 3. 天若OCR 链接:https://pan.baidu.com/s/1B9dUr3gc0pv0BSHo5QYGsQ ...