html如何使用scss文件,scss的使用方法

CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。

通俗的说,“CSS 预处理器用一种专门的编程语言,进行 Web 页面样式设计,然后再编译成正常的 CSS 文件,以供项目使用。CSS 预处理器为 CSS 增加一些编程的特性,无需考虑浏览器的兼容性问题”,例如你可以在 CSS 中使用变量、简单的逻辑程序、函数(如右侧代码编辑器中就使用了变量$color)等等在编程语言中的一些基本特性,可以让你的 CSS 更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。

其它 CSS 预处理器语言:

CSS 预处理器技术已经非常的成熟,而且也涌现出了很多种不同的 CSS 预处理器语言,比如说:

Sass(SCSS)

LESS

Stylus

Turbine

Swithch CSS

CSS Cacheer

DT CSS

什么是 Sass?

Sass 官网上是这样描述 Sass 的:

Sass 是一门高于 CSS 的元语言,它能用来清晰地、结构化地描述文件样式,有着比普通 CSS 更加强大的功能。

Sass 能够提供更简洁、更优雅的语法,同时提供多种功能来创建可维护和管理的样式表。

Sass 前世今生:

Sass 是最早的 CSS 预处理语言,有比 LESS 更为强大的功能,不过其一开始的缩进式语法(Sass 老版本语法,后面课程会详细介绍 )并不能被大众接受,不过由于其强大的功能和 Ruby on Rails 的大力推动,还是有很多开发者选择了 Sass。

Sass 是采用 **Ruby **语言编写的一款 CSS 预处理语言,它诞生于2007年,是最大的成熟的 CSS 预处理语言。最初它是为了配合 HAML(一种缩进式 HTML 预编译器)而设计的,因此有着和 HTML 一样的缩进式风格。

为什么早期不如 LESS 普及?

虽然缩进式风格可以有效缩减代码量,强制规范编码风格,但它一方面并不为大多数程序接受,另一方面无法兼容已有的 CSS 代码。这也是 Sass 虽然出现得最早,但远不如 LESS 普及的原因。

sass、scss有什么区别呢?

Sass 和 SCSS 其实是同一种东西,我们平时都称之为 Sass,两者之间不同之处有以下两点:

1、文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名

2、语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似。

scss的引入方法

1.引入其他 .scss 文件

@import 'index.scss'

这样的话,文件在编译后,会自动把引入的文件和当前文件合并为一个.scss文件

2.引入其他 .css 文件

@import 'index.css'

和引入.scss文件不同,这样引入的.css文件在编译后不会和当前文件合并为一个.scss文件,而是继续保持为外链引入方式

3.在vs code 中scss使用方法 vs code 下载扩展名Easy sass 、sass,创建xx.scss,按下ctrl+p 点击相应的scss后缀文件,即可生成css文件并自动编译,在html里面引入css即可

scss注释方法

scss的注释有两种

1.块注释

/*

*/

2.行注释

//

scss变量

scss变量分为3种,以$符号开头,后面紧跟变量名。变量名和变量值之间用冒号:分开

1.常规变量

$key: value;

2.默认变量

$key: value!default;

默认变量是可以被覆盖的,具体覆盖方法如下

$font: 12px;

$font: 14px!default;

3.特殊变量

$fontSize:14px;

font:#{$fontSize}

4.多值变量

多值变量分为list和map两种类型,list类似于js的数组,map类似于对象

嵌套

嵌套分为两种:1.选择器嵌套(目前经常使用的)、2.属性嵌套:不经常使用

选择器嵌套

// scss 文件

ul{

li{

a{

}

}

}

//解析为 css 文件

ul{

}

ul li {

}

ul li a{

}

//scss 在属性选择器中,&表示父元素选择器

a{

&:hover{

}

}

//解析为 css 文件

a{

}

a:hover{

}

属性嵌套

// scss 文件

div{

border{

top:{

width:1px;

}

left:{

width:2px;

}

}

}

//解析为 css 文件

div{

border-top:1px;

border-left:2px;

}

混合

@mixin 调用@mixin方法需要使用 @include

// scss 普通混合

@mixin font{

line-height:30px;

color: #fff;

font-weight:900;

}

.footer{

@include font;

}

// 解析为 css 文件

.footer{

line-height: 30px;

color: #fff;

font-weight:900;

}

// scss 文件

@mixin font($size:12px){ //默认参数 默认12px

font-size: $size;

}

.footer{

@include font(16px);

}

继承

使用继承会让该选择器继承指定选择器的所有样式,要使用关键词@extend,后面跟上指定的选择器

// scss文件

.font{

font-size:14px;

height: 16px;

}

.footer{

@extend .font;

border-width: 2px;

}

//解析问 css 文件

.font, .footer{

font-size:14px;

height: 16px;

}

.footer{

border-width: 2px;

}

站位选择器

%选择器名,通过@extend 去调用,如果不调用,则文件编译后不会出现改该冗余css文件

// scss 文件

%size{

font-size: 14px;

}

%clear{

overflow: hidden;

}

div{

@extend %size;

}

只有 %dir 选择器被调用了,%clear 在编译的时候会被当做冗余文件给过滤掉,不会出现在编译后的.css文件中

函数

sass 内置了很多函数,自己也可以定义函数。以 @function 开始 @return 返回值

//scss 文件

@function fn($data){

@return $data/10 + px;

}

div{

font-size: fn(80);

}

//解析为 css文件

div{

font-size: 8px;

}

其他功能

其他功能包括以下几点

1、运算:对于(数字,颜色,变量)的四则(加减乘除)运算,运算符前后各保留一格空格

2、if判断:@if可以单独使用,也可以配合@else、@else if 一起使用

3、三目运算符:if(true,1px,2px),返回的值是1px,if(false,1px,2px),返回的值是2px

4、for循环,共有两种写法

在 Sass 的 @for 循环中有两种方式:

1、@for $i from through

2、@for $i from to

$i 表示变量

start 表示起始值

end 表示结束值

举例说明

@for $i from 1 through 3 {

.item-#{$i} { width: 2em * $i; }

}

编译出来的 CSS:

.item-1 {

width: 2em;

}

.item-2 {

width: 4em;

}

.item-3 {

width: 6em;

}

再来个 to 关键字的例子:

@for $i from 1 to 3 {

.item-#{$i} { width: 2em * $i; }

}

编译出来的 CSS:

.item-1 {

width: 2em;

}

.item-2 {

width: 4em;

}

//两种写法唯一的区别就是,through包括end这个数,to不包括end这个数。

each循环,@each

math?formula=var%20in%20%2Clist%E5%92%8Cmap%E5%88%86%E5%88%AB%E8%A1%A8%E7%A4%BA%E4%B8%BAlist%E5%92%8Cmap%E7%B1%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E3%80%82%20%40eachvar in

项目中经常用到的功能

变量

嵌套

&

函数:用于移动端页面计算rem或者vw最佳

本文参考一网上的一些scss知识,进行了一些总结和举例,那么今天你学会了嘛?! 加油!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值