首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SVG的动态之美-搜狗地铁重构散记

本文重点讨论搜狗地铁SVG的使用和优化方案。讨论技术细节之前,我们先说明一下为什么要使用SVG。...也就是说,地图必须是“矢量的”[注]; 居中某一个点则必须知道点的坐标信息,然后结合浏览器坐标体系和viewport尺寸计算出正确的展示内容; 完整展示某个轮廓则必须知道轮廓的尺寸以及坐标,然后结合浏览器坐标体系和...灰色的部分为svg节点; 白色的部分为地铁图线路的真实区域; 中间的长方形为浏览器窗口,同时也是handler节点的尺寸。...这两个属性实现SVG缩放非常关键,但搜狗地铁并没有借助viewBox实现缩放,而是将全部的展示交给了view节点的transform,一定程度上减轻了CSS和SVG坐标差异性造成的计算复杂度。...,灰色区域为Container节点,两者缩放过程中均未改变。

2.1K01

如何为应用选择最合适的图像格式

它与 JPEG 不同,因为它是一种无损格式,并且是目前网络最常见的无损格式。这意味着由于它的压缩算法,当文件被保存和压缩,不会丢失任何信息。...PNG 24 和 PNG 32 PNG 24 是不透明的;PNG 32 是支持透明的,且是 Alpha 透明。来看下它们不同浏览器下的表现: ?...PNG 32 图片的透明区域 IE 6 下将不再透明,而是颜色值为 f0f0f0 的灰色填充,更高级版本的 IE 下是正常的。PNG 32 图片不会有锯齿。...一些情况下,SVG 和 PNG 都能很好地达到同一个目的。对于线条艺术,SVG 通常能生成较小的文件。但是这不是必然的,实际情况会根据矢量图像究竟有多少个锚点,它甚至可能会生成比PNG更大的文件。...Compresso 和 SVGOMG 等在线工具可以完成工作。 参考文章 在网页使用JPG、PNG和SVG:新手指南 PNG使用技巧 PNG vs. GIF vs. JPEG vs.

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

《CSS揭秘》读书总结:背景与边框

