Sass

基于ruby的一种将脚本解析成CSS的脚本语言。也可以说是一种预处理语言。

Sass在css的语法基础上增加了变量、嵌套、混合、继承、导入等高级功能。

使用Sass与Sass样式库(如compass)有助于更好地管理样式文件,更高效开发项目。

sass不适用花括号和分号,不被广为接受

而scss作为sass3引用的新语法,兼容了CSS3的同时,继承了Sass的强大功能,比较优秀

Sass的安装与使用:

1 安装ruby依赖:以下任选其一

2 打开VScode终端安装sass

  • gem install sass
  • gem install compass(compass是一种sass样式库)

3 编写sass代码,在指定的目录下编译成css文件

$w:50px
div
width: 50px
height: 50px
background-color: red

在指定目录下生成css文件:

格式:sass sassUrl  cssUrl

示例:sass  ./testSass/a.sass  ./testcss/a.css

4 在页面引入sass

其实是使用link标签引入sass生成的css文件

<link rel="stylesheet" href="../css/c.css">

5 效果

6 监听目录下sass变化并动态生成css文件到指定css目录

终端命令:

sass --watch  sass文件目录:css文件生成目录

示例:sass --watch ./testSass:./testCss

Scss

命令行:sass sccsPath  cssPath

例如:sass ./testScss/a.sccs  ./testcss/sa.css

标签选择器:

$_w:100px;
div{
width: $_w;
height: 100px;
background: red;
}

类选择器:

.div1{
width: $_w*3;
height: $_w*4;
background: purple;
}

&代表当前父标签,伪类选择器

$_w1: 100px;
div {
width: $_w1;
height: $_w1;
background-color: aqua;
// & is subClass : div
&:hover{
background-color: lightcoral;
}
}

伪元素选择器:

$w_1:100px;
div{
width: $_w;
height: $_w;
border: 1px solid #000;
&::after{
content: 'after element';
display: block;
width: $w_1;
height: $w_1;
background-color: aqua;
position: absolute;
left: 100px;
}
}

后代选择器:

$w_1:100px;
div{
span{
display: block;
position: absolute;
left: 100px;
background-color: pink;
}
}

子代选择器:

$w_1:100px;
div{
>span{
display: block;
position: absolute;
left: 100px;
background-color: pink;
}
}

相邻兄弟选择器: 元素1 + 兄弟元素(选中此元素,是元素1的后方相邻元素)

+只能选中当前元素后方相邻元素,只能选一个

~也表示兄弟选择器,区别是~可以选择该元素后方所有的同级元素

二者都不能选择该元素1前面的兄弟元素

$w_1: 100px;
div {
+ span {
display: block;
position: absolute;
left: $w_1;
background-color: pink;
}
}

相邻兄弟选择器:~  选择后方所有同级兄弟元素,只能是后方的

$w_1: 100px;
div {
~ span {
display: block;
position: absolute;
left: $w_1;
background-color: pink;
}
}
div{
&+.div1{
background-color: yellow;
}
}

选择元素的属性:

$_w :100px;
div{
width: $_w;
height: $_w;
background-color: red;
border: {
left: {
width: 10px;
style:solid;
color: pink;
};
};
}

导入:

@import "c";//导入同级目录下c.scss

混合器的使用:@maxin定义内容,@include在选择器里导入内容语句。如果是不同文件,在使用混合器之前,要将@maxin所在scss文件导入方可

注意:调用其他文件下的混合器,在include之前需要@import导入

@mixin setUL($_w,$_h){
width: $_w+px;
height: $_h+px;
background-color: aqua;
}
ul{
@include setUL(100,200);
}

混合器与条件判断if使用:

@mixin setP($_w:10,$_h:10){
@if $_w<50{
$_w:;
}
width:$_w+px;
height: $_h+px;
background: lightcoral;
}
p{
@include setP(1,100)
}

混合器子代继承

@import selector;

p{
>a{
@extend p;
display: block;
position: relative;
left: 100px;
background-color: lightcyan;
}
}

