为了确保我们能够在大部分用户的访问期间达成建议目标值,对于上述每项指标,「一个良好的测量阈值为页面加载的第 75 个百分位数」,且该阈值同时适用于移动和桌面设备。...在下面的动图中,我们的视口保持不变,也没发生页面滚动,但页面自行发生了巨大的位移。 作为访问该网站的用户,我们可能「无法确定页面何时完成加载」。...一旦计算出移动距离,就可以通过将最大移动距离除以视口的高度来计算距离分数: ❝最大移动距离 / 视口高度 = 距离分数 ❞ ---- 计算单个帧的布局偏移 接下来是计算布局偏移分数。...当浏览器根据设备的屏幕大小和分辨率选择加载图像时,它会根据srcset属性和sizes属性的规则选择最合适的图像源,并自动调整图像的大小。...这样,使用srcset属性可以为不同设备和视口尺寸提供最佳的图像质量和性能,实现响应式的图像展示。
设备的逻辑像素和物理像素之间的比率是该显示的设备像素比(DPR)。 DPR是通过将视口的CSS像素除以设备的实际屏幕分辨率来计算的。...地址:https://codepen.io/web-dot-dev/pen/QWBGVyo 由于DPR为1的显示屏无法利用图像的增加密度,因此图像将被缩小以匹配显示屏。...具有DPR为1的移动设备非常罕见,尽管在“桌面”浏览环境中仍然很常见。根据Matt Hobbs共享的数据,约18%的GOV.UK浏览会话从2022年11月开始报告DPR为1。...承担浏览器更适合为我们处理的责任和额外工作是没有意义的。 用w来描述宽度 srcset 可以接受第二种类型的描述符,用于图像源候选项。这是一种更加强大的描述符,而且对于我们的目的来说,更容易理解。...示例:https://codepen.io/web-dot-dev/pen/PoBWLYP 作为开发人员,我们的工作已经完成了。
这个延迟使我们更容易在网络瀑布图中看到预加载扫描器的工作情况。 图4:在移动设备上通过模拟3G连接在Chrome上运行的网页的 WebPageTest 网络瀑布图。...图5:在移动设备上通过模拟3G连接在Chrome上运行的网页的WebPageTest网络瀑布图。该页面包含一个样式表和一个注入的异步脚本。...图6:在移动设备上通过模拟3G连接在Chrome上运行的网页的WebPageTest网络瀑布图。该页面包含一个样式表和一个异步脚本元素。预加载扫描器在渲染阻塞阶段发现了该脚本,并与CSS同时加载。...这种模式并没有什么问题,直到它被应用于启动时在视口中的图像。因为预加载扫描器并没有像读取src(或srcset)属性那样读取data-src属性,所以图像引用没有被提前发现。...图9:在移动设备上通过模拟3G连接在Chrome上运行的网页的WebPageTest网络瀑布图。
为了在不同尺寸和密度比的设备上表现出一致的视觉效果,使用逻辑像素描述一个相同尺寸的物理单位。在具有高密度比的屏幕下,一个逻辑像素对应多个物理像素。...由于移动设备尺寸较小,如果基于浏览器窗口大小的视口进行布局,会导致一些没有适配过移动设备样式的站点布局错乱,用户体验差。...为了让移动端也能正常显示未适配移动设备的页面,从而引入布局视口和视觉视口的概念。 布局视口(layout viewport) 布局视口的宽度默认为 980px,通常比物理屏幕宽。...CSS 布局会基于布局视口进行计算。移动设备的浏览器基于虚拟的布局视口去渲染网页,并将对应的渲染结果缩小以便适应设备实际宽度,从而可以完整的展示站点内容且不破坏布局结构。...source 元素可以按需配置 srcset、media、sizes 等属性,以便用户代理为不同媒体查询范围或像素密度比的设备配置对应的图片资源。
####3.支持移动设备 [image.png] 在今天的世界里,如果你认真对待网站运营,忽视移动用户是一种罪过。 数据表明,近60%的全球流量来自移动设备。...使用响应式图像标签,使用img标签的srcset和sizes属性,你可以为浏览器提供单个图像的变体列表以及不同屏幕上相对图像大小的定义。...移动设备的另一个影响因素是设备像素比率或DPR值。现代移动电话具有高密度屏幕,在相同的平方英寸中包含更多像素。 [image.png] 在常规设备上看起来很好的图像在高密度屏幕上看起来会略微模糊。...一个名为Client Hints的现代规范,使得响应式图像的入门变得简单,并且与srcset和sizes属性方法相比,使代码看起来更清晰。...这个工具集成在Chrome的最新版本中,不仅可以对网站上的图片进行全面分析,还可以对其他可能影响性能的问题进行分析。
在本文中,我们将探讨许多可用的工具(围绕HTML和CSS),从响应图像到相对较新的CSS函数,无论我们是否使用媒体查询,它们都可以正常工作。...如果我们按比例制作不同的图片,这种方法就能奏效。这允许浏览器根据屏幕的像素密度和视口大小来决定下载哪个版本。...浏览器查找媒体查询与当前视口宽度匹配的第一个元素,然后它将显示适当的图像(在srcset属性中指定)。...基本上,这意味着我们可以为支持高分辨率和低分辨率的小版本的屏幕显示高质量的图片。 值得注意的是,尽管移动设备的屏幕较小,但通常分辨率较高,这也说明了仅依靠分辨率可能不是一种好的做法。...是的,浏览器在达到4rem后将停止增加大小。 使用响应单位 你是否曾经建立过一个带有大标题或副标题的页面,并且在 PC 屏幕上的显示效果良好,但在移动设备上却发现它太大了?
下面是移动优先样式的常见用例示例,其中对于较小的设备,列的宽度为100%,但在较大的视口中,列的宽度为50%。...仅使用overflow-y还是不够的,还得为节点设置 white-space: nowrap 响应式图像 通过使用现代图像标签属性,我们可以适应各种设备和分辨率。以下是响应式图像的示例。...srcset 用于根据设备的分辨率告知浏览器要使用哪个图像。 我们利用属性/值对建立本地延迟加载loading="lazy"。...模拟和监视响应式网站的工具 Chrome DevTools移动仿真 Chrome的DevTools提供了一系列平板电脑和移动设备的移动仿真。...您可以为桌面和移动设备设置监控,以获得有关您的网站响应情况的持续反馈。例如,Lighthouse报出当前设备未能正确加载的图像。 ?
概述 响应式设计指的是网站可以在不论是宽屏显示器还是移动设备都能表现得同样出色。这是一种网页设计和开发方法,它消除了网站的移动版本与桌面版本之间的区别。 响应式设计是通过媒体查询完成的。...流式布局 流式布局是一种拉伸和缩小以填充屏幕宽度的布局,如之前我们介绍过的 Flexbox 布局一样。 弹性媒体 不同的设备有不同的图像要求。HTML 提供了为用户设备选择最佳图像的方法。...不支持 srcset 属性的较旧浏览器会回退到 src 属性。...否则,100vw 默认值告诉浏览器图像的宽度将是”视口宽度”的 100%。...所谓移动优先,即优先考虑移动设备的样式,在非移动设备中进行响应式适配,这样做的好处是既可以在移动端有更好的表现,又能够在其他设备看到适配后的页面。
同年,腾讯发布了微信开始进军移动互联网,阿里也在 2013 年宣布 ALL IN 无线,随着智能设备的普及和移动互联网时代的到来,响应式布局这个词开始频繁地出现在 Web 设计和开发领域,作为一名优秀的前端攻城狮..., initial-scale=1"> 复制代码 Peter-Paul Koch 在文章中将移动浏览器的视口分为三种。...复制代码 idea viewport 我们前面一直在讨论 Web 页面在移动浏览器上的适配问题,但是如果网页本来就是为移动端设计的,这个时候布局视口(layout viewport)反而不太适用了,...曾在 2013 年的一篇 博客 中提到: 我的大部分性能优化工作都集中在 JavaScript 和 CSS 上,从早期的 Move Scripts to the Bottom 和 Put Stylesheets...图片质量支持响应式 这是一种支持优雅降级的方案,现代浏览器已经支持了 srcset 和 sizes 属性,对于兼容性不好的浏览器,会继续使用默认 src 属性中的图片,所以我们可以放心大胆的使用。
设备独立像素 以 iPhone6/7/8为例,这里我们打开 Chrome 开发者工具: 这里的 375 * 667 表示的是什么呢,表示的是设备独立像素(DIP),也可以理解为 CSS 像素,也称为逻辑像素...srcset 属性还有一个 w 宽度描述符,配合 sizes 属性一起使用,可以覆盖更多的面。 sizes 属性怎么理解呢?它定义图像元素在不同的视口宽度时,可能的大小值。...端大屏幕和移动端高清屏,一箭多雕。...嗯,总结一下,在实现响应式图像时,我们同时使用 srcset 和 sizes 属性。...它们的作用是: srcset:定义多个不同宽度的图像源,让浏览器在 HTML 解析期间选择最合适的图像源 sizes:定义图像元素在不同的视口宽度时,可能的大小值 有了这些属性后,浏览器就会根据 srcset
你甚至可以在 Bit.dev 的组件中心上共享它,这样你的团队和你自己将来都能重用它。这样,你就会拥有一个优化极佳的图像组件,可以毫不犹豫地用在所有 Web 项目中。...在这种情况下,运行你应用程序的每台设备都会使用相同的图像,并且肯定会导致屏幕分辨率较低的设备(如移动设备)出现性能问题。 这可能会导致更长的图像加载时间以及从上到下一块一块地图像加载。...通过使用 srcset 和 size 属性,可以使用 picture 图片标签轻松解决这一问题。...使用媒体属性切换图像 图像切换背后的主要思想是根据设备的屏幕尺寸显示不同的图像。在大多数情况下,切换到移动设备时,在大屏幕上看起来很棒的图像可能会被裁剪或显得很小。....> 然后,我们可以使用 media 属性定义使用这些源的不同媒体条件。我们还可以按照上一节中讨论的类似方式使用 srcset 和 size 属性。
除了前面提到的交互菜单,移动版设计主要关注的是内容。在大屏上,可以把页面的大块区域拿来做头部、主图、和菜单。然而在移动设备上,用户通常有更明确的目标。 移动版设计就是内容的设计。...千万不要让用户放大页面,才能点中一个小小的按钮或者链接。 # 给视口添加 meta 标签 视口的meta标签。这个 HTML 标签告诉移动设备,你已经特意将网页适配了小屏设备。...此外 content 属性还有第三个选项 user-scalable=no ,阻止用户在移动设备上用两个手指缩放。通常这个设置在实践中并不友好,不推荐使用。...# 断点的选择 不要总想着设备。市面上有成百上千中设备和屏幕分辨率,无法逐一测试。相反,应该选择适合设计的断点,这样不管在什么设备上,都能有很好的表现。...对于这种行内图片,有另一个重要的解决方法:srcset 属性(“source set”的缩写)。 HTML 的一个较新的特性。它可以为一个 标签指定不同的图片URL,并指定相应的分辨率。
前端的一大工作内容就是去兼容页面在不同内核的浏览器,不同的设备,不同的分辨率下的行为,使页面的能正常工作在各种各样的宿主环境当中。...; 屏幕分辨率正飞速发展,同一张图片在不同设备上看起来,大小可能天差地别; 鼠标、触屏、笔、摄像头手势……不可预期的操控方式正在不断出现。...响应式界面的四个层次 同一页面在不同大小和比例上看起来都应该是舒适的; 同一页面在不同分辨率上看起来都应该是合理; 同一页面在不同操作方式(如鼠标和触屏)下,体验应该是统一的; 同一页面在不同类型的设备...设备独立像素 以 iPhone6/7/8为例,这里我们打开 Chrome 开发者工具: 这里的 375 * 667 表示的是什么呢,表示的是设备独立像素(DIP),也可以理解为 CSS 像素,也称为逻辑像素...除此之外,srcset属性还有一个 w 宽度描述符,配合 sizes 属性一起使用,可以覆盖更多的面。
前端常见的压缩和缩放的处理方案包括: 静态资源通过工具(比如 imagemin)按需进行有损或无损压缩。...后两种方案的实现原理是通过在 img 标签上添加 data-src 或其他自定义属性存放图片链接,而 src 属性不被设置或设置为占位图链接。...通过 Intersection Observer 或 scroll 等 API 检测离屏图片是否滚动到预期位置,如果是则将 data-src 的值赋给 src 属性,从而达到懒加载的目的。...img loading 从 Chrome 76+ 版本起,开发者可以使用 loading 属性来推迟加载可通过滚动进入视口内的离屏图像。...通过给 loading 属性设置 lazy 值,可以推迟加载资源,直到它与视口达到一定距离。caniuse.com 可查阅跨浏览器兼容性支持的详细信息。
矢量格式适用于简单形状图形,并且变换颜色方便,仅通过 CSS 中的 fill 属性便可以改变颜色。并且在多大的缩放下都能保证清晰,矢量格式不能满足复杂的图像,例如照片,高清图。...这时候我们就需要位图,位图的格式有很多: GIF PNG JPEG JPEG-XR WebP Bpg 其中 Webp 是比较流行的图像格式方案,目前移动端 Android 4.0 以上、PC 端 chrome...合并雪碧图(sprite):移动端多图情况下,可以将多图合并到一个图中,通过 CSS 定位背景图的形式来引用图片,可以有效减少 HTTP 请求。...然而在移动端,往往需要不固定的图像,不同视口,不同的分辨率,需要展示不同的图像大小,图虽视口的改变而改变。...最后的 src 是作为默认图像 url 引入,是一个回退方案,当然浏览器不认 srcset 和 sizes 属性时,直接读取 src 渲染。
维基百科①的解释为: 在计算机图形学理论中,当将一些对象渲染到图像时,存在两个类似区域的相关概念。(视口和窗口) 视口是一个以特定于渲染设备的坐标表示的区域(通常为矩形)。...如图,PC Chrome 中试验,确实如之前解释,放大到 200%后,视口大小缩小了一倍。...3.2 放大的viewport 为了优化“最初为 PC 设计的网页”在移动设备的浏览体验,移动浏览器厂商们想了一个方案,那就是增大页面载入时初始视口的宽度,比如 Android 和 iOS 都比较常见的...Android 和 iOS 在不同版本不同厂商的 Web 容器中,此属性的表现可能存在较大程度的不一致,请谨慎使用。...在滚动到视图中之前,视口外部的内容在屏幕上不可见。 ●当前可见的视口部分称为可视视口。这可以小于布局视口,例如当用户进行缩放缩放时。该布局视口保持不变,但视觉视口变小。
设备独立像素 以 iPhone6/7/8为例,这里我们打开 Chrome 开发者工具: 这里的 375 * 667 表示的是什么呢,表示的是设备独立像素(DIP),也可以理解为 CSS 像素,也称为逻辑像素...srcset 属性还有一个 w 宽度描述符,配合 sizes 属性一起使用,可以覆盖更多的面。 sizes 属性怎么理解呢?它定义图像元素在不同的视口宽度时,可能的大小值。...嗯,总结一下,在实现响应式图像时,我们同时使用 srcset 和 sizes 属性。...它们的作用是: srcset:定义多个不同宽度的图像源,让浏览器在 HTML 解析期间选择最合适的图像源 sizes:定义图像元素在不同的视口宽度时,可能的大小值 有了这些属性后,浏览器就会根据 srcset...图片中的 title 属性是在鼠标在移动到元素上的文本提示。
本文介绍的 Chrome 开发者工具基于 Chrome 65版本,如果你的 Chrome 开发者工具没有下文提到的那些内容,请检查下 Chrome 的版本 简介 Chrome 开发者工具是一套内置于 Google...Chrome 中的Web开发和调试工具,可用来对网站进行迭代、调试和分析 打开 Chrome 开发者工具的方式有: 在Chrome菜单中选择 更多工具 > 开发者工具 在页面元素上右键点击,选择 “检查...Chrome DevTools 的 Device Mode 打造移动设备优先的完全自适应式网站 该模式不可替代真实设备测试 切换 Device Mode 按钮可以打开或关闭 Device Mode ?...将视口锁定为特定设备确切的视口大小,并模拟特定设备特性 媒体查询 媒体查询是自适应网页设计的基本部分。要查看媒体查询检查器,请在三圆点菜单中点击 Show Media queries。...源代码面板(Sources) 在源代码面板中设置断点来调试 JavaScript ,或者通过Workspaces(工作区)连接本地文件来使用开发者工具的实时编辑器 格式化混淆代码 在某些情况下,我们需要对混淆的代码做一定的调试
然后,元素也将被丢弃,因为浏览器要么根本不识别它们,然而,内部的元素将被任何浏览器识别,而其src属性指定的源将如预期地渲染。...srcset和sizes旨在无缝地工作,根据用户浏览器的指示无缝地交换源。然而,有时我们希望在断点处更改源以更好地突出内容,就像调整页面布局一样。...为了解决这个问题,HTML规范的一个相对较新但得到很好支持的补充允许在元素上使用高度和宽度属性。...正如在“图像格式和压缩”中学到的那样,浏览器无法解析的编码甚至都不会被识别为图像数据。...在下一个模块中,我们将学习如何将我们所学的有关图像格式、压缩和响应式图片的所有内容集成到现代开发工作流程中。
领取专属 10元无门槛券
手把手带您无忧上云