解决方案 默认状态下,背景会延伸到边框的区域下层,结合下面绿色背景虚线边框的比较好理解: ?...这就可以解释我们遇到的难题:body 的背景并没有从内部 content 的半透明的白色半透明边框处透上来,而是透明白色边框处透出了这个容器自己的纯白实色背景,这实际上得到的效果跟纯白实色的边框看起来完全一样...对于不支持 background-position 扩展的浏览器,应该为其提供回退方案, background 中指定老式的 right bottom 简写值: background : url(code-pirate.svg..., #fb3 0, #fb3 75%, #58a 0); background-size : 30px 30px; 关于条纹变成斜向后为何会看起来变瘦了,实际是因为背景尺寸设置为 30px ,产生的条纹宽度将是...实际应对这种情况,我们可以把最深的颜色指定为背景色,同时把半透明白色的条纹叠加在背景色之上来得到浅色条纹: background : #58a; background-image : repeating-linear-gradient

1.7K40

小图标,大学问

svg 和 html 语法非常像,都是 xml 语系,只是使用了不同的命名空间(xmlns),因此我们可以把 svg 作为一个元素内联到 html 中,现代浏览器可以正确地解释它们。...这种用法比较自然,html 中引入的 css 也同样可以作用于 svg 内部的元素,图文可以无缝整合在一起。 不过这种用法有两个问题。...比如当你写 ,把它混排到灰色文字中,这个rect的填充色就是灰色的,混排到蓝色文字中就是蓝色的。...即使你不需要彩色图标,凭借 svg 对元素透明度的支持,也可以让你的图标比字体图标更加丰富多彩。 二是图标的大小不会自动跟随字体大小。...不过这个就好解决了,因为 css 中有一个特性就是把当前字号作为尺寸单位,也就是 em,比如图标大小设置为1em就会让图标的实际尺寸跟当前字号一致。

1.3K10

「译」前端项目中常见的 CSS 问题

---- 浏览器中实现用户界面,最好是尽可能地减小这些差异和问题,以便 UI 呈现出预测的样子。记住所有的这些差异是很困难的,所以我列举了一系列常见问题以及解决方案。...透明渐变 当使用透明起点和终点添加渐变的时候, Safari 下会呈现一片漆黑。这是因为 Safari 无法识别关键字 transparent。...为图片设置 max-width 添加图片时,定义 max-width: 100%,这样图片会在屏幕较小的时候改变大小。否则浏览器将会显示水平滚动条。...给一个 SVG 添加 fill 使用 SVG ,如果在 SVG 内部添加 fill,有时候它可能不会如预期的那样生效。...p { direction: ltr; } image.png (大预览) 结论 这里提到的所有问题都是我在前端开发工作中最常遇到的。我的目标是开发 web 项目定期检查这份清单。

2.1K10

时至今日,浏览器色彩居然仍旧失真?

失真现象包括色彩、透明度和缩放比例,图像、CSS、SVG都有失真。...,黑色为75%的不透明25%的透明度下叠加明亮的颜色,应该是为了正确地染上底层的黑暗区域,像灯光照在投影屏幕一样洗掉它们。...叠加75%的黑色不应该完全盖住明亮的区域,也不应该压坏黑色。想一想,如果你有4盏灯,关掉3盏,场景会有多亮。 我们有理由想要一个不同的效果,这就是为什么我们有混合模式,但这些是明确的设计选择。....png SVG填充不透明度 正确的缩放比例 post15image9.png 一个按2次方缩小的测试图像 灰色方块的外部和内部应该是相同的整体亮度,因为它们都发出了平均亮度为白色一半的光。...如果你有一个HiDPI显示器或正在使用缩放功能,你的浏览器已经缩放了(不正确的),全尺寸的图像看起来会有问题。

4.3K177

网站图标开发指南

,设计师们通常都会给我们提供多个尺寸的设计(@1x 、@2x ),于是我们就可以根据不同的客户端来选择对应尺寸的图片。...-- 如:当设备像素比为 2 浏览器会自动选择 2x 进行渲染--> </body...浏览器渲染,这张大图片只需要发起一次 HTTP 请求,然后就被浏览器缓存起来了,当再次使用该图片时,就会直接从缓存中进行读取,从而避免了发起多次 HTTP 请求。...当我们匹配到对应的区域,就能进行对应的颜色修改了,一张多色的 SVG 也就做好了。 ?...总结一下 SVG标的特点: 支持动态修改多个区域的颜色 支持渐变色 矢量,放大也不会变模糊 思考与总结 本文介绍了 3 种小图标的使用方式,这里做一个简单回顾。

1.7K30

一篇文章带你了解SVG 图标

一、SVG标的优势 图标使用SVG的优点: 1、可以轻松地按比例放大和缩小图标,具体取决于要在应用程序中显示的位置以及显示应用程序的屏幕尺寸。...二、Web Apps中使用SVG图标 如在Web浏览器中显示SVG所述,有几种方法可以Web浏览器中显示SVG,作为HTML页面的一部分。...但是,显示SVG图标,使用HTML的img元素来显示图标是最容易的,HTML img元素可以轻松地放大和缩小SVG标的大小。...SVG图标与img元素一起显示的效果: ?...如何只显示SVG画布的包含圆圈图标的部分? 只想显示SVG画布的包含圆圈图标的部分。该区域从点0,0延伸到点128,128(圆的半径为64,以64,64为中心)。

4.2K30

Day4 chart基本属性分析

: {string}, }); 创建一个 chart 实例,返回一个 Chart 对象,建议单个容器只初始化一个 Chart 实例,接下来对chart的各个属性进行一一解析,其中红色字样为常用属性或重要注意点...,但如果需要多副相同的,需要写重复代码,所以这里可以提个需求:让容器允许接收元素数组,而不是单单某一个元素。   ...4.height   指定图标的高度,单位为'px',未设置默认是500,且不受forceFit影响。...6.background 设置图表整体的边框和背景样式,是一个对象,下图中的灰色背景部分就是background设置的区域(即整个chart画板区域),包含如下属性: ?...radius: {number} // 图表圆角大小 } 7.plotBackground   图表绘图区域的边框和背景样式,是一个对象,下图中的灰色背景部分就是plotBackground设置的区域

