如何测试响应式网页设计跨浏览器兼容性

HTML是一种固有的流动媒介。文本和容器水平和垂直展开以使用可用空间。这种流动性使得复杂的设计更加困难,因此在世纪之交,许多网站采用了基于流行屏幕尺寸的固定宽度。

随着屏幕尺寸从800×600不断增大到1024×768,这个过程仍然可行。然而,智能手机的兴起和2007年iPhone的上市逆转了这一趋势。今天,<一个href="https://gs.statcounter.com/platform-market-share/desktop-mobile/worldwide/">超过一半的用户通过较小的移动设备访问网页

注意:从技术上讲,智能手机的分辨率通常高于许多显示器,但单个像素是看不见的。iPhone 11 Max将2688 × 1242的硬件分辨率转换为更实用的896 × 414的逻辑分辨率。每个逻辑像素映射到3×3实际像素的网格,这使得字体更流畅,图像细节增加。

最初的解决方案是两个站点:一个用于桌面,一个用于移动,通常使用用户代理嗅探来根据需要重定向。随着设备的种类呈指数增长,这很快变得不切实际。

最后,这个术语响应式网页设计(RWD)是由<一个href="https://alistapart.com/article/responsive-web-design/">伊桑·马科特,2010年.该技术允许同一站点在任何设备上工作,而不管屏幕大小或视口尺寸。

RWD是如何工作的?

没有单一的RWD方法或技术。

首先,你必须确定一个网站的设计将如何反应不同大小的显示。这是一个挑战,许多第一批RWD网站采用了现有的桌面布局,并随着屏幕尺寸的减小而删除了部分。

更好的技术是手机第一.它从线性移动视图开始,适用于所有设备,然后随着更多空间和支持的浏览器功能的出现,重新排列或改编内容。最近,许多网站采用了更简单的布局,移动端和桌面端的体验基本相似。

RWD的一个典型例子是汉堡菜单。屏幕较小的用户可以点击图标查看导航链接,而屏幕较大的用户可能会在水平列表中看到所有选项。

下面几节提供了一些技术实现选项。

超文本标记语言视窗Meta标签

不管任何RWD技术,以下标记必须在你的HTML中设置< >头

<的名字视窗内容宽度=设备宽度,初始= 1>

宽度=设备宽度设置确保移动浏览器将逻辑CSS像素缩放到屏幕宽度。如果没有这一点,浏览器将假定它正在渲染桌面网站,并相应地缩放它,以便它可以平移和缩放。

媒体查询

媒体查询是第一批RWD站点的主要基础。它们允许CSS瞄准特定的视口维度范围。例如:

应用于所有视图的/*样式p字体大小1快速眼动/*样式应用于宽度在900px和1200px */之间的视口@mediamin-width900px而且max-width1200pxp字体大小1.5快速眼动

媒体查询仍在使用,尽管现在有了不太明确的选项。

<图片>元素

HTML<图片>元素使用媒体查询语法来控制从所选的图像中显示哪个图像源> <选项。这通常用于美术指导,以便为设备视口显示合适的图像。例如:

<图片><!——视口宽度大于高度时显示的图像——><srcsetlandscape.jpg媒体(min-aspect-ratio: 1/1)alt景观/><!——默认镜像——><imgsrcportrait.jpgalt肖像/>图片>

CSS视口单元

大众而且vhCSS单元分别代表视口宽度和高度的1%。vmin1%是最小维数吗vmax是最大维数的1%

这使得RWD具有灵活性,特别是与calc.例如:

/*字体大小随视口宽度*/而增加p字体大小1快速眼动+0.5大众

CSS列

CSS多列布局提供一种随着容器尺寸的增加而创建多个文本列的方法。例如:

/*列的最小宽度必须为12rem,每个*/之间的间隔必须为2rem.container12快速眼动汽车纵队间隔2快速眼动

CSS Flexbox和网格

CSS Flexbox而且<一个href="https://developer.mozilla.org/Web/CSS/CSS_Grid_Layout">CSS网格提供现代技术,根据子元素的内容和可用空间来布局子元素。主要区别:

