rem说明
rem是一个相对单位,类似em,em是 父元素字体大小 。不同的是rem的基准是相对于html元素的字体大小
比如:根元素(html)设置font-size:12px;非根元素设置width:2rem;则换成px表示就是24px。
媒体查询
什么是媒体查询:媒体查询是CSS3新语法
作用:
- 使用@media查询,可以针对不同的媒体类型定义不同的样式
- @media可以针对不同的屏幕尺寸设置不同的样式
- 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
- 目前针对很多苹果手机,安卓手机,平板等设备都用的到多媒体查询
语法规划
书写语法
<style>
@media mediatype and|not|only (media feature){
CSS-Code;
}
</style>
说明:
1. 用@media开头,注意@符号
2. mediatype媒体类型 将不同的终端设备划分成不同的类型,称为媒体类型
值:all(用于所有设备)| print(用于打印机和打印预览)|scree(用于电脑屏幕,平板电脑,智能手机等)
3. 关键字and not only。关键字将媒体类型或多个媒体特性连接到一起作为媒体查询的条件。
值:and(可以将多个媒体特性连接到一起,相当于“且”的意思)| not (排除某个媒体类型,相当于“非”的意思,可以省略) | only (指定某个特定的媒体类型,可以省略)
4. media feature 媒体特性,必须要有小括号包含。每种媒体类型都具体各自不同的特性,根据不同的媒体类型的媒体特性设置不同的展示风格,暂且了解下面三个。
值:width (定义输出设备中页面可见区域的宽度)
min-width (定义输出设备中页面最小可见区域宽度)
max-width(定义输出设备中页面最大可见区域宽度)
例子:
<style>
//这句话的意思就是,在我们屏幕上并且最大宽度小于等于800像素,设置我们的背景颜色为pink,当我们的屏幕最大宽度小于等于500像素时,背景颜色为red
@media screen and (max-width:800px){
body{
background-color:pink;
}
@media screen and (max-width:500px){
body{
background-color:red;
}
}
</style>
遵循规则:
1. 媒体查询一般按照从大到小或者从小到大的顺序来写。一般建议从小到大写,这样代码更加简洁
引入资源
说明:当样式比较繁多的时候,我们可以针对不同的媒体使用不同的stylesheet是(样式表),原理,就是直接在link中判断设备的尺寸,然后引用不同的CSS文件
语法规范:
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="css地址" />
案列:
//当我们屏幕大于等于640px以上的,我们让div一排显示,当小于640我们显示两排
<style>
<link rel="stylesheet" href="css地址" media="screen and (min-width:640px)"
</style>
rem适配方案
- 让一些不能等比自适应的元素,达到当设备尺寸发生改变的时候,等比例适配当前设备
- 使用媒体查询根据不同设备按比例设置html的字体大小,然后页面元素使用rem做尺寸单位,当html字体大小变化元素尺寸也会发生变化,从而达到等比缩放的适配
Less基础
Less安装
- 首先安装node.js
- 检查是否安装成功,可以使用cmd命令输入 node -v 查看版本
- 基于node.js 在线安装Less,使用cmd命令 sudo npm install -g less
- 检查是否安装成功,使用cmd命令 lessc -v 查看版本即可
Less变量
语法:@变量名:值;
命名规范
- 必须有@为前缀
- 不能以数字开头,不能包含特殊字符
- 区分大小写
- Less的编译需要安装插件 sublime可以百度less编译 vscode可以安装easy Less插件
Less运算符
- 运算符中间左右有个空格隔开
- 对于两个不同的单位的值质检的运算,运算结果的值取第一个值的单位
- 如果两个值质检只有一个值有单位,则运算结果就取该单位
rem实际开发适配方案
第一种方案
元素大小取值方法:
一般页面元素值取750px 划分为15份,font-size取50
- 最后的公式:页面元素的rem值 = 页面元素值(px) / (屏幕宽度/划分的份数)
- 屏幕宽度/划分的份数就是html font-size的大小
- 或者:页面元素的rem值 = 页面元素值(px) / html font-size 字体大小
第二种方案
flexible.js适配方案 下载地址:https://github.com/amfe/lib-flexible
px转rem插件
需要给vscode安装一个插件 cssrem 安装后修改配置项,默认转换的大小为16我们需要修改成自己的大小,一般设置75