Sass&Scss入门 选择器 混合器 导入 条件判断 迭代
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入门 选择器 混合器 导入 条件判断 迭代的更多相关文章
- python入门(11)条件判断和循环
python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: ag ...
- Python 入门(五)条件判断和循环
if语句 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age > ...
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...
- 【重点】Shell入门教程:流程控制(3)条件判断式的真假值
之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及 ...
- Python入门基础之条件判断、循环、dict和set
Python之if语句 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age >= 18: print 'your age is ...
- Python之条件判断和循环(入门4)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407755.html 本文出自:[Edwin博客园] Python之条件判断和循环 1. Python之if ...
- python条件判断if/else - python基础入门(8)
生活中我们总是面临各种选择,选择不同,结果也不同,不管我们是否愿意,总会有结果,有的快乐,也有的痛苦…… 鲁迅说:人只要有钱,烦恼就会减掉90%以上,情商智商也会提高,更不会乱发火!(关键是:钱怎么来 ...
- laravel 中CSS 预编译语言 Sass 快速入门教程
CSS 预编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量.函数.继承等机制,因此很容易写出大量没有逻辑.难以复用和扩展的代码,在日常开发使用中,如果没 ...
- sass 使用入门教程
我们都知道,css没有变量,也没有条件语句,在开发过程中,难免有些麻烦,因此有了CSS预处理器(css preprocessor),Sass便是其中之一. 一.什么是Sass Sass (Syntac ...
随机推荐
- [CF2B] The least round way - dp
给定由非负整数组成的n×n 的正方形矩阵,你需要寻找一条路径: 以左上角为起点 每次只能向右或向下走 以右下角为终点 并且,如果我们把沿路遇到的数进行相乘,积应当是最小"round" ...
- [Arc083D/At3535] Restoring Road Network - 最短路,结论
[Arc083D/At3535] 有 \(N\) 个城市,城市与城市之间用长度为整数的无向道路连接. 现有一考古学家找到了一张 \(N×N\) 的表 \(A\) ,这张表代表了这 \(N\) 座城市两 ...
- centos 部署 aspnetMVC 网页
在Linux上运行ASP.NET网站或WebApi的传统步骤是,先安装libgdiplus,再安装mono,然后安装Jexus.在这个过程中,虽然安装Jexus是挺简便的一件事,但是安装mono就相对 ...
- vmware运行ubuntu虚拟机出现诡异的鼠标闪烁
正在开心的写着AC自动机,突然发现鼠标消失了. 习惯性地动动鼠标,却还是没有反应,停止移动鼠标后鼠标却显现了出来??(吃惊.gif 在加载软件的时候,就算鼠标停止也会闪烁(其实这个虚拟机以前加载也会闪 ...
- jsp中连接数据库及实现增删改查
导入jdbc工具包 <%@page import="asp.engine.util.PageHelper"%><%@ page import="asp. ...
- jdbc url的若干参数
参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名,用于连接数据库 无 所有版本 password 用户密码(用于连接数据库) 无 所有版本 useUnicode 是否使用Unicode ...
- CSS伪类before,after制作左右横线中间文字效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python 数组格式转换
格式转换 arr1 = [ {'name': 'jack', 'hobby': '西瓜'}, {'name': 'jack', 'hobby': '冬瓜'}, {'name': 'rose', 'ho ...
- 巨杉Tech | SparkSQL+SequoiaDB 性能调优策略
当今时代,企业数据越发膨胀.数据是企业的价值,但数据处理也是一种技术挑战.在海量数据处理的场景,即使单机计算能力再强,也无法满足日益增长的数据处理需求.所以,分布式才是解决该类问题的根本解决方案.而在 ...
- [CF]Round514
A Cashier 题意:一个人,一天的工作时长为\(L\),从第\(t_i\)时刻开始有长度为\(l_i\)的工作,他想在工作间隙抽烟,抽一根要\(a\)分钟,问能抽几根. 直接模拟. B Forg ...