一,rem基础
1.1 rem单位
- rem的基准是相对于html元素的字体大小,可以很好控制整个页面元素大小
/* 根html 为 12px */
html {
font-size: 12px;
}
/* 此时 div 的字体大小就是 24px */
div {
font-size: 2rem;
}
二,媒体查询
2.1 什么是媒体查询
- 使用@media查询,可以针对不同的媒体类型定义不同的样式
- @media 可以针对不同的屏幕尺寸设置不同的样式
- 当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面
- 目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询
2.2 媒体查询语句规范
- 用 @media开头 注意@符号
- mediatype 媒体类型
- 关键字 and not only
- media feature 媒体特性必须有小括号包含
@media mediatype and|not|only (media feature) {
CSS-Code;
}
@media
2.2.1 mediatype 查询类型
- all 用于所有设备
- print 用于打印机和打印预览
- scree 用于电脑屏幕,平板电脑,智能手机等
2.2.2 关键字
- and:可以将多个媒体特性连接到一起,相当于“且”的意思。
- not:排除某个媒体类型,相当于“非”的意思,可以省略。
- only:指定某个特定的媒体类型,可以省略。
2.2.3 媒体特性
width /* 定义输出设备中页面可见区域的宽度*/
min-width /* 定义输出设备中页面最小可见区域的宽度 */
max-width /* 定义输出设备中页面最大可见区域的宽度*/
2.2.4 媒体查询书写规则
- 媒体查询要按照从小到大的顺序来写
三,less基础
less 中文网址 :http://lesscss.cn/
3.1 less 嵌套
// 将css改为less
/* less样式书写*/
#header {
.logo{
width:300px;
}
}
/* css样式生成*/
#header .logo{
width:300px;
}
(交集|伪类|为元素选择器),利用 & 进行连接
/* css样式*/
a;hover{
color:red;
}
/* less样式*/
a{
&:hover{
color:red;
}
}
3.2 less 运算
/* Less 里面写*/
@width:10px + 5;
div {
border: @witdh solid red;
}
/*生成的css*/
div {
border: 15px solid red;
}
/*Less 甚至还可以这样 */
width: (@width + 5) * 2;
- 任何数字,颜色或者变量都可以参加运算。
- 乘号(*)和除号(/)的写法
- 运算符中间左右有个空格隔开 1px + 5
- 对于两个不同的单位的值之间的运算,运算结果的值取第一个值的单位
- 如果两个值之间只有一个值有单位,则运算结果就取该单位
四,rem 适配方案
技术方案:
1.less+rem+媒体查询
2.lflexible.js+rem
4.1 rem实际开发适配方案1
①假设设计稿是750px
②假设我们把整个屏幕划分为15等份(划分标准不一可以是20份也可以是10等份)
③每一份作为html字体大小,这里就是50px
④那么在320px设备的时候,字体大小为320/15就是 21.33px
⑤用我们页面元素的大小除以不同的 html字体大小会发现他们比例还是相同的
⑥比如我们以750为标准设计稿
⑦一个100100像素的页面元素在 750屏幕下, 就是 100/ 50 转换为rem 是 2rem2rem 比例是1比1
⑧320屏幕下, html字体大小为21.33 则 2rem= 42.66px 此时宽和高都是 42.66 但是宽和高的比例还是 1比1
⑨但是已经能实现不同屏幕下 页面元素盒子等比例缩放的效果
总结:
①最后的公式:页面元素的rem值 = 页面元素值(px) / (屏幕宽度 / 划分的份数)
②屏幕宽度/划分的份数就是 htmlfont-size 的大小
③或者:页面元素的rem值 = 页面元素值(px) / html font-size 字体大小
4.2 rem实际开发中的使用
- 页面元素rem计算公式:页面元素的px / html 字体的大小 50px(屏幕为750px的时候)也可以给字体大小定义一个变量 @开头
- 在 index.less 中导入 common.less 文件 使用@import “common”
- @import 导入的意思 可以把一个样式文件导入到另一个样式文件里面
@import "要导入的css样式文件路径";
less文件里面只能导入less样式
vertical-align:top; 解决文本下坠
<script src:"js文件的路径"></script>
千万不要忘记链接js文件路径。