迭代器:

只包含start不包含end

for $var from start through(或者用to) end{

selector#{$var}{....}

}

@for $i from 1 through 6 {
.elem#{$i}{
display: inline-block;
width: 50px;
height: 50px;
background-color: lightcyan;
}
}

Sass&Scss入门 选择器 混合器 导入 条件判断 迭代的更多相关文章

  1. python入门(11)条件判断和循环

    python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...

  2. Python 入门(五)条件判断和循环

    if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age > ...

  3. 【重点】Shell入门教程:流程控制(2)条件判断的写法

    第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...

  4. 【重点】Shell入门教程:流程控制(3)条件判断式的真假值

    之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及 ...

  5. Python入门基础之条件判断、循环、dict和set

    Python之if语句 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age >= 18: print 'your age is ...

  6. Python之条件判断和循环(入门4)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6407755.html 本文出自:[Edwin博客园] Python之条件判断和循环 1. Python之if ...

  7. python条件判断if/else - python基础入门(8)

    生活中我们总是面临各种选择,选择不同,结果也不同,不管我们是否愿意,总会有结果,有的快乐,也有的痛苦…… 鲁迅说:人只要有钱,烦恼就会减掉90%以上,情商智商也会提高,更不会乱发火!(关键是:钱怎么来 ...

  8. laravel 中CSS 预编译语言 Sass 快速入门教程

    CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...

  9. sass 使用入门教程

    我们都知道,css没有变量,也没有条件语句,在开发过程中,难免有些麻烦,因此有了CSS预处理器(css preprocessor),Sass便是其中之一. 一.什么是Sass Sass (Syntac ...

随机推荐

  1. MySQL的DQL语言(查)

    MySQL的DQL语言(查) DQL:Data Query Language,数据查询语言. DQL是数据库中最核心的语言,简单查询,复杂查询,都可以做,用select语句. 1. 查询指定表的全部字 ...

  2. java课堂测试

       package 作业2; //信1805-1 杨一帆 20183608 public class ScoreInformation1 { private String stunumber; pr ...

  3. jenkins Exec exit status not zero. Status [-1]

    jenkins是使用ssh连接服务器后,如果使用grep获取进程并kill时,会jenkins Exec exit status not zero. Status [-1],解决办法:在获取进程时,使 ...

  4. Docker最全教程——从理论到实战(十四)

    本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...

  5. java的服务是每收到一个请求就新开一个线程来处理吗?tomcat呢?

    首先,服务器的实现不止有这两种方式. 先谈谈题主说的这两种服务器模型: 1.收到一个请求就处理,这个时候就不能处理新的请求,这种为阻塞 这个是单线程模型,无法并发,一个请求没处理完服务器就会阻塞,不会 ...

  6. VSCode配置Go插件和第三方拓展包

    前言 VSCode现在已经发展的相当完善,很多语言都比较推荐使用其来编写,Go语言也一样,前提你电脑已经有了Go环境和最新版本的VSCode 插件安装 直接在拓展插件中搜索Go,就可以安装Go插件 安 ...

  7. OpenCV: “vector”: 未声明的标识符和Vector不是模板

    漏写using namespace std: 会出现此错误“vector”: 未声明的标识符或者是将“vector”写成‘Vector’会出现Vector不是模板的错误:改正即可

  8. restful设计参考

    https://www.cnblogs.com/pyspark/p/8599210.html 以下查阅多处文档,思考总结: 所谓restful规范代表一种理想状态,首先对此种规范表示赞同,但应不忘实事 ...

  9. 动态规划 ---- 最长公共子序列(Longest Common Subsequence, LCS)

    分析: 完整代码: // 最长公共子序列 #include <stdio.h> #include <algorithm> using namespace std; ; char ...

  10. 在sql server中如何检测一个字符串中是否包含另一个字符串

    select CHARINDEX('456','123456')   SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法: 一.CHARINDEX函数介绍 1.函数功 ...