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

【译】Web中的图像技术总结,前端开发中各种图片引入的优点缺点及实例

考虑下面的例子: .element { background: url('cool-1.jpg'), url('cool-2.jpg'); } 2.3 隐藏图片 我们可以在特定的视口上隐藏和显示图片...好吧,让我先补充一些要求: 在与后端CMS整合时,图片应该是很容易动态变化的。 其上方有一个覆盖层,有助于使内容易于阅读。 图像有三种尺寸:小、中和大。它们每个都用于特定的视口。...Smashing Magazine的Logo,我喜欢它从一个小图标变成一个完整的Logo。...Demo 4.3.3 具有CSS背景的 如果我要使用 来显示头像,则可能表示该图像具有装饰性。我记得一个用例,它是分散在页面中的随机头像。 ?...我们可以通过强制浏览器显示图片来解决这个问题,虽然这对Firefox和IE来说不起作用。

5.6K20

【Web技术】610- Web上的图片技巧

.element { background: url('cool-1.jpg'), url('cool-2.jpg'); } 隐藏图像 我们可以在特定视口中隐藏和显示图像,而无需下载它。...在与后台CMS整合时,图片应该是动态变化的,很容易就能改变。 在它的上方有一个叠加,有助于让内容更容易阅读。 图片有三种尺寸:小、中、大。每一个都是针对特定的视口。...在悬停时,形状和文字需要改变颜色。如何做到这一点呢?对我来说,最好的解决方案是使用内嵌式SVG。...我喜欢它从一个小图标变成了一个完整的标志。请看下面的模拟图。 这方面的完美解决方案是 元素,在这里可以添加两个版本的标志。见下图。...就是这样的情况。我们可以通过强制浏览器显示图片来解决这个问题,虽然这对Firefox和IE来说不起作用。

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

    前端运用图片的技巧总结

    .element { background: url('cool-1.jpg'), url('cool-2.jpg'); } 隐藏图像 我们可以在特定视口中隐藏和显示图像,而无需下载它。...在与后台CMS整合时,图片应该是动态变化的,很容易就能改变。 在它的上方有一个叠加,有助于让内容更容易阅读。 图片有三种尺寸:小、中、大。每一个都是针对特定的视口。...在悬停时,形状和文字需要改变颜色。如何做到这一点呢?对我来说,最好的解决方案是使用内嵌式SVG。...我喜欢它从一个小图标变成了一个完整的标志。请看下面的模拟图。 这方面的完美解决方案是 元素,在这里可以添加两个版本的标志。见下图。...就是这样的情况。我们可以通过强制浏览器显示图片来解决这个问题,虽然这对Firefox和IE来说不起作用。

    2.6K20

    将 SVG 与媒体查询结合使用

    在 HTML 文档中,我们可以根据视口的条件显示、隐藏或重新排列页面的某些部分。例如,如果浏览器窗口的宽度为 480 像素,我们可能会将导航从水平导航移动到垂直可折叠列表。...通过将 CSS 与 SVG 结合使用,我们可以根据用户交互更改 SVG 的外观。或者我们可以在多个地方使用同一个 SVG 文档,并根据视口的宽度显示或隐藏它的一部分。...因此,矢量图像与分辨率无关,无论显示分辨率或显示尺寸如何,都可以保持其质量。 分辨率独立是SVG的最大优势。我们可以在不损失质量的情况下放大或缩小图像。...> 下图显示了该代码在浏览器中的呈现方式。...考虑一个徽标,例如下图中虚构的 Hexagon Web Design & Development 的徽标。 如果没有媒体查询,这个 SVG 标志会简单地拉伸或收缩以适应视口或其容器。

    6.2K00

    Vuebnb:一个用vue.js和Laravel构建的全栈应用

    今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel。它会在Packt出版社在2018年初出版。 这本书是围绕着一个案例研究项目,Vuebnb,简单克隆Airbnb。...我还用Laravel安全认证的API调用,这是让用户能够保存他们喜欢的房间列表。 特征 该项目的功能主要包括UI组件以及应用程序的总体架构设计。...可以收藏从首页或列表页点击心形图标,这是可重用的组件的一个部分。 我通过Vuex存储状态,可以保持整个页面的使用。为了在会话中持久化状态,我通过Ajax将它发送回存储在数据库中的服务器。...例如,有一列数据是从Laravel到内页的,Vue.js通过使用刀片视图来实现,可以很容易地使用模板变量向页面头部注入数据。这个数据可以在Vue应用程序中就初始化。...我在本文中没有提到的其他主题包括: Vue.js数据绑定的核心概念、指令和生命周期挂钩 建立全栈应用的最佳实践开发工作流Vue/laravel,包括WebPack。

    6K10

    使用相交观察器和SQIP进行渐进式图像加载

    使用延迟加载技术将意味着用户只加载他们在视口中看到的内容,而与低质量图像相结合则意味着双重网页性能会带来麻烦 在这篇文章中,我将通过我所经历的步骤和您如何开始使用这种技术来谈谈您自己 开始入门 在我们继续之前...img标签的data-src中 左边的图片显示了低质量的SVG版本,右边的图片是完整的质量版本。...关于这个工具的好处是这个图像的低质量版本只有800字节 - 令人惊叹,在本地服务器中可进行测试,我示例中的图片svg占900字节,具体以你自己测试的为准 使用交叉点观察者进行延迟加载 现在我们有了两个版本的图像...,然后再确定它是否在视图中。...这带来了很多可能性,例如使用JavaScript和CSS 修改并对元素进行动画操作或者创建响应式图形,比如阿里的svg图标等的 至于面试的时候,当回答图片优化时,图片选择(jpg/jpeg,gif,png

    1.8K20

    Web 隐藏技术:几中隐藏 Web 中的元素方法及优缺点

    例如,一个按钮应该在移动中可见,而在桌面视口中隐藏。 或者,在移动设备上隐藏但要在桌面上显示的导航元素。 隐藏元素时有三种不同的状态: 元素完全隐藏并从文档流中删除。...只有当视口宽度大于400px时,才会显示该图。我向元素添加了hidden`属性。 在CSS中,我使用hidden属性仅在所需的视口大小中显示元素。...然后,我打开DevTools并检查networks选项卡,它显示图像已加载。 image.png 稍后我们将对此进行讨论,以解释如何在特定断点或视口大小中不需要HTTP请求时减少HTTP请求。...除此之外,opacity值为1以外的元素将创建一个新的堆叠上下文。 image.png 在上图中,蓝皮书仅在视觉上隐藏。... Menu svg aria-hidden="true">svg> 在上面的例子中,我们有一个带有标签和图标的菜单按钮。

    5.1K30

    网站图标开发指南

    html> 在我刚开始写页面的时候就是这样做的,感觉 so easy,直到业务变得越来越复杂,我就不得不思考以下几个问题: 图标需要适配多个客户端 图标太多需要优化 图标需要动态修改颜色 对于适配多个客户端的问题...总结一下雪碧图的特点: 只需发起一次 HTTP 请求。 只能通过 CSS 背景图渲染。 如果只用到了大图中的一张小图,也必须加载整张大图,有点浪费资源。...字体图标的原理 字体图标的本质是一种字符,而字符又是字体渲染出来的,字体决定了我们在键盘上敲打的字符最终在页面上长什么样。...有了 ASCII 编码后,我们就能编写对应的字体去渲染表中的字符了,但其他没有被记录的符号也就无法显示了,如:不同国家的汉字、emoji 符号等。...总体来说,3 种图标使用起来都很简单,而 SVG 图标则是一个大趋势,我们可以视具体情况来做选择。 ---- ? 精彩文章回顾,点击直达

    1.8K30

    Power BI同一数据显示不同单位

    如何更好的显示这样的数据? 针对自定义的条形图,数据标签可以在text中使用SWICTH函数进行单位切换。...上文(Power BI数据标签这么装饰)介绍的圆形标签条形图中的text如下处理: 在表格也可以实现类似的操作: 读者可能想到,度量值Value_修正=Value/单位&单位,这样是可以,但是无法实现上图中的两个效果...我的实现方式是,先把数据进行修正: Value_修正 = SWITCH ( TRUE (), [Value] >= 100000000, ROUND ( [Value] / 100000000...,给表格增加条件格式图标: 条件格式图标 = "data:image/svg+xml;utf8,svg xmlns='http://www.w3.org/2000/svg' width='48'...>" 图标布局选择右下方: 条件格式图标度量值的关键点有三个:SWTCH按数据切换单位,FILL标签将单位填充为灰色,Y的值使得TEXT靠下方显示。

    1K30

    SVG学习笔记,持续记录。

    SVG基础 1.命名空间 svg xmlns="http://www.w3.org/2000/svg">svg> 在众多xml语言中,标识它是哪一种标记语言?html、xhtml、svg等。...1.viewBox 用于在实际的svg上截取一小块,放大到整个svg显示,属性的值有四个数字,分别是左上角的横坐标和纵坐标、视口的宽度和高度。...-- 105 表示相对于svg左上角的横坐标,55 表示相对于svg左上角的纵坐标,60 表示截取的视区的宽度,60 表示截取的视区的高度。...svg好用,但是没有font字体来的灵活;找到其他类似的几个图标库: 字节跳动图标库:https://icomoon.io/、据说挺有名:https://icomoon.io/ 2. svgtofont...通常我么使用svg的过程如下: ┌────────┐ ┌────────────┐ │iconfont│──┐

    2.9K40

    动手练一练,做一个响应式的后台管理面板

    你可能注意到,我添加了 svg 部分,并且设置了隐藏,这里我们使用 SVG Sprites(雪碧图)技术,方便我们在菜单里添加菜单图标,这里我从 Envato 网站下载了后台管理相关的图标...2、雪碧图示例代码如下,就是一堆SVG图标的集合,并确保 id 属性的唯一性,方便后面的代码调用: svg style="display:none;"> 的图标。...1、Header 相关样式 Headr 部分在大屏设备的情况下,宽度为220px,其高度等于整个视口的高度,如果其内容超过视口的高度,将会出现一个垂直的滚动条。...,我们需要添加一个鼠标经过事件,在链接里添加个title属性,让用户明白菜单的作用,用于显示菜单的文本信息,示例代码如下: const body = document.body; const menuLinks

    1.3K10

    在 HTML 中包含资源的新思路

    然后我想,假设浏览器允许我在父文档中检索 iframe 的内容,也许一个旧的 iframe 可能是一个很不错的模式。事实证明,它肯定会的!...).children[0]);this.remove()"> 尽管此标记以 iframe 开头,但如果你使用开发人员工具检查上面的图形,将会看到 SVG 的图标标记,就内嵌在 HTML...(使用服务器端包含的内容,在客户端缓存是可能的,但难以做到)。 无论 JavaScript 是否运行,它都会显示内容,因为这就是 iframe 的设计目标。...IE 会显示 iframe 中的备选内容,但我认为可以通过调整 onload 处理中的 JS 来获得对 IE 的支持,因为它目前用的是 IE 不喜欢的语法。稍微调整一下,我认为 IE 支持是可能的。...例如对页面上所有图标使用可能会过重,但是对于需要进行动画和样式化的特定图标来说,它可能会很好用。不过现在我只能做更多的测试。

    3.2K30

    动手练一练,做一个现代化、响应式的后台管理首页

    你可能注意到,我添加了 svg 部分,并且设置了隐藏,这里我们使用 SVG Sprites(雪碧图)技术,方便我们在菜单里添加菜单图标,这里我从 Envato 网站下载了后台管理相关的图标...,如下图所示,喜欢的可以在文章下方留言获取 2、雪碧图示例代码如下,就是一堆SVG图标的集合,并确保 id 属性的唯一性,方便后面的代码调用: svg style="display:none;">...雪碧图上对应的图标。...1、Header 相关样式 Headr 部分在大屏设备的情况下,宽度为220px,其高度等于整个视口的高度,如果其内容超过视口的高度,将会出现一个垂直的滚动条。...,我们需要添加一个鼠标经过事件,在链接里添加个title属性,让用户明白菜单的作用,用于显示菜单的文本信息,示例代码如下: const body = document.body; const menuLinks

    1.1K00

    小图标,大学问

    那么,要如何用标准的方式来显示这些合字呢?实际上,现代的字体库早就已经支持合字了,只是在现实中用得不多,一般人没怎么注意罢了。不过,在图标领域,它重新找回了用武之地。...我所知道的最早使用合字的图标体系是 Google 的 Material Design,比如用 home就可以显示出一座房子,它是怎么工作的呢?...在回答这个问题之前,我们先要知道一个概念,那就是: 访问互联网并不是我们这些健全人的专利! 世界上有很多残疾人,特别是视障人士,比如盲人、弱视等,甚至等我们老了都有可能加入他们的行列。...因此,虽然“合字”本身没有多少新的技术,但是我仍然把它归于“当代”,它值得作为一种趋势受到重视。 图标在开发中的其它方面 在实际的开发工作中,还有一些问题需要考虑。 ?...很多工具导出的 svg 文件很啰嗦,里面有很多对于显示没有意义的东西。一些 svg 图标即使减小到原来体积的一半儿都不会影响显示,因此,针对 svg 本身做一些优化也是有价值的。

    1.3K10

    web图像的常见应用策略与技巧

    srcset,我们给浏览器准备了四个质量的图像,分别为360 768 1200 1920 sizes,我们来告诉浏览器,在不同的环境下图像的宽度 当视口不大于360的时候,图像显示宽度为100vw,当视口不大于...关于滤镜换色的详细说明在我上一篇文章里有详细介绍以及demo 可以在isux公众号查阅《带你轻松打开SVG滤镜的大门》 三是我们最终选择的底层无感知换色的方案,把修改颜色的脚本集成到了我们的工作流里,我们在写...我的导师 wenju 之前发过这个计算公式相关的文章: 百分比值()是背景图相对于背景定位区(background positioning area)的百分比,可以控制在容器元素内仅显示Sprites图的部分内容...比如下图中,Sprites图是由四张图像拼成的,要想在容器内仅显示第一张图像,background-size的值应该多少呢? ?...sX, sY 如果要把某张图片完全显示在容器元素内,我们可以推导出: elW = imgW, elH = imgH cX = sX, cY = sY 根据上面的信息,我就可以计算出具体的(x, y)值了

    1.6K10

    web图像的常见应用策略与技巧

    srcset,我们给浏览器准备了四个质量的图像,分别为360 768 1200 1920 sizes,我们来告诉浏览器,在不同的环境下图像的宽度 当视口不大于360的时候,图像显示宽度为100vw...,当视口不大于768的时候,图像显示宽度为90vw,以此类推。...关于滤镜换色的详细说明在我上一篇文章里有详细介绍以及demo 查看文章 三是我们最终选择的底层无感知换色的方案,把修改颜色的脚本集成到了我们的工作流里,我们在写css的时候,遇到svg需要换色的地方,只需要...我的导师 wenju 之前发过这个计算公式相关的文章: 百分比值()是背景图相对于背景定位区(background positioning area)的百分比,可以控制在容器元素内仅显示Sprites图的部分内容...比如下图中,Sprites图是由四张图像拼成的,要想在容器内仅显示第一张图像,background-size的值应该多少呢? ?

    1.9K90

    前端架构师之路03_移动端规范兼容处理

    10px vm/vh:表示视区宽度/高度,视区总宽度为 100vw,总高度为 100vh 移动端开发中我们使用 rem 作为基本计量单位,同时将根节点默认字号大小设为 font-size:62.5%,因移动端浏览器默认字号大小为...移动端开发细节和优化 在移动端使用新的 CSS3 样式代替原来在 PC 上的开发习惯 在宽度为100%的布局中,实现横向并排元素宽度的自动伸缩以及水平垂直居中平均分布、首尾分布排列等考虑使用 flex...icon 图标,利用 字体图标 导入,这样的话,可以像修改字体一样随意地修改图标的颜色、大小、背景色、特殊效果(如投影)等,而不再需要每一种颜色就需要切一份图片 利用 transform:rotate(...进行压缩通过二倍图方式显示的图片,相比之下则清晰了很多。这就是多倍图的效果。 二倍图实质就是使用原先位置大小二倍的图片进行填充,在进行放大后仍以正常清晰度显示。...属性 说明 width 用来控制 SVG 视图的宽度 height 用来控制 SVG 视图的高度 viewBox 定义用户视野的位置及大小 在 svg> 标签的内部,可以使用SVG提供的一些预定义的标签来绘制图形

    8910

    web图像的常见应用策略与技巧

    srcset,我们给浏览器准备了四个质量的图像,分别为360 768 1200 1920 sizes,我们来告诉浏览器,在不同的环境下图像的宽度 当视口不大于360时,图像显示宽度为100vw,当视口不大于...关于滤镜换色的详细说明在我上一篇文章里有详细介绍以及demo 查看文章 三是我们最终选择的底层无感知换色的方案,把修改颜色的脚本集成到了我们的工作流里,我们在写css的时候,遇到svg需要换色的地方,...我的导师 wenju 之前发过这个计算公式相关的文章: 百分比值()是背景图相对于背景定位区(background positioning area)的百分比,可以控制在容器元素内仅显示Sprites图的部分内容...比如下图中,Sprites图是由四张图像拼成的,要想在容器内仅显示第一张图像,background-size的值应该多少呢?...sX, sY 如果要把某张图片完全显示在容器元素内,我们可以推导出: elW = imgW, elH = imgH cX = sX, cY = sY 根据上面的信息,我就可以计算出具体的(x, y)值了

    1.6K30
    领券