当前位置: 首页 > news >正文

Sass5分钟速通基础语法

前言

近来在项目中使用sass,想着学习一下,但官方写的教程太冗杂,所以就有了本文速通Sass的基础语法

Sass 是 CSS 的一种预编译语言。它提供了 变量(variables)、嵌套规则(nested rules)、 混合(mixins) 等功能,并且完全兼容 CSS 语法。Sass 能够让复杂的样式表更有条理, 并且易于在项目内部或跨项目共享设计。

使用变量

变量在Sass中的概念

  1. 使用美元符号$
  2. 注意声明的顺序
  3. 可以在一个变量中引入另一个变量
  4. 调用变量时依然使用美元符号加变量名
  5. sass并不想强迫任何人一定使用中划线或下划线,所以这两种用法相互兼容
$demo-color: skyblue;
$demo-border: 1px solid $demo-color;
$demo_border = demo-border 
.header-border{border:$demo-border;
}
// 编译后
.header-border{border: 
}

嵌套CSS规则

使用Sass可以轻松将多个内容嵌套在一起
而不用像CSS一项需要分开写

.content {article {h1 { color: #333 }p { margin-bottom: 1.4em }}aside { background-color: #EEE }
}/* 编译后 */
content article h1 { color: #333 }
content article p { margin-bottom: 1.4em }

符号&

将该符号后面的内容与其父元素直接进行连接 适用于各种伪元素


article a {color: blue;&:hover { color: red }
}
/* 编译后  */
article a {
color: gray;
}
article a:hover{color: red;
}

群组嵌套

子元素会和父元素一一配对

.container {h1, h2, h3 {margin-bottom: 8px}
}
.container h1, .container h2, .container h3 { margin-bottom: .8px }

多种选择器

可以在嵌套层内使用多种选择器

.article {~ article { border-top: 1px dashed #ccc }> section { background: #eee }dl > {dt { color: #333 }dd { color: #555 }}nav + & { margin-top: 0 }
}
// 编译后
article ~ article { border-top: 1px dashed #ccc }
article > footer { background: #eee }
article dl > dt { color: #333 }
article dl > dd { color: #555 }
nav + article { margin-top: 0 }

嵌套属性

nav {border: {style: solid;width: 1px;color: #ccc;}
}
// 编译后
nav {border-style: solid;border-width: 1px;border-color: #ccc;
}

import

  1. 导入外部的scss文件,不需要添加后缀.scss
  2. 不可以导入css文件
  3. Scss编译时,sass@import规则在生成css文件时就把相关文件导入进来。
  4. 可以导入scss文件内的局部内容 例如 import ./login/abc

!default

假如你写了一个可被他人通过@import导入的sass库文件,你可能希望导入者可以定制修改sass库文件中的某些值。
!default定义。变量被声明赋值了,那就用它声明的值,否则用!default

$fancybox-width: 400px !default;
$fancybox-width: 500px;
.fancybox {
width: $fancybox-width;
}
// 编译后
.fancybox{
width: 500px;
}

静默注释

sass另外提供了一种不同于css标准注释格式/* ... */的注释语法,即静默注释,其内容不会出现在生成的css文件中。

//普通注释编译后不会显示在css内
/*编译后会显示在css内 */       

混合器(Mixin)

是Sass中用来重用样式代码的一种方式。通过混入,我们可以将一组样式属性集合成一个可重用的代码块。

@mixin no-bullets {list-style: none;li {list-style-image: none;list-style-type: none;margin-left: 0px;}
}
ul.plain {color: #444;@include no-bullets;
}
// 编译后
ul.plain {color: #444;list-style: none;
}
ul.plain li {list-style-image: none;list-style-type: none;margin-left: 0px;
}

本文只是带你速通下基础语法 更多细节请看官网

[[Sass中文官网]]https://www.sass.hk/

http://www.lryc.cn/news/328546.html

相关文章:

  • 百度蜘蛛池平台在线发外链-原理以及搭建教程
  • Android_ android使用原生蓝牙协议_连接设备以后,给设备发送指令触发数据传输---Android原生开发工作笔记167
  • 【Java面试题】操作系统
  • SQLite数据库成为内存中数据库(三)
  • 多张图片怎么合成一张gif?快来试试这个方法
  • 爬取b站音频和视频数据,未合成一个视频
  • mysql进阶知识总结
  • 量化交易入门(二十五)什么是RSI,原理和炒股实操
  • 快速上手Spring Cloud 九:服务间通信与消息队列
  • python——遍历网卡并禁用/启用
  • 初识 51
  • 【回溯与邻里交换】纸牌三角
  • 微服务(基础篇-004-Feign)
  • Linux IRC
  • 五、Elasticsearch 集成
  • Qt 完成图片的缩放拖动
  • Linux 内核工具 iptables 配置TCP/UDP端口转发(命令参考)
  • love 2d Lua 俄罗斯方块超详细教程
  • SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索
  • 利用Redis实现简单的短信登录
  • 在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)
  • c++使用类的一些注意事项
  • C++蓝桥考级一级到十八级的考点内容整理
  • C++智能指针简单剖析
  • mysql笔记:25. docker环境中mysql主从复制、主主复制实操
  • 大数据面试专题 -- kafka
  • 深度学习入门简单实现一个神经网络
  • win11 环境配置 之 Jmeter(JDK17版本)
  • Windows下载使用nc(netcat)命令
  • istio 设置 istio-proxy sidecar 的 resource 的 limit 和 request