动态的样式语言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中的text-shadow文字阴影效果使用

    当需要让文本在视觉上有一些立体感、深度感时,你可以尝试给文本添加阴影效果。而CSS中的text-shadow属性能够很好地实现这一效果。 一、text-shadow的基本用法 text-shadow属性主要用于设置文本的阴影效果,其基本语法如下: text-shadow: h-shadow v-shadow blur-radius color; 其中,各参数…

    css 2023年6月10日
    00
  • 动态的样式语言less语法详解之混合属性

    动态的样式语言less语法详解之混合属性 在less中,我们可以使用混合属性(Mixin)来定义一组css属性,这组属性可以被重复调用,不仅可以提高代码的复用率,还可以通过传递参数来动态生成样式,从而实现动态的样式。 定义混合属性 在less中,混合属性使用@mixin关键词定义。其语法格式如下: @mixin mixin-name { property1:…

    css 2023年6月9日
    00
  • div背景定位background设置元素的背景参数

    当我们需要将一个元素设置为背景,可以使用 CSS 的 background 属性,其中 background 属性包括许多子属性,比如背景颜色、背景图像、背景定位、背景大小等等。在这里,我们重点讲解如何使用 background 属性中的 background-position 子属性来控制背景位置。 基本语法 background-position 子属性…

    css 2023年6月9日
    00
  • 详解如何解决position:fixed固定定位偏移问题

    下面将详细讲解如何解决position:fixed固定定位偏移问题的完整攻略。 问题描述 使用position: fixed可以使元素相对于浏览器窗口固定在某一位置,不随页面滚动而移动。但是,有时候会发现position: fixed定位的元素位置偏移了预期位置,出现了莫名其妙的位移情况。 这是由于使用position: fixed时,元素生成的”新层级”比…

    css 2023年6月9日
    00
  • 详解如何使用CSS3中的结构伪类选择器和伪元素选择器

    下面我将详细讲解如何使用CSS3中的结构伪类选择器和伪元素选择器。 一、结构伪类选择器 结构伪类选择器,是指在样式表中通过元素在文档中的位置来选取元素的一种方式。在CSS3中,常见的结构伪类选择器有以下几种: 1.:first-child :first-child 选择器用于选择第一个子元素。 示例代码: <ul> <li>第一项&l…

    css 2023年6月9日
    00
  • js实现背景图自适应窗口大小

    下面是“js实现背景图自适应窗口大小”的完整攻略: 1. 确定背景图的样式 在实现背景图自适应窗口大小的过程中,我们需要先给背景图指定一些样式。最常用的方法是将背景图作为页面的一部分,利用CSS中的background属性进行样式设置。 body { background: url("bg.jpg") no-repeat center c…

    css 2023年6月9日
    00
  • CSS3制作缩略图的详细过程

    以下是“CSS3制作缩略图的详细过程”的完整攻略,包含两条示例说明: 一、CSS3制作缩略图的基本原理 CSS3实现缩略图的原理是使用CSS3的transform属性缩放图片。我们可以在HTML文档中插入一张较大的图片,然后用CSS3的transform属性将其缩小到一定的尺寸,最终达到缩略图的效果。 二、CSS3制作缩略图的步骤 1.创建HTML文档 首先…

    css 2023年6月10日
    00
  • jQuery可见性过滤选择器用法示例

    关于“jQuery可见性过滤选择器用法示例”的完整攻略,我将分为以下几部分进行讲解: 一、什么是可见性过滤选择器? 可见性过滤选择器是jQuery的选择器之一,可以筛选出页面中所有可见的元素。这些元素既要在页面上显示,还要满足以下其中之一的条件: 元素的高度(height)和宽度(width)都不等于0; 元素的display属性不为none; 元素的vis…

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