52330

前端面试题-每日练习(3)

label标签来定义表单控制间的关系,当用户选择该标签浏览器会自动将焦点转到和标签相关的表单控件。...(7)浏览器兼容问题七:透明度的兼容CSS设置 一般ie中用的是filter:alpha(opacity=0);这个属性来设置div或者是块级元素的透明度,而在firefox中,一般就是直接使用opacity...(5)、父级div定义 overflow:auto 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto浏览器会自动检查浮动区域的高度 优点:简单...、代码少、浏览器支持好 缺点:内部宽高超过父级div,会出现滚动条。...相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸(默认16px)。

13420

前端硬核面试专题之 CSS 55 问

1、map+area 或者 svg 2、border-radius 3、纯 js 实现,需要求一个点在不在圆简单算法、获取鼠标坐标等等 ---- 实现不使用 border 画出 1px 高的线,不同浏览器的标准模式与怪异模式下都能保持一致的效果...---- canvas 与 svg 的区别 ? Canvas 是基于像素的即时模式图形系统,最适合较小的表面或较大数量的对象,Canvas 不支持鼠标键盘等事件。...SVG 是基于形状的保留模式图形系统,更加适合较大的表面或较小数量的对象。 Canvas 和 SVG 修改方式还存在着不同。绘制 Canvas 对象后,不能使用脚本和 CSS 对它进行修改。...相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册) 任意浏览器的默认字体高都是 16px。...但在菜单栏,或者一些图标的横向排列,用起来特别方便,一个 float 就解决了,而且每个元素之间不会有任何间距(所以可以用 float 消除元素间的距离); ---- svg 与 convas 的区别

2K20

如何使用 Tailwind CSS 设计高级自定义动画

骨架屏(占位区域) 在这个例子中,我们将使用Tailwind CSS创建一个占位符内容区域,用于没有网络连接或正在加载数据使用 :) <div class="mx-auto mt-10 w-full...<em>在</em>圆形元素<em>内部</em>,有一个<em>较小</em>的圆形元素位于右上角。...用途:使用<em>此</em>动画,我们可以展示数据加载、图像加载或文件上传的处理过程。 4、双重弹力圆形 这段动画代码创建了一个包含两个圆的动画。其中一个是较大的圆形,会反弹,另一个是<em>较小</em>的圆形,在其下方旋转。...<em>在</em>第二个 div 内,有另一个具有居中、大小调整、脉冲动画效果和<em>灰色</em>背景颜色的 div 元素。 我们<em>在</em>父元素 div <em>上</em>应用了 animate-bounce 类,因此所有<em>内部</em>元素都具有默认的弹性效果。...容器<em>内部</em>有一个<em>较小</em>的元素,它也应用了翻转动画效果,使其垂直来回连续旋转。

95820

TRTC案例:截图体积与清晰度

