当前播放: 24 | 移动端CSS px自动转换成rem
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:webpack与构建发展简史 (9讲)
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 为什么需要构建工具
免费
04 | 前端构建演变之路
05 | 为什么选择webpack
06 | 初识webpack
07 | 环境搭建:安装webpack
免费
08 | webpack初体验:一个最简单的例子
09 | 通过npm script运行webpack
第二章:webpack基础用法 (12讲)
10 | webpack核心概念之entry
免费
11 | webpack核心概念之output
免费
12 | webpack核心概念之loaders
13 | webpack核心概念之plugins
14 | webpack核心概念之mode
15 | 解析ECMASCript 6和React JSX
16 | 解析CSS、Less和Sass
17 | 解析图片和字体
18 | webpack中的文件监听
19 | webpack中的热更新及原理分析
20 | 文件指纹策略:chunkhash、contenthash和hash
21 | HTML 、CSS和JavaScript代码压缩
第三章:webpack进阶用法 (16讲)
22 | 自动清理构建目录产物
23 | PostCSS插件autoprefixer自动补齐CSS3前缀
24 | 移动端CSS px自动转换成rem
25 | 静态资源内联
26 | 多页面应用打包通用方案
27 | 使用sourcemap
28 | 提取页面公共资源
29 | Tree Shaking的使用和原理分析
30 | Scope Hoisting使用和原理分析
31 | 代码分割和动态import
32 | 在webpack中使用ESLint
33 | webpack打包组件和基础库
34 | webpack实现SSR打包(上)
35 | webpack实现SSR打包(下)
36 | 优化构建时命令行的显示日志
37 | 构建异常和中断处理
第四章:编写可维护的webpack构建配置 (9讲)
38 | 构建配置包设计
39 | 功能模块设计和目录结构
40 | 使用ESLint规范构建脚本
41 | 冒烟测试介绍和实际运用
42 | 单元测试和测试覆盖率
43 | 持续集成和Travis CI
44 | 发布构建包到npm社区
45 | Git Commit规范和changelog生成
46 | 语义化版本(Semantic Versioning)规范格式
第五章:webpack构建速度和体积优化策略 (12讲)
47 | 初级分析:使用webpack内置的stats
48 | 速度分析:使用speed-measure-webpack-plugin
49 | 体积分析:使用webpack-bundle-analyzer
50 | 使用高版本的webpack和Node.js
51 | 多进程/多实例构建
52 | 多进程并行压缩代码
53 | 进一步分包:预编译资源模块
54 | 充分利用缓存提升二次构建速度
55 | 缩小构建目标
56 | 使用Tree Shaking擦除无用的JavaScript和CSS
57 | 使用webpack进行图片压缩
58 | 使用动态Polyfill服务
第六章:通过源代码掌握webpack打包原理 (9讲)
59 | webpack启动过程分析
60 | webpack-cli源码阅读
61 | Tapable插件架构与Hooks设计
62 | Tapable是如何和webpack进行关联起来的?
63 | webpack流程篇:准备阶段
64 | webpack流程篇:模块构建和chunk生成阶段
65 | webpack流程篇:文件生成
66 | 动手编写一个简易的webpack(上)
67 | 动手编写一个简易的webpack(下)
第七章:编写loader和插件 (7讲)
68 | loader的链式调用与执行顺序
69 | 使用loader-runner高效进行loader的调试
70 | 更复杂的loader的开发场
71 | 实战开发一个自动合成雪碧图的loader
72 | 插件基本结构介绍
73 | 更复杂的插件开发场景
74 | 实战开发一个压缩构建资源为zip包的插件
第八章:React全家桶和webpack开发商城项目 (10讲)
75 | 商城技术栈选型和整体架构
76 | 商城界面UI设计与模块拆分
77 | React全家桶环境搭建
78 | 数据库实体和表结构设计
79 | 登录注册模块开发
80 | 商品模块开发
81 | 订单模块开发
82 | 谈谈web商城的性能优化策略
83 | 功能开发总结
84 | 结束语
24 | 移动端CSS px自动转换成rem

24 | 移动端CSS px自动转换成rem

程柳锋
腾讯高级工程师,IVWEB团队社区和工程化负责人
84讲 84课时,约900分钟5478
单独订阅¥99
2人成团¥79
7
本节摘要
登录 后留言

