大屏
页面
- 设计图
- CMP
思路
- 分为左、中、右三块
- 寻找布局相似点
- 实现界面
- 自动全屏
一、1. 分列、分行
- 分列方法
- grid
- flex
- multiple columns
- 列间距
- grid-gap
- margin
需要去除两头的margin,或者通过css选择器不给两头元素添加margin。
注:flex布局不存在margin collapse - column-gap
- 块对齐
- flex
- calc
左右高度一致
二、calc与scss计算
scss:
- 加减
绝对单位:px, pt, pc, in, mm, cm…绝对单位都能运算;
相对单位:ex, em, rem…相对当前字体的都不能运算;
❌ 🌰
1 | $plus1: 100px + 20ex; //不能换算的编译都会报错; |
报错: Incompatible units: 'ex' and 'px'.
✔️ 🌰
1 | $minus1: 100px - 20; //第二个值可不带单位; |
- 乘
相乘的变量或者数字只能一个带单位。不允许不同单位相乘。
1 | div { |
- 除
css中允许使用/
分隔数值,所以仅有/
分隔没有运算时,不会当作除法运算,会原样输出。
参考:font ‘/‘
1 | div { |
calc
尽情计算
三、 自动全屏
- 理想实现效果
点击总览页按钮,新开tab,进入大屏页并自动全屏展示 - 实现后效果
- 全屏api
- requestFullScreen()
- exitFullscreen()
- fullScreenChange()
最初想法: 监听ESC
按键, 在回调函数里执行跳转操作。
最终实现:在大屏组件内监听fullScreenChange
事件,并在unmount
周期移除,fullScreenChange
时判断是否在全屏模式,全屏就browserHistory.push
到总览页