移动端开发rem布局之less+媒体查询布局的原理步骤和心得_忘却_前端开发者

rem即是以html文件中font-size的大小的倍数
rem布局的原理:通过媒体查询设置不同屏幕宽度下的html的font-size大小,然后在css布局时用rem单位取代px,从而实现页面元素大小的动态适配,做出更漂亮整洁的页面
rem布局的好处:
1.页面整洁
2.动态适配
缺点:
1.需要计算rem,但可以通过自动转化单位插件弥补

less:是一门css扩展语言,也成为css预处理器,引入了变量,mixin(混入)、运算以及函数等功能
css弊端:1.冗余度高 2.维护成本高 3.没有很好的计算能力
less变量定义:@变量名:值;
值可以是任意css属性值,如颜色大小
注意:1.大小写区分 2.不能以数字开头 3.不能有特殊符号
less变量引用,直接输入@变量名即可
less嵌套
子元素样式直接写到父元素嵌套里
例div { a{xxxx} } 代表div a {}; div { &hover {} } 代表div:hover

less运算
less可以使用+ – * / 运算符号
颜色大小都可以运算
运算符左右必须空格隔开
两个数参与运算,只有一个有单位,则结果单位与其相同
两个数参与运算,量个数都有单位且不一样,则结果与第一个数的单位相同
注:less中可以用@import引入其他less文件 如@import:url(xxxx.less);

基本步骤:
1.首先写一个common.less文件,专门用于媒体查询,其中常用的屏幕大小单位有320px 360px 375px 384px 400px 414px 424px 480px 540px 720px 750px。该文件的作用是设置不同大小屏幕下的font-size大小,其中倍数可以为15或者10,可以设置变量表示方便书写

 1 //利用媒体查询按照同一比例(10或者15)设置不同屏幕尺寸下的font-style大小
 2 //利用@+变量名:变量值  设置变量,提高效率
 3 @no:15;
 4 @media screen and (min-width: 320px) {
 5     html {
 6         font-size: 320px / @no;
 7     }
 8 }
 9 @media screen and (min-width: 360px) {
10     html {
11         font-size: 360px / @no;
12     }
13 }
14 @media screen and (min-width: 375px) {
15     html {
16         font-size: 375px / @no;
17     }
18 }
19 @media screen and (min-width: 384px) {
20     html {
21         font-size: 384px / @no;
22     }
23 }
24 @media screen and (min-width: 400px) {
25     html {
26         font-size: 400px / @no;
27     }
28 }
29 @media screen and (min-width: 414px) {
30     html {
31         font-size: 414px / @no;
32     }
33 }
34 @media screen and (min-width: 424px) {
35     html {
36         font-size: 424px / @no;
37     }
38 }
39 @media screen and (min-width: 480px) {
40     html {
41         font-size: 480px / @no;
42     }
43 }
44 @media screen and (min-width: 540px) {
45     html {
46         font-size: 540px / @no;
47     }
48 }
49 @media screen and (min-width: 720px) {
50     html {
51         font-size: 720px / @no;
52     }
53 }
54 @media screen and (min-width: 750px) {
55     html {
56         font-size: 750px / @no;
57     }
58 }
 1 //利用媒体查询按照同一比例(10或者15)设置不同屏幕尺寸下的font-style大小
 2 //利用@+变量名:变量值  设置变量,提高效率
 3 @no:15;
 4 @media screen and (min-width: 320px) {
 5     html {
 6         font-size: 320px / @no;
 7     }
 8 }
 9 @media screen and (min-width: 360px) {
10     html {
11         font-size: 360px / @no;
12     }
13 }
14 @media screen and (min-width: 375px) {
15     html {
16         font-size: 375px / @no;
17     }
18 }
19 @media screen and (min-width: 384px) {
20     html {
21         font-size: 384px / @no;
22     }
23 }
24 @media screen and (min-width: 400px) {
25     html {
26         font-size: 400px / @no;
27     }
28 }
29 @media screen and (min-width: 414px) {
30     html {
31         font-size: 414px / @no;
32     }
33 }
34 @media screen and (min-width: 424px) {
35     html {
36         font-size: 424px / @no;
37     }
38 }
39 @media screen and (min-width: 480px) {
40     html {
41         font-size: 480px / @no;
42     }
43 }
44 @media screen and (min-width: 540px) {
45     html {
46         font-size: 540px / @no;
47     }
48 }
49 @media screen and (min-width: 720px) {
50     html {
51         font-size: 720px / @no;
52     }
53 }
54 @media screen and (min-width: 750px) {
55     html {
56         font-size: 750px / @no;
57     }
58 }

1//利用媒体查询按照同一比例(10或者15)设置不同屏幕尺寸下的font-style大小 2//利用@+变量名:变量值 设置变量,提高效率 3;
4width: 320px) {
5 html {
6 @no;
7 }
8}
9width: 360px) {
10 html {
11 @no;
12 }
13}
14width: 375px) {
15 html {
16 @no;
17 }
18}
19width: 384px) {
20 html {
21 @no;
22 }
23}
24width: 400px) {
25 html {
26 @no;
27 }
28}
29width: 414px) {
30 html {
31 @no;
32 }
33}
34width: 424px) {
35 html {
36 @no;
37 }
38}
39width: 480px) {
40 html {
41 @no;
42 }
43}
44width: 540px) {
45 html {
46 @no;
47 }
48}
49width: 720px) {
50 html {
51 @no;
52 }
53}
54width: 750px) {
55 html {
56 @no;
57 }
58

2.然后再写样式less文件,注意要先设置好当前测量页面的font-size大小,因为我们是根据某个页面来测量元素大小,所以要根据这个页面先设置好当前的rem倍数的变量,如750/15 =50.同时设置好页面的最小宽度320px。书写样式时,大部分px单位都需要转为rem,可以通过运算符或者插件表示。
切记通过import引入媒体查询文件,否则页面动态适配无法生效

1 @import:url(common.css)
2 @baseFont: 50;
1 @import:url(common.css)
2 @baseFont: 50;

1@import:url(common.css)
2

总结:rem布局的灵魂在于通过媒体查询动态修改font-size,再利用rem与其链接达到动态适配的效果。所以重点是媒体查询的书写以及元素大小单位的书写,而利用less可以轻松实现计算,当然也可以利用阿里巴巴的flexible.js省略媒体查询一步,从而不需要less扩展语言。

» 本文来自:前端开发者 » 《移动端开发rem布局之less+媒体查询布局的原理步骤和心得_忘却_前端开发者》
» 本文链接地址:https://www.rokub.com/73632.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!