都可以用来创建内在的布局(<一个href="https://aneventapart.com/news/post/designing-intrinsic-layouts-aea-video">这个术语是珍·西蒙斯发明的).本质上,元素的大小是根据视口的尺寸,而不需要媒体查询。例如:

/*子元素至少为20rem,并填充一行。小于20rem的显示器的元素大小为1fr(可用宽度的100%)。元素周围总是有1雷姆的间隙。* /.grid-container显示网格grid-template-columns重复auto-fit极大极小20.快速眼动1frgrid-gap1快速眼动

JavaScript RWD选项

JavaScript也可以用来确定视口的尺寸并做出相应的反应。例如:

//获取viewport的宽度和高度常量大众窗口innerWidthvh窗口innerHeight

类似地,单个元素的尺寸可以用<一个href="https://developer.mozilla.org/Web/API/HTMLElement/offsetWidth">offsetWidth而且<一个href="https://developer.mozilla.org/Web/API/HTMLElement/offsetHeight">offsetHeight,虽然<一个href="https://developer.mozilla.orgWeb/API/Element/getBoundingClientRect">getBoundingClientRect()方法可以返回更多信息,包括一个像素的分数:

常量元素文档getElementById“myelement”矩形元素getBoundingClientRect电子战矩形宽度矩形高度

窗口和元素的尺寸可以随着设备的旋转或浏览器窗口的调整而改变。的<一个href="https://developer.mozilla.org/Web/API/Window/matchMedia">matchMediaAPI可以解析CSS媒体查询和<一个href="https://developer.mozilla.org/Web/API/MediaQueryList/addListener">触发变更事件

//媒体查询常量mql窗口matchMedia“(min-width: 600 px)”//初始检查mqtmql//当媒体查询发生变化时调用mqTestmqladdListenermqt//媒体查询测试功能函数mqte如果e匹配控制台日志'视口宽度至少为600px '其他的控制台日志'视口宽度小于600px '

浏览器支持

RWD技术首先提供了良好的浏览器支持。最新的选项- CSS Grid -是<一个href="https://caniuse.com/">目前几乎95%的浏览器都支持.然而,仍然有必要在一系列设备、分辨率和浏览器上测试你的网站……

浏览器测试

调整浏览器窗口的大小是一个合理的测试策略,可以持续几个小时,但很快就会变得不准确和麻烦。大多数浏览器都提供响应式设计模式它允许你选择一个设备和用户代理,旋转它,选择分辨率,改变像素密度,节流带宽,模拟触摸和截屏。

在Firefox中,选择响应式设计模式Web开发人员菜单或按Ctrl|Cmd+转变+

在基于chromium的浏览器中,打开开发人员工具更多的工具菜单或按Ctrl|Cmd+转变+.然后按切换设备工具栏图标:

切换回浏览器选项卡查看调整后的站点:

在Safari中,启用在菜单栏显示“开发”菜单选项。先进的浏览器选项卡首选项.加载一个页面并选择进入响应式设计模式开发菜单。

但是,请注意,这些工具只是模仿设备的屏幕尺寸和用户代理。它们无法准确地模拟以下情况:

  • 渲染能力

    浏览器将使用它自己的渲染引擎——而不是模拟设备的渲染引擎。在Firefox中工作的CSS功能将在其模拟的iPhone视图上“工作”,而不管实际支持如何。也就是说,Chrome桌面将显示与Android Chrome的合理近似,而macOS Safari将类似于iPhone,因为它们基于相同的渲染引擎。

  • 旧设备

    在最新版本的Safari上测试iPhone浏览器视图不能准确地代表带有旧操作系统和软件的旧设备。

  • 高密度显示

    您只能使用PC显示器的物理像素,因此网站在实际设备上可能看起来更好,也可能更差。

  • 触摸

    鼠标或触控板比屏幕较小的触屏设备具有更好的控制能力。在悬停时可能无法查看应用的效果。

  • 处理速度

    你的个人电脑可能比移动设备有更快的网络和处理速度。

移动操作系统模拟器

在你的设备上运行Android或iOS虚拟机可以让你安装和运行真正的移动浏览器,并使用它们实际的渲染引擎。

Android模拟器包括:

Chrome显然是Android浏览器的首选,但你也可以安装<一个href="https://play.google.com/store/apps/details?id=com.opera.mini.native">Opera Mini这在功率较低的功能手机上尤为突出。

iOS平台的选择更为有限:

这些模拟器仍然有缺点:

  • 该软件需要一些专业技术知识,并使用相当多的系统资源。
  • 许多iOS选项包括模拟器.他们采用另一个渲染引擎,并不总是准确的。

在线测试服务

这个部分是与<一个href="https://www.lambdatest.com/" rel="sponsored">LambdaTest.感谢您对合作伙伴的支持,是他们让SitePoint成为可能。必威西盟体育网页登录

一些在线服务允许您通过Web在移动浏览器上测试响应性页面。从本质上讲,你租用了一台真实设备的时间,并可以在浏览器中查看它的屏幕。不需要安装或维护软件。

除了实时测试,一些服务还包括自动测试api,允许您运行脚本并检查样式回归或损坏的用户界面。

<一个href="https://www.lambdatest.com/" rel="sponsored">LambdaTest提供更多<一个href="https://www.lambdatest.com/list-of-browsers" rel="sponsored">2000种设备、操作系统和浏览器的组合.<一个href="https://www.lambdatest.com/feature" rel="sponsored">特性包括:

注册一个免费的LambdaTest账号…

LambdaTest实时视图"宽度="518

其他提供实时和自动化移动测试的服务包括:

真实设备测试

最后,在真实设备上进行测试是不可替代的。这是评估实际处理速度、触摸控制和网站响应性设计的最佳方法。

理想情况下,你应该测试尽可能多的设备,但你自己最近的智能手机可能并不代表平均硬件。尽量购买使用了一两年的中档手机,比如二手Moto G7或iPhone 8。

同一网络上的设备可以通过在浏览器中输入IP地址访问您PC的服务器。这可以通过ifconfig在macOS和Linux上ipconfig在Windows上。

你也可以用USB线把智能手机和电脑连接起来。这允许您远程控制设备,并轻松访问其开发人员工具面板进行调试。不同平台的技术不同,但要在桌面版浏览器上调试Android Chrome:

  1. 在Android设备上,选择开发人员选项设置并使USB调试
  2. 使用适当的USB电缆将设备连接到计算机。第一次尝试时,系统可能会提示您确认一台或两台设备上的操作。
  3. 在你的电脑上启动Chrome浏览器并打开在一个新的标签。确保发现USB设备启用。
  4. 可选地,设置端口转发—例如,port8888可以转发到远端设备上localhost: 8888
  5. 您的设备应该出现在列表中。您现在可以检查一个新的或现有的选项卡,打开设备的开发工具:

远程设备DevTools"宽度="1131

要调试Safari for iPhone,请执行以下操作:

  1. 将你的手机连接到你的苹果电脑上。
  2. 在iPhone的Safari中打开要调试的网页。
  3. 在你的电脑上启动Safari。
  4. 在电脑的Safari浏览器中,转到开发>(你的iPhone)>[要检查的网站].这将在您的计算机上打开Safari的开发工具,允许您在iPhone上调试站点。

一个站点,多个视图

响应式网页设计技术允许您创建一个单一的网站,可以被任何人在任何设备上查看,而不受技术限制和边界。使其具有良好的用户体验是另一回事,但是测试工具的范围和功能在不断改进。

跨浏览器Web字体-第3部分"></一个><div class= 跨浏览器Web字体-第3部分<一个class="text-sm text-gray-400" href="//www.shaoxingby.com/author/cmills/">克里斯·米尔斯
从头开始构建响应式、移动友好型网站:响应式规则"></一个><div class= 从头开始构建响应式、移动友好型网站:响应式规则<一个class="text-sm text-gray-400" href="//www.shaoxingby.com/author/atranfici/">Annarita Tranfici
理解响应式网页设计:响应式图像"></一个><div class= 理解响应式网页设计:响应式图像<一个class="text-sm text-gray-400" href="//www.shaoxingby.com/author/atranfici/">Annarita Tranfici
是时候建立响应式网络了!:11Responsive Design Resources"></一个><div class= 是时候建立响应式网络了!:11Responsive Design Resources<一个class="text-sm text-gray-400" href="//www.shaoxingby.com/author/tarahornor2/">塔拉荣誉
Baidu