为什么同样尺寸的照片清晰度和体积差那么多,业务该如何实现高清截图。 分析解决方案: 问题1:如何有效调整分辨率 这里各端直接使用SDK提供的调整分辨率接口即可。...图片的格式多种多样,总体可以分为点阵图(位图)和矢量两大类;常见的BMP、JPEG、PNG等格式都是点阵图形,而SVG、SWF等格式的图形属于矢量图形。...压缩 较小 较大 大 是否支持透明 支持单一透明 否 支持索引透明和alpha透明 不支持透明 24位的基础增加了8位透明通道,可展现256级透明程度 PART2:图片大小的计算方式 图片体积的影响因素...同样的尺寸的JPG图像大小通常也是不一样的,因为用DCT压缩的时候,如果图像的色彩越丰富,那么压缩以后的尺寸越大,所以一张空白和一张风景照压缩以后的文件大小是不一样的。...附: (1)补充alpha通道的概念: “描述图片中的透明区域透明区域允许通透地显示背景,是指一张图片的透明和半透明度。

2.5K10

高质量又免费的图标资源都在这

我们去开发一款 App 的时候,图标一定用得到,去哪儿找高质量又免费的图标资源呢?...图标的尺寸 移动端 iOS 规范中 2 倍图下最适合人点击的区域大小为 48*48px, iOS 功能图标尺寸为 48 加或减 4 的倍数;安卓 Android 功能图标尺寸为 48 加或减 8 的倍数...为什么 iOS 是 4 的倍数?因为 2 倍适配 3 倍要乘以 1.5, 适配 1 倍要除以 2, 并且保证 1 倍/ 2 倍/ 3 倍尺寸值都是偶数,能满足要求的最小数是 4; ?...为什么安卓 Android 是 8 的倍数?安卓开发中最小的单位是1dp(1dp=2px)同时也要满足 2 倍适配 1 倍和 3 倍都是整数, 所以安卓要是 8 的倍数。...图标的线条一定要紧贴像素网格,不然边缘会虚化模糊。 ? 形状描边对齐方式通常用内部对齐方式(不会改变图形尺寸),居中对齐会出现模糊,外部对齐会改变图标大小。

1.4K20

为你重新系统梳理下, Web 体验优化中和有关的那些事(万字长文)

当页面的 scrollTop 与浏览器的高度之和大于图片距页面顶端的 Y (注意是整个页面不是浏览器窗口),说明图片已经进入可视区域,这是把 data-src 的值放到 src 中即可。...Etag 的出现很好地解决了这个问题,其为一个哈希值,浏览器甚至不用去关系这个值是怎么来的,第一次请求浏览器生成 Etag 并发送到服务端。浏览器下一次请求发现这个值未变,就跳过请求。 ?...“注:如不考虑低版本浏览器兼容性,推荐使用 SVG Icons,有兴趣可以阅读 张鑫旭-SVG Sprites技术介绍 如果采用小图片,需要考虑一个问题:每张小图片独立请求,加载都会产生一个 HTTP...DIP 设备无关像素,是一种基于屏幕坐标的抽象像素,应用程序以抽象像素为单位,如我们 CSS 中使用的 px,实际渲染通过底层程序转换为物理像素。...自适应 DPR 加载图片 高分辨率显示屏如 2x 页面中使用二倍可以保证清晰度,但是当此页面低 DPR 设备打开,我们只需要 50% 长宽的图片就能保证显示效果,而此时带宽开销却是一样的。

1.3K20

探索现代图片格式:从GIF到HEIF,优势与适用场景一览

关注图片的透明性和色彩丰富程度对于选择正确的图像格式以及设计和处理图像都至关重要。对于需要有透明效果或需要在不同背景使用的图像,选择支持透明性的格式(如PNG或GIF)是很重要的。...32位真彩色 32位真彩色24位真彩色的基础再增加了一个表示图像透明度信息的Alpha通道,通常称为32位色。这使得图像可以支持半透明效果,使得图像在叠加能够更好地融合。...有透明性的图像可以让您将图像放置在其他背景,形成无缝融合的效果。这在图标、徽标和图形设计中非常常见。 常见的支持透明性的图像格式是PNG和GIF,它们允许指定图像的某些区域透明。...JPEG文件通常较小,适用于在网页显示图片和储存大量照片。...广泛兼容性: SVG格式各种设备和浏览器具有广泛的兼容性,因为它是一种开放标准,并且被主流浏览器支持。

