sass语法的简易语法(适合小白)

1、sass

Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承等等特性。Sass 生成良好格式化的 CSS 代码,易于组织和维护。

SASS是对CSS3(层叠样式表)的语法的一种扩充,它可以使用巢状、混入、选择子继承等功能,可以更有效有弹性的写出Stylesheet。Sass最后还是会编译出合法的CSS让浏览可以使用,也就是说它本身的语法并不太容易让浏览器识别(虽然它和CSS的语法非常的像,几乎一样),因为它不是标准的CSS格式,在它的语法内部可以使用动态变量等,所以它更像一种极简单的动态语言。

1.1css的编译模式
*css ---普通
*sass/scss ---高效
*less ---高效
1.2sass的介绍
*来源:ruby语言
*基础的版本,后缀名为sass:没有{},只能通过缩进来实现 --可读性差、难以维护

//css
.box{witch:100px}
//.sass
.box width:100px; //听闻是这个样子的

*.scss后缀---可读性高、便于维护

html{background:red}
//scss 语法--嵌套--权重
.box{
color:blue;
color{
font-size:20px;
}
}

1.3如何使用scss
最终需要使用的是css文件,编写的scss文件
转换工具 gulp/webpack/ruby工具/编辑器插件
本人习惯gulp来处理css文件

2、sass用法

2.1安装sass模块

cnpm i gulp-sass -S       (推荐)
cnpm i gulp-sass-china -S

2.2配置处理scss文件gulp的任务

const sass = require(‘gulp-sass‘);

