Sass语法学习

1、编译监控

自动监控把sass编译成css文件,命令行

sass --watch sass/basic.scss:css/basic.css 

在监控的sass后面,,可以为 sass 生成 css 样式指定生成的格式,默认是nested型;

--style nested|compact|compressed|expended

通过 --style nested( 嵌套 - 默认 )|compact( 紧促型 )|compressed( 压缩 )|expended( 扩展 ) 命令,可以为 sass 生成 css 样式指定生成的格式

2、合成文件

@improt

     在sass中,使用@improt可以把多个不同的sass文件合成一个css文件,在合成的sass中有两种方式,

第一种:@import "demo2","demo3","demo4";

第二种:@import "dem2";@import "demo3";@import "demo4"

第三种:在一个sass文件中,引入另一个sass文件;

3、变量

sass的变量必须是$开头,后面紧跟变量名,而变量值和变量名之间就需要使用冒号(:)分隔开(就像CSS属性设置一样),如果值后面加上!default则表示默认值。

3.1默认变量

sass的默认变量仅需要在值后面加上!default即可。

sass的默认变量一般是用来设置默认值,然后根据需求来覆盖的,覆盖的方式也很简单,只需要在默认变量之前重新声明下变量即可;

特殊变量

一般我们定义的变量都为属性值,可直接使用,但是如果变量作为属性或在某些特殊情况下等则必须要以#{$variables}形式使用。

3.2、多值变量

多值变量分为list类型和map类型,简单来说list类型有点像js中的数组,而map类型有点像js中的对象。

3.3、多值变量

多值变量分为list类型和map类型,简单来说list类型有点像js中的数组,而map类型有点像js中的对象。

3.3.1、list

list数据可通过空格,逗号或小括号分隔多个值,可用nth($var,$index)取值。关于list数据操作还有很多其他函数如length($list),join($list1,$list2,[$separator]),append($list,$value,[$separator])等,具体可参考sass Functions(搜索List Functions即可)

定义

//一维数据

$px: 5px 10px 20px 30px;

//二维数据,相当于js中的二维数组

$px: 5px 10px, 20px 30px;

$px: (5px 10px) (20px 30px);

3.3.2、map

map数据以key和value成对出现,其中value又可以是list。格式为:$map: (key1: value1, key2: value2, key3: value3);。可通过map-get($map,$key)取值。关于map数据还有很多其他函数如map-merge($map1,$map2),map-keys($map),map-values($map)等,具体可参考sass Functions(搜索Map Functions即可)

定义

$heading: (h1: 2em, h2: 1.5em, h3: 1.2em);

全局变量

在变量值后面加上!global即为全局变量。这个目前还用不上,不过将会在sass 3.4后的版本中正式应用。目前的sass变量范围饱受诟病,所以才有了这个全局变量(现在已经能用上了)。

目前变量机制

在选择器中声明的变量会覆盖外面全局声明的变量。(这也就人们常说的sass没有局部变量)(实际测试sass是有局部变量的);

4、嵌套(Nesting)

sass的嵌套包括两种:一种是选择器的嵌套;另一种是属性的嵌套。我们一般说起或用到的都是选择器的嵌套。

4.1、选择器嵌套

所谓选择器嵌套指的是在一个选择器中嵌套另一个选择器来实现继承,从而增强了sass文件的结构性和可读性。

在选择器嵌套中,可以使用&表示父元素选择器

4.2、属性嵌套

所谓属性嵌套指的是有些属性拥有同一个开始单词,如border-width,border-color都是以border开头。

/sass style

//-------------------------------

.fakeshadow {

  border: {

    style: solid;

    left: {

      width: 4px;

      color: #888;

    }

    right: {

      width: 2px;

      color: #ccc;

    }

  }

}

 

//css style

//-------------------------------

.fakeshadow {

  border-style: solid;

  border-left-width: 4px;

  border-left-color: #888;

  border-right-width: 2px;

  border-right-color: #ccc; 

}

当然这只是个属性嵌套的例子,如果实际这样使用,那估计得疯掉。

4.3、@at-root

sass3.3.0中新增的功能,用来跳出选择器嵌套的。默认所有的嵌套,继承所有上级选择器,但有了这个就可以跳出所有上级选择器。

普通跳出嵌套

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Sass 和 Less 是两种 CSS 预处理器。 Sass 是一种功能强大的 CSS 预处理器,它为 CSS 增加了变量、嵌套、混合等功能,使得 CSS 的编写更加方便和灵活。 Less 是一种轻量级的 CSS 预处理器,它为 CSS 增加了变量、嵌套、混合、函数等功能,使得 CSS 的编写更加方便和灵活。 Sass 和 Less 都是为了提高 CSS 的编写效率而设计的,但是 Sass 比 Less 功能更为强大,并且 Sass语法也更加丰富。 ### 回答2: Sass和Less是两种流行的CSS预处理器,它们的关系可以从以下几个方面来描述。 首先,它们的共同点在于都是为了解决CSS编写过程中的一些不便之处而产生的,例如,样式复用、变量和函数的使用以及嵌套等。它们都提供了一种更具可维护性和可扩展性的方式来编写CSS。 其次,它们的语法有所不同。Sass使用类似于Ruby的语法,使用缩进和冒号来表示层级嵌套和属性赋值。而Less则更接近于常规的CSS写法,使用大括号来表示层级嵌套和属性赋值。因此,对于熟悉CSS语法的开发者来说,可能更容易上手Less。 此外,在功能和特性上,Sass和Less也存在一些差异。Sass提供了更丰富的功能,例如,混合(Mixins)、继承(Inheritance)、扩展(Extension)等,使得样式的重用和扩展更加方便。而Less的功能相对较少,但其学习曲线较平缓,对于一些简单的项目可能会更适合。 最后,在使用上,Sass和Less都需要通过编译器将其转换为常规的CSS文件才能被浏览器所解析和渲染。这意味着,在项目中使用它们时需要安装相应的编译工具,并通过命令行或构建工具来进行编译。 总结来说,Sass和Less都是流行的CSS预处理器,它们都提供了一种更便捷和可维护的方式来编写CSS。它们之间的主要区别在于语法和特性上的差异,以及在一些复杂项目中的选择和适用性。 ### 回答3: Sass与Less是两种流行的CSS预处理器,它们都提供了许多便捷的方式来编写和组织CSS代码。 首先,Sass和Less都允许使用变量、嵌套规则、混合、继承等高级功能,这些特性可以大大简化CSS代码的编写,并提高代码的可维护性。 Sass与Less的主要区别在于它们的语法不同。Sass使用的是缩排式语法,即通过缩进来表示层级关系,而Less则使用的是类似于CSS的语法。对于熟悉CSS的开发者来说,学习和使用Less可能更容易上手,而对于通过其他编程语言学习的开发者来说,Sass的缩排式语法可能更容易理解和使用。 另一个不同点是编译器的选择。SassSass和SCSS两种语法,而Less只有一种语法。在选择编译器方面,Sass可以使用Dart Sass和Node Sass两个主要的编译器,而Less则使用Less.js作为其主要的编译器。 值得注意的是,Sass和Less之间存在相互转换的工具,可以将Sass语法转换为Less语法,或将Less语法转换为Sass语法。这进一步增加了它们的相互关系。 总的来说,Sass和Less都是强大的CSS预处理器,它们在功能和特性上有所不同,但都可以极大地提高CSS代码的开发效率和可维护性。根据个人的喜好和项目需求,选择使用其中之一或两者结合,都可以帮助开发者更好地管理和组织CSS代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任磊abc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值