rem+less适配布局方案

100 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

rem

rem是一个相对单位,基准相对于html元素的字体大小

rem的优点就是可以通过修改html里面的文字大小 来改变页面中元素的大小可以整体控制

根元素(html)设置font-size=12px;

非根元素设置width:2rem,则换成px表示就是24px

1.首先我们选一套标准尺寸 750为准

2.我们用屏幕尺寸,除以划分的份数,得到了html里面的文字大小,但是我们知道不同屏幕下得到的文字大小是不一样的

3页面元素的rem的值 = 页面元素在750px下的px值 /html里面的文字大小

将页面划分15等分

@media screen and (min-width: 320px) {

html {

font-size: 21.33px;

}

}

 

@media screen and (min-width: 750px) {

html {

font-size: 50px;

}

}

flexible.js(推荐)

手机淘宝团队出的简洁高效的移动端的适配库 原理: 把当前设备划分为10等份,但是在不同设备下,比例还是一致的 所以只要确定好当前设备的html的文字大小

&example

当前页面的设计稿为750px时, 只需要将html的文字大小设置为75px (750px /10) 里面页面的元素的rem值: 页面元素的px值 /75 剩余部分可以交给 flexible.js去计算

media媒体查询引入样式表 (从小到大)

<link rel="stylesheet" style="style320.css" media="screen and (min-width: 320px)">

less

less是一门css预处理语言,扩展了css的动态特性

安装less npm install -g less

检测是否安装成功 less -v

导入less文件

@import "common";

定义变量

@color: pink; @font14: 14px;

background: @color;

 

less嵌套

.header {

a {

//如果有伪类,交集选择器,伪元素选择器, 我们内层选择器的前面需要加&

&:hover { 

}

}

}

 

less运算

两个数参与运算,如果只有一个单位,最后的结果就以这个单位为准

两个数都有单位,而且不一样,以第一个单位为准

width: 82 / 50rem;

height: 82rem / @baseFont;

height:(200px + 50px) * 2;

color: #666 - #222;

less编译

Easy Less