动态的样式语言less语法详解之变量与extend

动态的样式语言less语法详解之变量与extend

简介

LESS是一种动态的样式语言,不仅语法简洁明了,而且扩展性强,利用LESS我们能够更方便、更快捷地写出复杂的样式代码,提升我们的开发效率。

本文将介绍LESS语法中涉及的变量(Variables)与扩展(Extend)。

变量(Variables)

LESS中的变量与Javascript中的变量有些相似,但是有些不同,我们要从以下几个方面来详细讲解:

定义变量

LESS中定义变量需要使用@符号,格式如下:

@变量名:值;

下面是一个例子:

@background-color: #f5f5f5;

说明:将颜色值#f5f5f5赋值给变量@background-color。

引用变量

在LESS语法中引用变量直接使用@变量名的方式引用,如下面的例子所示:

body { background-color: @background-color; }

说明:使用变量@background-color的颜色值,将整个文档的背景颜色设置为该颜色。

变量的作用域

变量作用域是我们要了解的另一个重要概念,其定义出生的位置就是变量的作用域。

在LESS中,变量按照其定义位置向外找作用域,例如:

#header {
  @V: red;
  border-color: @V;
}

上面的代码中,变量@V是定义在#header作用域内的,在其中使用@V的border-color属性也位于该作用域内。所以border-color中可以正确地引用@V,输出的样式代码将会是:

  #header {
    border-color: red;
  }

而当@V定义在某个选择器外,另一个选择器内使用了@V,则@V的作用域为全局,即整个文档都可以使用该变量。

变量的默认值

在LESS中,变量还有个很有用的特性,就是其可以设置默认值,当某个地方没有设置变量值时,LESS会使用默认值。如下面的例子所示:

@link-color: #ff0000;
.a { color: @link-color; }
.b { color: @link-color; }
.c { color: #00ff00; }

上面的代码中,有三个选择器a、b、c,其中c覆盖了link-color的值,为绿色。当a、b没有定义color属性时,则使用@link-color变量作为默认值。

变量的修改

在LESS中,变量是可以修改的,举个例子:

@width:10px;
#header {
  width:@width;
}
#content {
  width:@width;
  @width:20px;
  height:@width;
}

上面的代码中,定义了一个名为width的变量,值为10px。在#header作用域内使用了该变量,赋值为它的值,均为10px。

而在#content作用域内又改变了该变量值为20px,所以height属性的值使用了新的值20px。

变量的优秀特性与作用从上面几个例子中也可以看出,可以大幅度提升CSS的编写效率。

扩展(Extend)

LESS另一个重要的特性是扩展,扩展可以让我们简洁地编写出更多的样式代码。下面就来介绍一下扩展的特性。

基本语法

LESS中的扩展使用“&:extend()”语法,下面是一个示例:

.btn-blue {
  color:blue;
}

.btn-disabled {
  &:extend(.btn-blue);
  color:gray;
}

上面的代码中,我们定义了样式.btn-blue,用于表现蓝色按钮,而.btn-disabled则是样式.btn-blue的扩展。

具体来说,.btn-disabled使用&符号引用了当前选择器(btn-disabled)的父选择器(btn-blue)。再通过:extend()方法对btn-blue的样式进行了扩展。从而,获取到了网络效果与继承别人的样式功能。

输出的样式代码如下:

.btn-blue, .btn-disabled {
  color: blue;
}

.btn-disabled {
  color: gray;
}

引用不同级别的选择器

在LESS中,使用扩展也可以引用不同级别的选择器。例如:

.used-by-header{
  &:extend(header a:hover);
}

上面的代码中,我们定义了样式.used-by-header并扩展了header a:hover的样式。通过&符号,我们将同时拥有.used-by-header的样式及header a:hover的样式。

输出样式代码如下:

header a:hover, .used-by-header {
  // 对应样式
}

结论

