天天看点

移动端rem适配布局学习总结

1.rem基础

rem 是单位

rem(root em)是一个相对单位,类似于em,em是父元素字体大小

不同的是rem的基准是相对于html的文字大小。

比如,根元素(html)设置font-size=12px;非根元素设置width:2rem;则换成px表示就是24px。

优点:

·通过修改html文字大小改变页面元素大小

2.媒体查询

2.1什么是媒体查询

媒体查询(Media Query)是CSS3的新语法。

·@media 可以针对不同的屏幕尺寸设置不同的样式

2.2语法规范

@media mediatype and | not |only (media feature) {
	css-Code

}
//**********************
@media screen and  (max-width:800px) {
	body {
	       background-color:pink;    //这里媒体查询的属性就是,当屏幕在<=800px的情况下,body背景色为pink	
	}
}
//***********************
@media screen and  (min-width:500px) and (max-width:800px) { // 代码层叠性会将他重叠覆盖
	body {
	       background-color:pink;    //这里媒体查询的属性就是,当屏幕在500<=x<=800px的情况下,body背景色为pink	
	}
}
           

· 用@media开头 注意@符号

· mediatype 媒体类型

· 关键字 and not only

· media feature 媒体特性 必须有小括号包含

1.mediatype 查询类型

将不同的终端设备划分成不同的类型,成为媒体类型

值 解释说明

  • all 用于所有设备
  • print 用于打印机和打印预览
  • screen 用于电脑屏幕、平板电脑、智能手机等。

    2.关键字

    关键字将媒体类型或多个媒体特性链接到一起作为媒体查询的条件

    • and:可以将多个媒体特性链接到一起,相当于“且”的意思。
    • not:排除某个媒体类型,相当于“非”的意思,可以省略。
    • only:制定某个特定的媒体类型,可以省略。

      3.媒体特性

      每种媒体特性类型都具体各自不同的特征,根据不同的媒体类型的媒体特性设置不同的展示风格,暂时了解三个

      值 解释说明

    • width 定义输出设备中页面可见区域的宽度
    • min-width 定义输出设备中页面最小可见区域的宽度
    • max-width 定义输出设备中页面最大可见区域的宽度
    • 最大值和最小值都是包含等号的

      注意:

      ? 媒体查询一般是按照从大到小或者从小到大的顺序写得

      ? screen 和 and 不能省略 ,数字后面必须跟单位

      2.3 媒体查询+rem实现元素动态大小变化

      rem单位是跟着html来走的,有了rem页面元素可以设置不同大小尺寸。

      媒体查询可以根据不同设备宽度来修改样式。

      媒体查询+rem 就可以实现不同设备宽度,实现页面元素大小的动态变化。

      2.4引入资源(理解)

      当样式比较繁多的时候,我们可以针对不同的媒体使用不同的stylesheets(样式表)。

      原理就是直接在link中判断设备的尺寸,然后引用不同的css文件。

      1.语法规范

3.Less基础

3.1 维护css的弊端

CSS是一门非程序的语言,没有变量、函数、SCOPE(作用域)等概念;

· CSS需要书写大量看似没有逻辑的代码,CSS冗余度是比较高的;

· 不方便维护及扩展,不利于复用;

· CSS没有很好地计算能力;

· 非前段开发工程师来讲,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码项目;

3.2Less介绍

Less是一门CSS扩展语言,也称为CSS预处理器;

作为CSS的一种形式的扩展,他并没有减少CSS的功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性;

在CSS的语法基础上,引入了变量,Mixin(混入),运算以及函数等功能,简化了CSS的编写,并且降低了CSS的维护成本;

Less中文网址:http://lesscss.cn/

Less就是一门CSS预处理语言,它扩展了CSS的动态特性;

3.3Less安装

Less 使用

新建一个后缀名为less的文件,在这个less文件里面写less

· less变量

· less编译

· less嵌套

· less运算

3.4.Less 变量

变量是美玉固定的值,可以改变的。

@变量名:值;

1.变量命名规范

· 必须有@为前缀

· 不能包含特殊字符

· 不能以数字开头

· 大小写敏感

3.5Less 编译

要把less文件编译成css文件,我们的html页面才能使用;

3.6Less嵌套

less嵌套,子元素的样式直接写到父元素里面就可以,相当于后代选择器

div {

a {

}

}

遇到 交集、伪类、伪元素选择器:

· 内层选择器的前面没有&符号,则它被解析为父选择器的后代;

如果有&符号,他就被解析为父元素自身或父元素的伪类。

&:hover;  
 &::before;
           

3.7Less 运算

任何数字、颜色或者变量都可以参与运算。less提供了加减乘除算数运算。

注意点:

· 乘号 * 和 除号 / 的写法

· 运算符中间左右有个空格隔开 1px + 5;

对于两个不同的单位的值之间的运算,运算结果的值取第一个值的单位

· 如果两个值之间只有一个值有单位,则运算结果就取该单位

4.rem适配方案

4.1 rem实际开发适配方案

· 按照设计稿与设备宽度的比例,动态计算并设置html 根标签的font-size大小(媒体查询)

· CSS中,设计稿元素的宽,高,相对位置等取值,按照同等比例换算rem为单位的值。

4.2rem适配方案技术使用(市场主流)

技术方案1

· less

· 媒体查询

· rem

技术方案2 推荐

flexible.js 淘宝的适配 方案(将屏幕划分成10等份)

rem

第二方案更简单,推荐使用,后期了解js代码就可以。

4.3 rem实际开发适配方案1

rem + 媒体查询 + less

元素大小取值方法

1 · 最后的公式:页面的元素的rem值 = 页面元素值(px)/ (屏幕宽度 / 划分的分数)

2 · 屏幕宽度 / 划分的份数 就是html 的font-size 的大小

3 · 或者:页面元素的rem值 = 页面元素值(px)/ html font-size 字体大小。