应用场景 : 适配高度
相同点 : 都是相对单位
不同点: 参考的元素不同
rem:参考的是根元素(html)字体大小 (统一的,一个页面只有一个html)
em:参考的是元素自身字体大小 (不统一,页面的元素字体大小不一定都是一致的)
(1)设置HTML字体大小一般为 屏幕宽度 1/10
* 一般使用js来实现(后期会学习js)
* 导入rem.js
(2)设置cssrem插件的参考值为 当前设计稿的rem
(3)根据UI设计稿,计算rem的值 (cssrem插件自动帮我们计算)
* 例如 : 640设计稿 1rem = 32px rem = px/32
* 例如 : 750设计稿 1rem = 37.5px rem = px/37.5
(1)计算元素的rem = 设计稿的px / 设计稿的屏幕的1rem
(2)cssrem插件 : 自动根据px来计算rem
a.安装
b.设置cssrem插件的rem单位为设计稿的rem
c.写样式代码 按照设计稿的px来写, 插件会自动转换成rem
在实际开发中,一般公司都会设置 1rem = 1/10屏幕宽度
也就是说,通过动态设置html字体大小,实现 1rem = 1/10 屏幕宽度
a.浏览器只识别三种语言:html,css,js
b.如果是其他的语言,浏览器不能直接识别,需要转成浏览器可以识别的语言
c.预处理语言:浏览器不能直接识别,需要预先处理成css语言
*less支持所有的css语法,只是在原有的css功能上添加了一些功能(4-5)
*(1)新建一个后缀名为.less的文件
*(2)需要将less预处理成css语言(Eazy LESS)
* 你在less文件中写代码,只要保存,这个插件就会帮你自动生成css更新
*(3)在浏览器中导入“css文件”
@变量名 : 值
@w:100px
,定义一个变量w,存储宽度100px@bgc:hotpink
,定义一个变量bgc,存储颜色hotpinkless中的变量可以使用 + - * / 进行数学计算
.类名()
less代码如下
.myborder{
border-top: 5px solid pink;
border-bottom: 10px solid green;
}
.box{
width: 200px;
height: 200px;
background-color: yellowgreen;
//使用混合语法插入上面一段css代码: .类名()
.myborder();
}
预处理之后的css代码
.myborder {
border-top: 5px solid pink;
border-bottom: 10px solid green;
}
.box {
width: 200px;
height: 200px;
background-color: yellowgreen;
border-top: 5px solid pink;
border-bottom: 10px solid green;
}
less嵌套语法作用
:将后代选择器写在一个大括号中,提高代码阅读性
less代码如下
.box{
width: 200px;
height: 200px;
border: 2px solid red;
span{//相当于css的后代选择器: .box span
color: green;
}
>span{//相当于css子代选择器: .box>span
color: purple;
}
a{//相当于css后代选择器: .box a
color: blue;
&:hover{//less支持多层嵌套,注意伪类前面需要加上&,相当于css: .box a:hove
color: black;
}
}
}
预处理之后的css代码
.box {
width: 200px;
height: 200px;
border: 2px solid red;
}
.box span {
color: green;
}
.box > span {
color: purple;
}
.box a {
color: blue;
}
.box a:hover {
color: black;
}
其实就是将多个css文件代码合并到一个css文件中
@imports "需要导入的less文件名;"
//导入:相当于把多个文件css代码合并到一个css文件中
//将base和index两个文件css代码合并到total文件中
@import "base.less";//后缀名less也可以省略, @import "base"
@import "index.less";
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。