本文中介绍了LESS语法中的变量(Variables)与扩展(Extend),其中变量使用@符号定义,可以实现变量赋值、变量使用、变量作用域、默认值、变量修改等功能。扩展则是为了更加方便地管理样式代码,自我扩展、引用父级的样式等。

同时,建议在编写CSS时使用LESS预处理器,在代码编写、编译功能、代码复用方面都会很方便。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:动态的样式语言less语法详解之变量与extend - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • css 评分效果的星星示例

    以下是关于“CSS评分效果的星星示例”的完整攻略,包含两个示例说明。 步骤一:创建HTML结构 首先,需要创建一个HTML结构。可以按照以下步骤操作: 在文本编辑器中创建一个新文件。 在文件中添加以下代码: <div class="rating"> <input type="radio" name=&…

    css 2023年5月18日
    00
  • 详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用

    下面我将详细讲解“详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用”的完整攻略。 一、CSS3 filter:drop-shadow滤镜与box-shadow区别 1. box-shadow box-shadow是CSS2.1引入的一个属性,用于在盒子周围创建一个阴影效果。box-shadow可以接受若干参数: box-…

    css 2023年6月11日
    00
  • overflow:auto的用法详解

    下面我来详细讲解“overflow:auto的用法详解”。 overflow的含义 在介绍overflow:auto前,我们先要了解overflow属性的含义。overflow属性是用于控制一个盒子中内容的溢出情况的。该属性常见的值有以下几种: overflow:visible(默认值):内容会自动溢出到盒子外,不会自动进行裁剪。 overflow:hidd…

    css 2023年6月10日
    00
  • p​h​p​c​m​s​栏目调用详解

    PHPcms栏目调用详解 如果想要在 PHPcms 网站中调用某个栏目下的文章或子栏目信息,可以使用如下代码: {php} $catid = 1;//需要调用的栏目ID $categorys = getcache(‘category_content_1′,’commons’); $catid = intval($catid); $data = array()…

    css 2023年6月9日
    00
  • Vue中使用Echarts响应式布局flexible.js+rem适配方案详解

    让我来为你详细讲解一下关于“Vue中使用Echarts响应式布局flexible.js+rem适配方案”的攻略。 简介 在Vue项目中,我们可能需要使用Echarts进行数据展示,而为了适配不同大小的屏幕,我们可以使用响应式布局flexible.js+rem适配方案来进行页面的适配。下面是具体的步骤。 步骤 1. 安装flexible.js 在项目中安装fl…

    css 2023年6月9日
    00
  • 15个开发者必须知道的chrome技巧

    15个开发者必须知道的Chrome技巧 Google Chrome是最受欢迎的浏览器之一,尤其对于开发者而言更是如此。下面是15个Chrome技巧,可以极大提高开发者的工作效率和生产力: 1. 勾选”disable cache” 在开发阶段,为了避免缓存干扰,开发者通常需要刷新页面来看效果。打开控制台,选中”disable cache”,可以禁止掉浏览器的缓…

    css 2023年6月11日
    00
  • 原生js实现模拟滚动条

    原生JS实现模拟滚动条,可以采用以下步骤: 步骤1:制作滚动条的HTML结构 在HTML中,需要设置滚动条容器和内容区域,其中内容区域可以设置固定高度,让内容超出内容区域,从而出现滚动条。 HTML结构示例代码如下: <div class="scroll-box"> <div class="scroll-con…

    css 2023年6月10日
    00
  • JS中获取 DOM 元素的绝对位置实例详解

    获取 DOM 元素的绝对位置是前端开发中常用的操作之一。本文将提供 JS 获取 DOM 元素绝对位置的详细攻略,包括两个实例。 一、获取 DOM 元素的绝对位置 在JS中,获取DOM元素的绝对位置需要以下步骤: 获取元素相对于视口的位置 使用getBoundingClientRect()方法可以获取元素相对于视口的位置信息,并返回坐标的四个属性值(left、…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部