作者回复: 这个问题可以解决的,可以用 /*no*/ 这种注释语法。比如: .page { font-size: 12px; /*no*/ width: 375px; /*no*/ height: 40px; } 后面有 /*no*/这种注释语法会不进行 rem 的转换
作者回复: 手淘的这个库有个好处,它会比较方便的解决手机端的1px问题。
作者回复: 主要是兼容性方面的考虑,rem兼容性更好。
作者回复: 这个px2rem-loader 也是可以设置 exclude 的,可以把 node_modules 里面的模块 exclude 掉。 另外如果不设置 exclude,那么也可以使用 /*no*/的语法去设置某一行样式不进行 px2rem 的转换操作。
作者回复: 哈哈,是呀。我们团队之前没有自动将 css 转成 rem 的时候,功能提交测试后一堆的兼容性 bug 单。 通过构建将 px 自动转换成 rem 后,兼容问题都少了好多了,基本是一套样式适配所有手机设备屏幕。
作者回复: 必须一起使用。 px2rem-loader 只是以构建的手段将 px 单位转换成了 rem。但是 rem 和 px 的单位计算并不清楚,flexible.js 的作用就是动态的去计算不同设备下的 rem 相对 px 的单位,也就是计算跟元素 html 节点的 font-size 大小
作者回复: 媒体查询确实是用来做兼容适配的一个重要手段,尤其是不使用 rem 的情况下。基于 iphone 6s去开发的页面放在小屏手机上一堆适配bug
作者回复: 同时兼容pc和移动端在实际的中大型web应用并不常见。因为这种应用页面pv/uv很高,产品侧会充分根据端的优势进行功能的设计,导致设计展示的内容完全不一样。 当然,如果是简单的网站或者后台B端系统应用UI框架是可以的。
作者回复: 这个是必须要内联进来的,因为页面打开的时候就需要马上计算页面的根节点的 font-size 值。如果不内联进来而是打包到了 js 里面去,那么样式解析的时候会有问题,可能存在样式闪动的情况
作者回复: 主要是兼容性上。rem兼容性更好,支持android2.2以上的机型。但是vm只支持android4.4和ios8以上的。 另外rem需要的计算需要在头部内联一个脚本,vm是纯css去实现的。 如果不考虑兼容性,vm完全没问题