相对于html元素的字体大小
。好比,根元素(html)设置font-size=12px; 非根元素设置width:2rem; 则换成px表示就是24px。css
/\* 根html 为 12px \*/ html { font-size: 12px; } /\* 此时 div 的字体大小就是 24px \*/ div { font-size: 2rem; }
媒体查询(Media Query)是CSS3新语法。html
@media
查询,能够针对不一样的媒体类型定义不一样的样式@media mediatype and|not|only (media feature) { CSS-Code; }
(1) mediatype 查询类型前端
将不一样的终端设备划分红不一样的类型,称为媒体类型node
(2) 关键字git
关键字将媒体类型或多个媒体特性链接到一块儿作为媒体查询的条件。github
(3) 媒体特性web
每种媒体类型都具体各自不一样的特性,根据不一样媒体类型的媒体特性设置不一样的展现风格。咱们暂且了解三个。npm
注意他们要加小括号包含移动web开发
(4) 媒体查询书写规则浏览器
注意: 为了防止混乱,媒体查询咱们要按照从小到大或者从大到小
的顺序来写,可是咱们最喜欢的仍是从小到大来写,这样代码更简洁
/* 1. 媒体查询通常按照从大到小或者 从小到大的顺序来 */ /* 2. 小于540px 页面的背景颜色变为蓝色 */ @media screen and (max-width: 539px) { body { background-color: blue; } } /* 3. 540 ~ 970 咱们的页面颜色改成 绿色 */ /* @media screen and (min-width: 540px) and (max-width: 969px) { body { background-color: green; } } */ @media screen and (min-width: 540px) { body { background-color: green; } } /* 4. 大于等于970 咱们页面的颜色改成 红色 */ @media screen and (min-width: 970px) { body { background-color: red; } } /* 5. screen 还有 and 必须带上不能省略的 */ /* 6. 咱们的数字后面必须跟单位 970px 这个 px 不能省略的 */
CSS 是一门非程序式语言,没有变量、函数、SCOPE(做用域)等概念。
Less安装
Less 变量
变量是指没有固定的值,能够改变的。由于咱们CSS中的一些颜色和数值等常用。
@变量名:值;
@color: pink;
Less 编译 vocode Less 插件
Less 嵌套
// 将css改成less #header .logo { width: 300px; } #header { .logo { width: 300px; } }
若是碰见 (交集|伪类|伪元素选择器) ,利用&进行链接
a:hover{ color:red; } a{ &:hover{ color:red; } }
Less 运算
/\*Less 里面写\*/ @witdh: 10px + 5; div { border: @witdh solid red; } /\*生成的css\*/ div { border: 15px solid red; } /\*Less 甚至还能够这样 \*/ width: (@width + 5) \* 2;
技术方案:
总结:
1. 假设设计稿是750px 2. 假设咱们把整个屏幕划分为15等份(划分标准不一能够是20份也能够是10等份) 3. 每一份做为html字体大小,这里就是50px 4. 那么在320px设备的时候,字体大小为320/15就是 21.33px 5. 用咱们页面元素的大小除以不一样的 html字体大小会发现他们比例仍是相同的 6. 好比咱们以750为标准设计稿 7. 一个100_100像素的页面元素在 750屏幕下, 就是 100/ 50 转换为rem 是 2rem_2rem 比例是1比1 8. 320屏幕下, html字体大小为21.33 则 2rem= 42.66px 此时宽和高都是 42.66 可是宽和高的比例仍是 1比1 9. 可是已经能实现不一样屏幕下 页面元素盒子等比例缩放的效果
总结:
手机淘宝团队出的简洁高效 移动端适配库----`flexible.js` 咱们不再须要在写不一样屏幕的媒体查询,由于里面js作了处理 它的原理是把当前设备划分为10等份,可是不一样设备下,比例仍是一致的。 咱们要作的,就是肯定好咱们当前设备的html 文字大小就能够了 好比当前设计稿是 750px, 那么咱们只须要把 html 文字大小设置为 75px(750px / 10) 就能够 里面页面元素rem值: 页面元素的px 值 / 75 剩余的,让flexible.js来去算
github地址:https://github.com/amfe/lib-flexible
总结:
VSCode px 转换rem 插件 cssrem