49810

Web性能优化:图片优化

这些效果不但需要的空间很小,而且多设备、多分辨率下都能很好的工作,低级浏览器也可以实现较好的功能降级。...我们经常听到的词语包括矢量、标量SVG、有损压缩、无损压缩等等,我们首先说明各种图片格式的特点 图片格式 压缩方式 透明度 动画 浏览器兼容 适应场景 JPEG 有损压缩 不支持 不支持 所有...JPG减少30%的体积,但目前兼容性较差 如果需要较通用的动画,GIF是唯一可用的选择 GIF支持的颜色范围为256色,而且仅支持完全透明/完全不透明 GIF显示颜色丰富的动画可能出现颜色不全、...(鸽子为什么那么大?^_^) 我们能够控制的地方是“恰好”显示所需尺寸的图片。...只想建议一句,Kraken的首页比智美好几百倍…… 而且把压缩前的PNG和压缩后的JPG放在一起对比大小,真的没关系么~ 优化SVG 所有较新的浏览器都支持可缩放矢量(SVG),SVG

3K70

设计师使用SVG的必读文章

单个SVG的时候,2种方式都是健康的,可是如果业务中使用了SVG雪碧,那1就存在大大的隐患。...同类名的样式就必然会发生互相污染;这类污染体现在IE9等低版本浏览器SVG的读取。故,针对需要SVG雪碧合并的业务,选择内联样式的导出方式,更为安全健康。...[图片] 腾讯云业务就曾经在此处踩过坑,IE9浏览器使用SVG雪碧,会出现大量的颜色尺寸错误,其原因就是有个别icon,导出的时候,使用了内部CSS的方式。...F.缩小和响应 缩小:压缩SVG代码,删除不必要的空格,来减小SVG图片体积。因为我们的Maxim工具上传自动会做一次这样的压缩,所以日常导出不需要依靠AI的简易压缩了。...来自 不留名同学  的实践经验补充: “新版的AI 2018输出svg标的时候,新增了通过另存为就可以导出SVG的方式,SVG的设置不会自动保存上次勾选的设置,每次都会回退成系统默认设置。”

5.5K61

全栈之前端 | 9.CSS3基础知识之图像元素样式学习

round: 随着允许的空间尺寸的增长,被重复的图像将会伸展 (没有空隙), 直到有足够的空间来添加一个图像。...,图像可以保留原有尺寸,或者拉伸到新的尺寸,或者保持其原有比例的同时缩放到元素的可用空间的尺寸。...其效果类似于透明薄膜重叠印刷的两个图像。 screen: 最终的颜色是反转顶层颜色和底层颜色,将反转后的两个颜色相乘,再反转相加得到的和得到的结果。 黑色层不会造成变化,白色层导致白色最终层。...混合模式类似于 multiply,但是,前景只需要和背景的反色一样暗,最终图像就会变为全黑。...混合模式相当于顶层与底层互换后的 overlay。 其效果类似于背景层(用前景层)打出一片刺眼的聚光灯。

15910

前端性能优化原理与实践

JPEG/JPG 关键字:「有损压缩、体积小、加载快、不支持透明」 「JPG」 适用于呈现色彩丰富的图片,我们日常开发中,JPG 图片经常作为大的「背景、轮播或 Banner 」出现。...支持透明、可以显示动、压缩后尺寸更小。 WebP的缺点:兼容性问题、增加服务器的负担。...当tab页关闭,内存里的缓存也消失。哪些文件被放入缓存取决于浏览器,一般较小的文件会放入内存的缓存,大文件则不会。...「整合图层,得到页面」 最后一步浏览器会合并合各个图层,将数据由 CPU 输出给 GPU 最终绘制屏幕。...「当前可视区域的高度」, 和现代浏览器及 IE9 以上的浏览器中,可以用 window.innerHeight 属性获取。

92720
领券