我一直在为这个问题苦苦思索,Google 搜索并没有提供什么有用的帮助或文档来解决这个问题,但它严重影响了我的移动友好设计。
无论我走到哪里,每个人都在大力推崇使用基于 rem
的布局作为新的黄金标准,表面上这种方法的优点似乎是理想的(全面支持参考像素缩放和字体大小缩放以支持许多 DPI 和许多屏幕尺寸/设置的完整可访问性支持)。
然而,我遇到了一个相当大的问题,我发现 Chrome(可能所有 WebKit 浏览器,但我目前没有 Mac 进行测试)似乎不与其他浏览器缩放相同。
初始设置如下:
html { font-size: 62.5%; }
body { font-size: 1.6rem; }
我们应该能够使用1/10的像素大小来设置所有的测量单位,即使用rem:
.my-element { height: 15rem; } /* 150px */
我创建了一个简单的示例来说明我的问题,链接在这里:https://jsfiddle.net/gLkpz88q/2/embedded/result/
当您使用Chrome并将其缩放时,请注意布局停止缩放,但内容继续缩放。
与Firefox、IE11和Edge相比,您根本看不到这种行为,它们都可以均匀且持续地缩放。
这是(左上角:Chrome,右上角:IE11,左下角:Edge,右下角:FireFox)并排显示的图像:
正如您所看到的,如果rem
单位的缩放方式与其他所有内容不同,则会对布局产生一些可怕的影响。
我不确定如何处理这种情况,因为似乎WebKit / Chrome已经完全不同地处理缩放,这引发了所有缩放方案的问题。
有许多文章提倡只使用像素作为CSS参考像素非常好地处理了移动缩放:
但是,这些文章往往忽略了字体缩放问题,并将其视为不太可能发生的情况。
我快速查看了许多大型移动友好/友好的网站,这些网站来自大型和成功的公司,似乎他们都只使用像素来满足其所有布局需求。 (Google、Facebook、Wordpress、Twitter、Bootstrap 3、[在某种程度上Bootstrap 4]、MDN和WebPlatform)
Chrome是新的标准破坏IE吗?还是我做错了什么?我现在很想出于一致性而只使用像素。