文章目录
1. rem基础
- rem (root em) 是一个相对单位,类似于em, em是父元素字体大小;
- 不同的是rem的基准是相对于html元素的字体大小;
- rem的优点就是可以通过修改html里面的文字大小来改变页面中元素的大小,达到整体控制的效果
/* 根html 为 12px */
html{
font-size:12px;
}
/* 此时div的字体大小就是 24px */
div{
font-size:2rem;
}
2. 媒体查询
2.1 什么是媒体查询
媒体查询 (Media Query) 是CSS3新语法
- 使用 @media 查询,可以针对不同的媒体类型定义不同的样式
- @media 可以针对不同的屏幕尺寸设置不同的样式
- 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
- 目前针对很多苹果手机、Android手机,平板等设备都用得到媒体查询
2.2 语法规范
/*
* 1. 用@media 开头 注意@符号
* 2. mediatype 媒体类型
* 3. 关键字 and ont only
* 4. media feature 媒体特性 必须有小括号包含
*/
@media mediatype and|ont|only (media feature)
{
CSS-Code;
}
/* 常用的语法 */
@media screen and (min-width:320px)
{
html{
font-size:21px;
}
}
2.2.1 mediatype 查询类型
将不同的终端设备划分成不同的类型,称为媒体类型
值 | 说明 |
---|---|
all | 用于所有设备 |
用于打印机和打印预览 | |
screen | 用于电脑屏幕,平板电脑,智能手机等 |
2.2.2 关键字
关键字将媒体类型或多个媒体特征连接到一起做为媒体查询的条件.
值 | 说明 |
---|---|
and | 可以将多个媒体特性连接在一起,相当于"且"的意思<f/ont> |
ont | 排除某个mm媒体类型,相当于“非”的意思,可以忽略 |
only | 指定某个特定的媒体类型,可以忽略 |
2.2.3 media feature 媒体特征
每种媒体类型都具体各自不同的特性,根据不同媒体类型的媒体特性设置不同.的展示风格。我们暂且了解三个。注意他们要加小括号包含.
值 | 说明 |
---|---|
width | 定义输出设备中页面可见区域的宽度 |
min-width | 定义输出设备中页面最小可见区域的宽度 |
max-width | 定义输出设备中页面最大可见区域的宽度 |
2.3 引入资源文件
当样式繁多时,可以针对不同的媒体使用不同的stylesheet;
原理就是直接在link中判断设备的尺寸,然后引用不同的css文件。
/* 当屏幕大小最小宽度为 320时,引用“style320.css” */
<link rel="stylesheet" href="css/style320.css" media="screen and (min-width: 320px)">
/* 当屏幕大小最小宽度为 640时,引用“style640.css” */
<link rel="stylesheet" href="css/style640.css" media="screen and (min-width: 640px)">
3. Less基础
3.1 Less介绍
Less安装与使用: https://blog.csdn.net/qq_43636251/article/details/108144568
4. rem适配方案
4.1 rem 实际开发适配方案
- 按照设计稿与设备宽度的比例,动态计算并设置 html 根标签的 font-size 大小;(媒体查询)
- CSS 中,设计稿元素的宽、高、相对位置等取值,按照同等比例换算为 rem 为单位的值;
4.2 技术方案1 less+媒体查询+rem
设计稿基本以750为准元 素大小取值方法:
- 最后公式:页面元素的rem值=页面元素值(px)/(屏幕宽度/划分的份数)
- 屏幕宽度/划分的份数就是html font-size 的大小
- 或页面元素的rem值=页面元素值(px)/ html font-size 字体大小
4.3 技术方案2 flexible.js+rem
flexible.js把当前设备划分为10等份
flexible.js下载地址 http://github.com/amfe/lib-flexible
4.3.1 VSCode px 转换 rem 插件 cssrem
安装cssrem插件
修改我们需要转换的rem尺寸
插件右击 → 点击扩展插件(Extension Settings) → 修改需要的数值
此时我们输入PX 插件会自动给我们转换rem