首页
学习
活动
专区
圈层
工具
发布

该如何正确的使用SVG sprites?

大家都知道svg( Scalable Vector Graphics)可伸缩矢量图形,SVG是一种采用XML 来描述二维图形的语言,无论如何放大缩小都不会糊,而图片当展示的尺寸大于图片本身...当后来有一天,我发现了它svg,当然仅仅svg就拿出来吹水,肯定是会被人喷的一脸口水的,SVG symbols/**SVG symbols**/SVG symbols **重要的事说三遍不过份吧**,这项技术基于两个元素的使用...:和 从ps或者Illustrator创建并导出SVG图标,源码大概是这样的: 重点来了,那么我们用symbols包装后是这个样子的: 那么问题来了,我们直接在页面上引用吗...结果是否定的,什么都不会显示: 那么该如何摆正姿势,正确的使用它呢?高潮部分来了: 首席填坑官∙苏南的专栏 为什么图标会显示呢?.../icon.svg#svg-github",可以理解为是css sprite里我们background-image 引入图片一样,而 #svg-github 就是background-position里的坐标

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    该如何以正确的姿势插入SVG Sprites?

    symbol元素对图形的作用是在同一文档中多次使用,添加结构和语义,SVG是无论如何放大缩小都不会糊,而图片当展示的尺寸大于图片本身,就会糊了,糊了,糊了…… 1.1 回顾 Css Sprites SVG它还下面还有很多小弟哦~,……有点扯远了;这项技术基于两个元素的使用: 和 。...> 那么该如何摆正姿势( 你随意就好),正确的使用它呢?..., IE9以上大多数人还是能接受啦,特别是手机端的用户,再也不用担心测试MM来找你,图标不清晰的问题了啦,是不是很开心,有没有~~ 总结: Svg Sprites相比Css Sprites,不管是在维护和开发的过程中...,还是在用户体验、性能、大小、 项目迭代代码维护上都比Css Sprites方便,更高效便捷; svg sprites优缺点: SvgSprites使用xlink:href #id的方式获取,便于维护和扩展

    92940

    SVG之旅:SVG的图层和渲染顺序

    不同的是制图软件可以用鼠标拖动图层来改变层次,而DOM中需要依赖于CSS的属性来控制他的层次关系。其实在SVG中,他也有层和渲染顺序的概念。今天我们就来看看SVG中的图层和渲染顺序相关的知识。...对应的图层顺序也是 ,但在代码中却不一样,反过来了。如图所示: 了解了图层的规则后,我们看看SVG代码和Sketch里面的图层的对照。...SVG渲染顺序 从上面的代码中可以看出,在文本编辑器里编写SVG代码就可以绘制出所需要的图形。那么SVG中绘制过程有自己的基本原则: 解析顺序和绘制顺序一致,都要遵守XML中元素的位置排列。...其中 会复杂一些, 的 矩阵,会包括缩放、平移、旋转等信息,子元素的平移信息,需要和父级元素做缩放相乘后,再做平移 元素属性的默认值:很多工具导出的 SVG,是会忽略一些属性的,而这些属性如果没有值,我们是没办法正确显示的...要解决这个问题,只能通过JavaScript来动态改变SVG的元素顺序。比如: 最终效果如下: 注意: 对于已经存在的对象,则是移动了标签的位置。

    8K60

    如何正确学习JavaScript(写给非JavaScript程序员和编程新手)

    JavaSctipt学习路线 完成整个课程大纲需要花上6~8周的时间,将学会完整的JavaScript语言(包括jQuery和一些HTML5)。...我建议用火狐搭配Firebug插件去测试和调试代码。浏览器控制台就是可以让你编写和运行JavaScript代码的地方。 完成Codecademy?...两本书会涉及更多的一些细节,但只要看完我的博文,你可以完全放心地跳过这些细节。 1、阅读《JavaScript权威指南》第7~8章或者《JavaScript高级程序设计》第5和7章。...它还结合了Node.js,Git和其它JavaScript框架,所以即使你成为了明星级的JavaScript开发者,你还是会用到它的。除非以后出现了更多的JavaScript IDE。...2、此时,你用起JavaScript来应该很顺手,有点像武林高手要出山了。但你还不能成为高手,你要把新学到的知识反复使用,不停的学习和提升。

    1.6K70

    mxgraph教程_graph绘图

    mxGraph是一个支持多种语言(Java、JavaScript、PHP、.NET)的画图框架,所绘制的图形可以在主流浏览器以及原生应用上使用。...优点 强大的API,可以实现复杂的图形和效果。 渲染速度快,可以利用显卡加速。 缺点 也非常依赖浏览器环境,而且低版本的浏览器不支持。 代码逻辑比较复杂。 不方便保存和导出。...svg 优点 宽泛的运行环境。浏览器、绘图工具、编辑器里都可以正常显示。 良好的可编辑性。svg可以在前端通过JavaScript修改,也可以通过后端语言修改,还可以让设计师通过软件修改。 使用简单。...小结 mxGraph默认绘制的是svg图形(看API文档和源码发现也支持canvas),所以支持后端语言进行预渲染,同时也支持保存和导出,转化为位图也非常方便。...边绘制成折线的时候为两种形式,默认是通过贝塞尔曲线绘制成带圆角的折线,另一种是直角折线。 mxGraph内部并没有对这些边进行优化,如果布局不合理,交叉、穿过点的情况就会发生。

    2.9K10

    夹吃灰,推荐:实现 SVG 动画的 5 个 JavaScript 库~

    但是,你知道 SVG 除了可以被用作于静态图片,还可以应用于 SVG 动画吗? 本篇带来实现 SVG 动画的 5 个 JavaScript 库! 点赞 + 收藏 === 学会,一气呵成! 1....它使用关键帧完全控制 SVG 中的路径和动画效果; 除此之外,BonsaiJS 有良好的文档维护,并且还有一些其它惊人的特性。...特性 支持 HTML5 canvas 和 SVG; 运行和渲染在结构上,是分开的; 支持关键帧和传统动画; 在 Node 环境下运行上下文; 适配所有主流浏览器; 安装及使用 npm 安装 npm install...VivusJS VivusJS 是一个设置 SVG 动画的轻量级 JavaScript 库。 它提供了多种动画选择,还可以根据需要编写脚本来绘制 SVG。...5 种不同的 JavaScript SVG 动画库。

    5.2K30

    react的jsx和React.createElement是什么关系?面试常问5

    这是因为我们的 JSX 代码会被 Babel 编译为 React.createElement,我们来看一下babel的表示形式。...图片结论:JSX 的本质是React.createElement这个 JavaScript 调用的语法糖。...= null) { // 进来之后做的第一件事,是依次对 ref、key、self 和 source 属性赋值 if (hasValidRef(config)) { ref =...2.1.2 接下来是一段对于 children 的操作// childrenLength 指的是当前元素的子元素的个数,减去的 2 是 type 和 config 两个参数占用的长度 const childrenLength...: 图片这个 ReactElement 对象实例,本质上是以 JavaScript 对象形式存在的对 DOM 的描述,也就是虚拟 DOM3.3 扩展知识既然是虚拟 DOM,就意味着和渲染到页面上的真实

    63030

    做正确的事情和把事情做正确

    为了可以有效率的做事,我们需要做到: 做正确的事;(效果) 正确的做事;(效率) 把事情做正确: 高效的做事的系统方法是:选择/方法/工具; 事情的选择可以依据“紧急/重要四象限图”,“紧急、...但你需要知道什么是“重要但不紧急的事情”,这需要和你的深度思考有关。 所以,选择是高效的第一步。 做事需先设定目标,想清楚自己要的结果是什么,然后再采取行动。...最好可以把大目标拆解成阶段性的小目标,集中精力和资源单点突破,效率会明显提升。 比如掌握一套快速学会新领域和新业务的方法。...只有这样,才能在面对新的工作领域和内容时,做到得心应手。 对我们技术工作来说,道理是一样的。 你当前做的事情是否可以让后面的工作量减少。...如果单纯的接受被动安排的工作,很难真正的自我提升,也很容易陷入到重复和机械化的工作中去。 我们需要保持一种持续学习,主动追求,迭代自我的态度,这也是《高效能人士》里面提到的”积极主动“。

    85620

    用 awaitasync 正确链接 Javascript 中的多个函数

    下面的代码要做这些事情: 我们有 2 个正常的同步函数 getFieldsFromRequest() 和 extractCourseIdFromEmailAddress() —— 这里没问题。...接下来的两个函数 saveToCloudFirestore() 和 sendEmailInSendgrid(),不能在 getEmailOfCourseWithCourseId() 之前运行并返回 courseEmail...最后,在运行 saveToCloudFirestore() 和 sendEmailInSendgrid() 并返回它们的值之前,不能发送 res.send(),否则我们的整个云函数将在工作完成之前中断。...为此,我们将 saveToCloudFireStore() 和 sendEmailInSendgrid() 响应(它们返回的内容)保存到变量中,其唯一目的是标记上述函数何时完成。...这在某种意义上取代了 .then():它等待这两个变量( savedToCloud 和 sentEmail)“到达”(他们的 Promise 已经解决),然后运行 res.send)() 。

    9K30

    react的jsx和React.createElement是什么关系?面试常问

    这是因为我们的 JSX 代码会被 Babel 编译为 React.createElement,我们来看一下babel的表示形式。...图片结论:JSX 的本质是React.createElement这个 JavaScript 调用的语法糖。...= null) { // 进来之后做的第一件事,是依次对 ref、key、self 和 source 属性赋值 if (hasValidRef(config)) { ref =...2.1.2 接下来是一段对于 children 的操作// childrenLength 指的是当前元素的子元素的个数,减去的 2 是 type 和 config 两个参数占用的长度 const childrenLength...: 图片这个 ReactElement 对象实例,本质上是以 JavaScript 对象形式存在的对 DOM 的描述,也就是虚拟 DOM3.3 扩展知识既然是虚拟 DOM,就意味着和渲染到页面上的真实

    73630

    web网站使用d3.js来绘制图表

    话不多说,记录分享一下使用和调用流程。# 一:D3.js 简介D3.js 是一个用于创建数据驱动的文档的 JavaScript 库。...它提供了一组易于使用的 API,可以帮助开发者快速创建各种类型的图表和可视化效果。...D3.js 的主要特点是使用数据驱动的文档,这意味着您可以使用任何格式的数据来创建可视化效果,包括 CSV、JSON、XML 等,你可以通过自定义 HTML、CSS 和 JavaScript 来实现复杂的图形和交互效果...文件并编写代码:```javascript// 定义数据 var data = [5, 20, 35, 10, 50]; // 创建 SVG 容器并设置宽度和高度 var svg = d3....var line = svg.append("path") // 添加折线元素 .attr("class", "line") // 设置折线元素类名(用于样式设置)

    1.8K10

    【实战】基于 Vue,使用 D3.js 画一个疫情趋势折线图

    在本文中,我们将使用 D3.js 和 Vue.js 创建折线图,并勾画一个疫情趋势。 D3.js D3 是一个开源 JavaScript 库,用于在 Web 浏览器中创建交互式数据可视化。...根据官方文档所介绍的: D3 帮助用户使用 HTML、SVG 和 CSS 将数据变为现实。...接下来,我们使用 D3 的 attr() 方法将宽度和高度属性添加到 svg,然后将 g(SVG 元素)附加到 svg。 SVG 元素是用于对其他 SVG 元素进行分组的容器。...创建折线 D3 提供了一个 d3-shape 模块,我们可以使用它来创建复杂的形状,例如符号、线条和圆弧。 我们正在创建一个折线图,因此我们将使用 d3.line() 方法。...设置 d 的属性,该属性指示 SVG 路径关于在何处连接路径的点 有了这个,我们看到折线图出现在浏览器中。

    1.4K20

    基于 Vue,使用 D3.js 画一个疫情趋势折线图

    D3.js D3 是一个开源 JavaScript 库,用于在 Web 浏览器中创建交互式数据可视化。D3 可用于操作 DOM 对象和 HTML、SVG 或 Canvas 元素以可视化数据。...根据官方文档所介绍的: D3 帮助用户使用 HTML、SVG 和 CSS 将数据变为现实。...接下来,我们使用 D3 的 attr() 方法将宽度和高度属性添加到 svg,然后将 g(SVG 元素)附加到 svg。SVG 元素是用于对其他 SVG 元素进行分组的容器。...创建折线 D3 提供了一个 d3-shape 模块,我们可以使用它来创建复杂的形状,例如符号、线条和圆弧。我们正在创建一个折线图,因此我们将使用 d3.line() 方法。...设置 d 的属性,该属性指示 SVG 路径关于在何处连接路径的点 有了这个,我们看到折线图出现在浏览器中。

    4.5K60

    JDK的正确安装和配置

    JDK的全称是Java Development Kit,翻译成中文就是Java开发工具包,主要包括Java运行环境、一些Java命令工具和Java基础的类库文件。...JDK是开发任何类型Java应用程序的基础,而开发Android应用程序时主要使用的开发语言就是Java,而且安装IDE集成开发环境也需要JDK的支持。...一、JDK的下载 JDK程序安装包可以从Sun公司的官方网站免费下载,网址 http://www.oracle.com ,最新的版本是1.8,建议使用1.6以上的版本,根据所使用的操作系统来选择对应的版本...4.jre安装 接下来出现的对话框是询问是否安装JRE(Java运行环境),因为JDK中已经包含开发环境和运行环境(JRE)两部分。...如果也能正确显示javac的版本信息,且与java的版本号一致,说明jdk环境安装和配置大功告成。 ? 如果出现上图类似提示,说明jdk环境安装或配置除了问题。

    1.8K60
    领券