JS in CSS:一键支持响应式布局

本文介绍如何利用JS in CSS实现响应式布局,包括响应式拓展、安装使用方法,以及通过案例展示了知乎适配的全过程。借助响应式布局工具,可以快速生成响应式模板,有效支持不同设备的界面适配。
摘要由CSDN通过智能技术生成

前言

如今网速不再成为适配移动端时选择响应式设计的限制因素,在资源充足的条件下,针对各端各自设计应用界面能达到应用最佳用户体验,毕竟不同类型的设备交互体验是不同的,但在团队前端资源拮据时,相比无脑自适应,响应式设计自然是最为经济适用的。

JS in CSS 与响应式

我们见过很多 CSS 特性 Polyfill 库是由 JS 编写的,却几乎没有反过来的情况,多数时候新特性出现的兼容问题,CSS 新特性必须等待浏览器厂商的跟进和用户自己本地升级来解决,而 JS 很容易利用特性判定的方式为不支持的内容做兼容,甚至是 JS 新语法都可通过各种工具编译到 ES5 来支持,其能力的边界远非 CSS 可及。

就拿近期大家最为期待的容器查询特性 @container 来说,这相比之前屏幕查询适配的方式更加灵活了,无疑是下一代响应式页面设计的利器,按惯例打开 caniuse 看下:

离大规模应用还有些距离。然而用 JS 的同等实现不过分分钟的事情,iofod 里仅需新建一个状态表达式借助模型变量实现:

default:$parentWidth < 800 

响应式拓展

回到主流的响应式方案上,CSS 媒体查询也有不少毛病,容器查询普及后估计情况能得到改善(附带一波新语法~),于此同时,JS in CSS 表示一切正常,它的起点就是 CSS 未来的努力终点(误)。那么 JS in CSS 的方案如何支持主流方案的呢?

当下媒体查询基于屏幕去适配,因此我们首先需监听屏幕窗口的变动,保存屏幕尺寸值,接着在表达式里引用它们去计算即可。比如我们把屏幕值保存到 device 的模型变量 vw, vh 上,接下来我们响应屏幕的值去改变样式,如:

default:$vw<device> <= 1024
default:$vh<device> >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值