rem布局之less的基本使用

    技术2022-07-20  82

    less是css的预处理语言,它拓展了css功能,使我们在编写样式时更加方便,通常和rem配合使用,下面看一下它的基本使用:

    1.安装.

    首先需要安装nodejs,这里可以自行百度,不再赘述.

    然后通过npm install -g less命令安装less,我在mac上安装时遇到报错Error: EACCES: permission denied, access '/usr/local/lib/node_modules',查了查是由于没有权限造成的,在前面加上sudo然后输入密码即可: sudo npm install -g less.

    安装成功通过 lessc -v查看版本.

    2.Easy LESS的安装.

    在vscode上可以安装插件Easy LESS,可以帮我们自动编译less文件为css.

    新建一个study文件夹,在里面新建index.html,代码如下:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <title>less</title> <style> * { margin: 0; padding: 0; } </style> </head> <body> <nav> less </nav> </body> </html>

    然后新建styleLess.less文件,在里面编写我们的less代码:

    @height100: 100px; @font50: 50px; @gray: #ccc; nav { width: 100%; height: @height100; background-color: @gray; text-align: center; line-height: @height100; font-size: @font50; }

    当我们安装了Easy LESS后,Command+s保存less文件时会自动为我们编译出相同名称的css文件:

    nav { width: 100%; height: 100px; background-color: #ccc; text-align: center; line-height: 100px; font-size: 50px; }

    这时只要在html中引入styleLess.css即可:

    <link rel="stylesheet" href="styleLess.css">

    效果如下:

    3.变量.

    通过上面的小案例,可以看到在less中,我们可以使用变量来定义一些经常使用的值,变量的定义需要使用符号@,名称中不能含有特殊字符,也不能使用数字开头,上面的:

    @height100: 100px; @font50: 50px; @gray: #ccc;

    都是变量的定义,使用的时候直接输入@+变量名即可.

    4.嵌套.

    (1).后代选择器.

    less中的子类选择器可以通过嵌套的方式来写,比如在nav标签中加一个span标签,把它的字体颜色改为红色:

    <nav> less <span> ls</span> </nav>

    less:

    @height100: 100px; @font50: 50px; @gray: #ccc; nav { width: 100%; height: @height100; background-color: @gray; text-align: center; line-height: @height100; font-size: @font50; span { color: red; } }

    可以看到编译成css时,嵌套的代码会自动转为后代选择器:

    nav { width: 100%; height: 100px; background-color: #ccc; text-align: center; line-height: 100px; font-size: 50px; } nav span { color: red; }

    (2).伪类|伪元素|交集选择器

    写这几个样式时,在嵌套的时候要在选择器前面添加&符号,这样编译时会把他们加到本身选择器的后面,我们改一下代码:

    <body> <nav> less <span> ls</span> </nav> <nav class="green"> less <span> ls</span> </nav> </body>

    实现下面几个样式:

    把nav.green字体设置为green.

    当hover nav标签时,nav字体颜色改为pink.

    为nav添加伪元素before,内容为233.

    less代码如下:

    @height100: 100px; @font50: 50px; @gray: #ccc; nav { width: 100%; height: @height100; background-color: @gray; text-align: center; line-height: @height100; font-size: @font50; span { color: red; } &.green { color: green; } &:hover { color: pink; } &::before { content: '233'; } }

    这样在前面添加&符号时,编译时会自动生成以上3种选择器:

    nav { width: 100%; height: 100px; background-color: #ccc; text-align: center; line-height: 100px; font-size: 50px; } nav span { color: red; } nav.green { color: green; } nav:hover { color: pink; } nav::before { content: '233'; }

    效果如下:

    hover:

    5.计算.

    在less中,我们可以直接进行加减乘除的计算,比如我们把上面nav中的字体大小放大指定的倍数:

    @height100: 100px; @font50: 50px; @gray: #ccc; @scale: 2; nav { width: 100%; height: @height100; background-color: @gray; text-align: center; line-height: @height100; font-size: @font50 * @scale; span { color: red; } &.green { color: green; } &:hover { color: pink; } &::before { content: '233'; } }

    首先声明变量@scale,然后设置nav中的font-size在原有的基础上乘以@scale,生成的css如下:

    nav { width: 100%; height: 100px; background-color: #ccc; text-align: center; line-height: 100px; font-size: 100px; } nav span { color: red; } nav.green { color: green; } nav:hover { color: pink; } nav::before { content: '233'; }

    这里需要注意的是:

    +-*/符号两边要留空格.

    如果两个操作数有单位,会以前面的单位为准.

    以上是less的基本使用方法,更详细的使用方法可以参考官方文档:

    https://less.bootcss.com/

    Processed: 0.014, SQL: 10