什么是最好的兼顾桌面和移动 Web 适配的响应式方案?

发布于 2022-04-15 13:06:09 字数 1005 浏览 962 评论 0

rem 数值计算

如果利用 rem 来设置 css 的值,一般要通过一层计算才行,比如如果要设置一个长宽为 100px 的 div,那么就需要计算出 100px 对应的 rem 值是 100 / 16 =6.25rem

对于使用 sass 的工程

前端构建中,完全可以利用 scss 来解决这个问题,例如我们可以写一个 scss 的 function px2rem 即:

@function px2rem($px){
    $rem : 37.5px;
    @return ($px/$rem) + rem;
}
  1. 由于我们所写出的页面是要在不同的屏幕大小设备上运行的
  2. 所以我们在写样式的时候必须要先以一个确定的屏幕来作为参考,这个就由我们拿到的视觉稿来定
  3. 假如我们拿到的视觉稿是以 iphone6 的屏幕为基准设计的
  4. iPhone6 的屏幕大小是 375px,
rem = window.innerWidth  / 10

一般我们获取到的视觉稿大部分是 iphone6 的,所以我们看到的尺寸一般是双倍大小的,在使用 rem 之前,我们一般会自觉的将标注 / 2,其实这也并无道理,但是当我们配合 rem 使用时,完全可以按照视觉稿上的尺寸来设置。

  1. 设计给的稿子双倍的原因是 iphone6 这种屏幕属于高清屏,也即是设备像素比 (device pixel ratio)dpr 比较大,所以显示的像素较为清晰。
  2. 一般手机的 dpr 是 1,iphone4,iphone5 这种高清屏是 2,iphone6s plus 这种高清屏是 3
  3. 拿到了 dpr 之后,我们就可以在 viewport meta 头里,取消让浏览器自动缩放页面,而自己去设置 viewport 的 content
  4. 设置完之后配合 rem,修改
@function px2rem($px){
    $rem : 75px;
    @return ($px/$rem) + rem;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文