// 处理scss文件
gulp.task(‘scss2css‘, () => {
    gulp.src(‘scss/**/*‘)
        .pipe(concat(‘main.scss‘)) // 合并scss文件
        .pipe(sass()) // 转为css文件
        .pipe(gulp.dest(‘dist/css‘))
        .pipe(minifyCss())
        .pipe(rename(‘main.min.css‘))
        .pipe(gulp.dest(‘dist/css‘))
        .pipe(connect.reload())

// 在watch中监听
 gulp.watch(‘scss/**/*‘, [‘scss2css‘])

// 在build中构建
gulp.task(‘build‘, [‘copy-html‘, ‘copy-css‘, ‘copy-js‘, ‘copy-data‘, ‘copy-assets‘, ‘scss2css‘], () => {
    console.log(‘success‘)
})

3、学习scss语法

3.1学习scss的注释语句

*单行注释 ----推荐使用
**使用//来完成单行注释---和js类似**
**并不会编译成css**

*多行注释

使用/* */来完成注释 ---和 js类似
**先编译成css文件,然后注释掉css文件**
(//会在scss内部显示,在转义成css文件后不会显示节约空间)

3.2变量
scss给css赋予了动态语言的特性(变量、函数、条件判断、循环)
**scss对;很敏感,要写;**

3.2.1单值变量
```
// scss
$baseColor: red;
.box {
background-color: $baseColor;
}

// ==> css
.box {
background-color: red; }

3.2.2 scss做四则运算

// scss
$baseColor: red;
html {
color: $baseColor;
border: 1px solid $baseColor - 80;
background-color: $baseColor / 2;
background: $baseColor + 200;
}

css
html {
color: red;
border: 1px solid #af0000;
background-color: maroon;
background: #ffc8c8; }

3.2.3 多值变量

**多值变量使用 nth(变量名, 索引值) 索引值起始值为1 --- 类似于css中 nth-child**

**还不如写多个单值变量 --- 并不是 --- 假设需要设定一组button按钮的样式**

// scss
$baseColor: red blue;
html {
background: nth($baseColor, 1);
color: nth($baseColor, 2);
}
// ==> css
html {
background: red;
color: blue; }
```

3.2.4 复杂变量 - 循环

// scss
$list: (top 30px) (right 30px) (bottom 10px) (left 40px);
@each $name, $value in $list{
.box-#{$name} {
width: $value;
}
}

// ==>
.box-top {
width: 30px; }

.box-right {
width: 30px; }

.box-bottom {
width: 10px; }

.box-left {
width: 40px; }

$headers: (h1: 32px, h2: 20px, h3: 14px);
@each $key, $value in $headers {
#{$key} {
font-size: $value;
}
}

h1 {
font-size: 32px; }

h2 {
font-size: 20px; }

h3 {
font-size: 14px; }

3.3 scss嵌套

// scss
html {
font-size: 12px;
body {
background: #f66;
header {
width: 100%;
height: 40px;
nav {
background-color: #00f;
}
}
section {
width: 100%;
min-height: 500px;
}
footer {
width: 100%;
height: 60px;
}
}
}

html {
font-size: 12px; }
html body {
background: #f66; }
html body header {
width: 100%;
height: 40px; }
html body header nav {
background-color: #00f; }
html body section {
width: 100%;
min-height: 500px; }
html body footer {
width: 100%;
height: 60px; }
```

3.4 mixin 混入

* 无参数

scss
@mixin marginCenter {
margin: 0 auto;
}

.container {
width: 1000px;
min-height: 600px;
// margin: 0 auto;
@include marginCenter();
}

// ==> css
.container {
width: 1000px;
min-height: 600px;
margin: 0 auto; }

* 有参数

// scss
@mixin margin($top, $right, $bottom, $left) {
margin: $top $right $bottom $left;
}
.container {
@include margin(10px, 10px, 20px, 20px);
}

// ==> css
.container {
margin: 10px 10px 20px 20px; }

* 解决兼容问题

scss
@mixin flexbox {
display:-webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}

.nav {
ul {
@include flexbox();
li{
color: #333;
}
}
}
footer {
ul {
@include flexbox();
li{
font-size: 14px;
}
}
}

==> css
.nav ul {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex; }
.nav ul li {
color: #333; }

footer ul {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex; }
footer ul li {
font-size: 14px; }

* 混入 默认参数

// scss
@mixin opacity($val: 1) {
opacity: $val;
}
.box {
@include opacity();
}
.box1 {
@include opacity(0.5);
}
// ==> css
.box {
opacity: 1; }

.box1 {
opacity: 0.5; }

可以简单先介绍到这里。可以关注后续会继续补充

原文地址:https://www.cnblogs.com/goodboyzjm/p/11663571.html

时间: 2024-08-03 22:52:33

sass语法的简易语法(适合小白)的相关文章

Markdown简易语法说明

*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin: 15px 0; } /* HEAD

项目实战!爬取5万篇好奇心日报文章,适合小白练手的实战案例!

Python的知识很多,基本的入门就有很多东西要学,还有各种合样的库要学习.很多同学学了一段时间,进展很慢,学了前面忘了后面!要么就是揠苗助长找一些特别难的例子,结果太难了,失去信心,完全没有成就感! 个人建议是学Python应该趣味性结合,如果跟自己平时的工作相关的应用更好,如果没有,找到合适的例子,通俗有趣的例子非常重要.今天我就给大家介绍一个非常简单的爬虫小例子,来综合练习,非常不错! 要点: 练习基本的入门知识 练习Python类的使用 练习爬虫的最简单使用 练习最简单的数据库的使用 0

超适合小白的python新手教程

python介绍 这是我们专门为 小白 量身打造的Python新手教程,具有如下特点: 全视频,手把手,零起点,项目实例,基于船新的Python 版本. Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合网页编程的JavaScript语言等等. 那Python是一种什么语言? 首先,我们普及一下编程语言的基础知识.编程语言就是和计算机交流的语言,目的是让计算机完成各项任务,例如打开一个视频,从网页上抓取特定的信息.不同的

OC语法3——点语法,self关键字

点语法:   为了给程序员提供便捷,OC中也引入了点语法.不过它和Java中点语法的意义是完全不同的. 在Java中无论调用任何方法,还是访问public类型的成员变量都是用点语法(.号). 而在OC中只规定点语法只可以替代set和get方法. 例如.stu.age = 23;它的本质是[stu setAge : 23];  即,为stu的age属性赋值为23. int myAge = stu.age; 它的本质是[stu age]; 即,获取stu的age属性并赋值给MyAge. 注意: OC

LINQ:开始使用 LINQ(五)- LINQ 中的查询语法和方法语法

开始使用 LINQ(五)- LINQ 中的查询语法和方法语法 在表示语言集成查询 (LINQ) 使用 LINQ 性查询语法,文档中的多数查询编写.但是,编译代码时,必须将查询语法转换为方法,这就需要 .NET 公共语言运行时 (CLR).这些方法调用标准查询运算符的名称类似 Where.Select.GroupBy.Join.Max和 Average.可以调用这些方法直接使用方法语法而不是查询语法. 查询语法和方法语法语义相同,但是,许多人员发现查询语法更简单.更易于阅读.某些查询必须表示为方法

OC中语法糖,最新语法总结

<span style="font-size:24px;"> 1.方法与顺序无关 2.枚举绑定数据类型 enum { ObjectiveC, Java, Ruby, Python, Erlang }; typedef NSUInteger Language; 3. 属性不用写@synthesize 4.语法简化 4.1 NSNumber NSNumber *value; value = @12345; value = @123.45f; value = @123.45; v

shell编程之if语法、case语法、while语句、until语句、for语句、select语句

主要介绍shell基本语句的语法 if语句语法1 单分支结构 (如果,那么)if <条件测试> ;then 指令;fi 或者如下:if <条件测试>? then?  指令fi 2 双分支结构(如果,那么,否则...) if <条件表达式>? then ? 指令else ? 指令fi 多分支结构(如果,那么,否则如果,那么,否则...) if <条件表达式>? then ? 指令elif <条件表达式>? then?  指令else ? 指令fi其

适合小白的游戏开发学习路线图

做游戏开发要学什么?适合小白的游戏开发学习路线图分享给正在自学,或者是准备自学的你.如果你想日后在这个行业里成为真正的高手,那就真的需要去下一番苦心,不管你大学里数学学得好不好,你挂了多少门,一定要学好3D数学,这是制作3D游戏的基础,当然Unity为你封装好了大量的三维变换,但知其然,更要知其所以然.我知道如果你的数学不是很好,这会很痛苦.但请坚信,这真的很重要,推荐一本入门的书<3D数学基础:图形与游戏开发>,很惭愧我至今也没都看完.再就是图形渲染方面,你要去了解计算机整个将3D物体渲染到

非常适合小白的 Asyncio 教程

非常适合小白的 Asyncio 教程 原文:https://segmentfault.com/a/1190000008814676 所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知. Asyncio 是并发(concurrency)的一种方式.对 Python 来说,并发还可以通过线程(threading)和多进程(multiprocessing)来实现. Asyncio 并不能带来真正的并行(parallelism).当然,因为 G