精选留言(24)

  • ZYSHINee
    老师,您的px转rem的demo有一个问题,search.less文件的代码,您只写了一层{}的代码,如果里面再嵌套一层{},那么编译的时候会报错,错误原因是先执行了px2rem-loader编辑,less-loader在后面,module.rules 里less-loader应该写在px2rem-loader后面,我是这样改,然后就可以的
    2019-06-20
    1
    9
  • 弦奏
    这样统一转化 rem 是方便,但是有的时候有些样式并不想转化,这个时候就感觉不灵活了

    作者回复: 这个问题可以解决的,可以用 /*no*/ 这种注释语法。比如:

    .page {
      font-size: 12px; /*no*/
      width: 375px; /*no*/
      height: 40px;
    }

    后面有 /*no*/这种注释语法会不进行 rem 的转换

    2019-06-09
    1
    7
  • ZYSHINee
    老师你好,我按视频的代码,在构建的时候会报错,

    ERROR in ./src/search.less
    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
    ModuleBuildError: Module build failed (from ./node_modules/px2rem-loader/index.js):
    Error: undefined:6:5: missing '}'

    请问是为什么
    2019-06-20
    1
    4
  • Baron
    html根节点的大小计算,可以使用html:{font-size:calc(100vw/固定分辨率)}
    这样可以不用引入⽤用⼿手淘的lib-flexible库,也能动态计算大小

    作者回复: 手淘的这个库有个好处,它会比较方便的解决手机端的1px问题。

    2019-07-04
    3
  • 萃萃🇨🇳
    现在不是不推荐使用rem了么,现在项目里面用vw用的更多一些

    作者回复: 主要是兼容性方面的考虑,rem兼容性更好。

    2019-06-10
    3
  • 许童童
    为什么不直接使用postcss的rem插件
    2019-06-07
    3
  • Frend
    px转rem和媒介查询解决的不是同一个问题吧……感觉混合一谈不合适啊

    作者回复: 媒体查询确实是用来做兼容适配的一个重要手段,尤其是不使用 rem 的情况下。基于 iphone 6s去开发的页面放在小屏手机上一堆适配bug

    2019-06-07
    2
  • johnbian
    手淘不推荐用rem了。老师,我现在项目中选了vw的,风险性搞嘛?
    2019-11-07
    1
  • 安静
    不太理解flexible.js的必要性在哪里呢?直接获取窗口大小除以100不就是根元素的font size吗?老师能不能解释一下呢
    2019-10-21
    1
  • 白驹过隙
    这个最大的缺点就是会把第三方ui库的px也给转了

    作者回复: 这个px2rem-loader 也是可以设置 exclude 的,可以把 node_modules 里面的模块 exclude 掉。

    另外如果不设置 exclude,那么也可以使用 /*no*/的语法去设置某一行样式不进行 px2rem 的转换操作。

    2019-08-07
    1
  • 啦啦
    请问下老师你们是怎么处理rem的精度问题的,如果图片采用了rem设置大小,不可避免遇到rem在不同浏览器的兼容性问题,请问贵部门怎么处理的呢?另外还想问下老师是怎么处理1px问题的?谢谢!
    2019-07-22
    1
  • Baron
    这个是移动端适配的吧,如果需要同时兼容pc和移动,还是使用ui框架好些吧

    作者回复: 同时兼容pc和移动端在实际的中大型web应用并不常见。因为这种应用页面pv/uv很高,产品侧会充分根据端的优势进行功能的设计,导致设计展示的内容完全不一样。

    当然,如果是简单的网站或者后台B端系统应用UI框架是可以的。

    2019-07-04
    1
  • 小肥羊
    这里lib-flex一定要内里联进来吗,可以引入文件吗?

    作者回复: 这个是必须要内联进来的,因为页面打开的时候就需要马上计算页面的根节点的 font-size 值。如果不内联进来而是打包到了 js 里面去,那么样式解析的时候会有问题,可能存在样式闪动的情况

    2019-06-13
    1
  • Bella
    rem和vw该怎么选呢
    2019-11-27
  • 甜甜甜豆
    老师碰到了个报错:是什么原因呢?
    ERROR in ./src/search.less (./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/px2rem-loader??ref--6-3!./node_modules/less-loader/dist/cjs.js!./src/search.less)
        Module build failed (from ./node_modules/px2rem-loader/index.js):
        Error: undefined:10:8: property missing ':'
    2019-10-03
  • 老乡
    老师你好,
    我有个问题没想明白。
    1:用px2rem-loader 把所有的px转换为rem
    2:用lib-flexible计算出根元素的px的值

    第一个问题:lib-flexible 是根据不同的浏览器分辨率计算出根元素的px值吗?
    第二个问题:计算出根元素的px之后,其他元素都是rem值,这时候浏览器怎么适配的?
    2019-09-28
  • Sherry
    应该是遇到了和一楼同学一样的问题。照着老师的写,报错了。调换下顺序就成功了。比较奇怪,老师那里是怎么打包成功的呢?

    ERROR in ./src/components/image.less
    Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
    ModuleBuildError: Module build failed (from ./node_modules/px2rem-loader/index.js):
    Error: undefined:8:6: property missing ':'
    2019-09-27
    1
  • metthew😀
    libflexsible
    2019-07-17
  • suxun
    老师,我好像不太明白这里flexible.js的作用是什么?假如使用px2rem-loader的话,就必须和flexible.js一起搭配使用吗?

    作者回复: 必须一起使用。

    px2rem-loader 只是以构建的手段将 px 单位转换成了 rem。但是 rem 和 px 的单位计算并不清楚,flexible.js 的作用就是动态的去计算不同设备下的 rem 相对 px 的单位,也就是计算跟元素 html 节点的 font-size 大小

    2019-07-17
  • Aaron 财
    老师,如果是小型web应用的话,通过这种方式实现pc和移动端适配的方案可行么,其实这个我一直纠结着……😣

    作者回复: 这个比较适合H5和Pad端的应用,PC端还是使用px比较适合。

    2019-07-07
收起评论
看过的人还看
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 33114 人已学习

拼团 ¥69 原价 ¥99
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 3042 人已学习

拼团 ¥99 原价 ¥129
浏览器工作原理与实践

李兵  前盛大创新院高级研究员

43讲 | 6274 人已学习

拼团 ¥79 原价 ¥99
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 3878 人已学习

拼团 ¥99 原价 ¥129