scss的基本语法的使用

2023-11-19

scss

1、声明变量

[声明变量符 变量名称 : 变量值] eg: $width300:300px;

2、变量调用

$width300:300px; //声明
.main{
  width:$width300; //调用
}

3、局部变量和全局变量

定义在局部的变量不会影响其他的元素,注意:在局部变量后面加上!global,在其声明的下面的代码才能访问到。

$width300:300px; //声明全局变量
.main{
  width:$width300; //调用全局变量
}
//----------------
em{
  $colorRed:red; //声明局部变量
  a{
    color:$colorRed; //调用局部变量
  }
}
//----.box中声明了global变量,那么,在其下面的bottom样式中能够调用$colorRed,top中不能调用$colorRed2----------
span{
  .top{
    color:#fff
  }
  .box{
    $colorRed2:red !global; //声明局部变量
    a{
      color:$colorRed2; //调用局部变量
    }
  }

  .bottom{
    color:$colorRed2;
  }
}

4、嵌套

Sass 提供了选择器嵌套功能,但这也并不意味着你在 Sass 中的嵌套是无节制的,因为你嵌套的层级越深,编译出来的 CSS 代码的选择器层级将越深,不易维护。

4.1. 选择器嵌套

Sass 中还提供属性嵌套,CSS 有一些属性前缀相同,只是后缀不一样,比如:border-top/border-right,与这个类似的还有 margin、padding、font 等属性

nav {
  a {
    color: red;

    header & {
      color:green;
    }
  }  
}

4.2. 属性嵌套

嵌套属性的规则是这样的:把属性名从中划线-的地方断开,在根属性后边添加一个冒号:,紧跟一个{ }块,把子属性部分写在这个{ }块中。

.box {
    border-top: 1px solid red;
    border-bottom: 1px solid green;
}
//-------------------
.box {
  border: {
  top: 1px solid red;
  bottom: 1px solid green;
  }
}
//  对于属性的缩写形式,你甚至可以像下边这样来嵌套,指明例外规则
nav {
  border: 1px solid #ccc {
  left: 0px;
  right: 0px;
  }
}

4.3. 伪类嵌套

借助 & ,“&”——父选择器: 符号通常用来代替父元素选择器。

span{
  color:red;
}
span:hover{
  color:green;
}
//------------------
span{
  color:red;
  &:hover{
    color:green;
  }
}

5、混合器

如果页面中有几处样式类似,比如字体颜色,在scss中就可以使用变量来统一处理。

5.1. 声明

使用 “@mixin” 声明一个混合器。

5.1.1 不带参数的混合器

@mixin border-radius{
  -webkit-border-radius: 5px;
  border-radius: 5px;
}

5.1.2 带参数的混合器

@mixin border-radius($radius:5px){
  -webkit-border-radius: $radius;
  border-radius: $radius;
}

5.2. 调用

在 Sass 中通过 @mixin 关键词声明了一个混合器,其匹配了一个关键词“ @include ”来调用声明好的混合器。

// 声明
@mixin border-radius{
  -webkit-border-radius: 3px;
  border-radius: 3px;
}
//调用
button {
  @include border-radius;
}

5.3. 混合器的参数

5.3.1 传一个不带值的参数

// 传一个不带值的参数时,则会在调用的时候可以给这个混合器传一个参数值
@mixin border-radius($radius){
  -webkit-border-radius: $radius;
  border-radius: $radius;
}
.box {
  @include border-radius(3px);
}

5.3.2 传一个带值的参数

给参数赋值了一个初始值。

@mixin border-radius($radius:3px){
  -webkit-border-radius: $radius;
  border-radius: $radius;
}
// 如果其中一个地方不一样则可以指定给混合器传值
.box {
  @include border-radius(10px);
}

5.3.3 混合器的不足

生成冗余的代码块。

6、继承

scss中是通过关键词 “@extends” 来继承已存在的类样式。

.btn {
  border: 1px solid #ccc;
  padding: 6px 10px;
  font-size: 14px;
}

.btn-primary {
  background-color: #f36;
  color: #fff;
  @extend .btn;
}

.btn-second {
  background-color: orange;
  color: #fff;
  @extend .btn;
}

7、占位符 %placeholder

通过 @extend 调用的占位符,编译出来的代码会将相同的代码合并在一起,提高编译速度,优化网站。

// SCSS
%mt5 {
  margin-top: 5px;
}
%pt5{
  padding-top: 5px;
}

.btn {
  @extend %mt5;
  @extend %pt5;
}

.block {
  @extend %mt5;

  span {
    @extend %pt5;
  }
}

8、计算、

在css中通常使用calc()来进行数值计算,在scss中则不用。不仅可以对数值进行计算,颜色也可以。

  width: 100px + 100px + 100px; //加法
  width: 100px - 100px + 100px; //减法
  width: 100px * 100 //乘法,注scss的乘法和除法是带单位的
  width: (100px/3)  //注意这里需要带括号,如果不带括号会当场分割数值
  width: $width / 3 //也可以不带括号,但是里面计算的一定要有声明的变量,因为这个语法css不认识,那么就会被解析成SCSS
  width: 100 % 3px //SCSS也支持取模运算

  $red:#ff0000;
  p{
    color : $red + #888; //#ff8888
  }
  div{
    color :$red + #111;  //#ff1111
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scss的基本语法的使用 的相关文章

  • 如何以编程方式启动 Vuetify 对话框并等待响应

    我对 Vue js 和 Vuetify 相当陌生 使用 AngularJS 好几年了 但我们公司正在转向 Vue js 我想要完成的是 当用户单击 登录 按钮时 它会执行一些检查 即用户名不能为空 并启动 Vuetify 对话框来提醒用户
  • HTML标签阻止HTML标签被执行?

    我想问超级用户的基本问题 但我认为这是一个编程问题 我刚刚开始学习 HTML 所以请耐心等待 如何防止程序解释 HTML 标签 语法 例如 我想写一个这样的闪存卡 html 代码为 lt is lt 我想要一个适用于任何或大多数语法的解决方
  • Li向左浮动,长度动态:最后一行无边框底部

    情况如下 https jsfiddle net rpepf9xs https jsfiddle net rpepf9xs 我想用选择器 nth last child 删除边框底部 但是 如果列表中只有8个 li 则会出现如下错误 ul di
  • javascript中怪异模式的元素宽度?

    我一直在浏览所有流行的 js 库 但我找不到一个具有 DOM 元素宽度函数的库 该函数实际上可以解释 Internet Explorer 中的怪异模式 问题是 当启用怪异模式时 填充和边框不会计入宽度 据我所知 当省略 doctype 或将
  • 您能否确定 CSS 文件的范围,使其仅适用于给定元素的后代?

    给定一个 css 文件 有没有办法限制整个文件的范围 使其仅适用于给定元素内的元素 例如给定 div span class some element span div 有没有一种方法可以将整个 css 文件的范围应用于 容器 中的所有元素
  • 有 CSS 父选择器吗?

    我该如何选择 li 元素是锚元素的直接父元素 举个例子 我的 CSS 应该是这样的 li lt a active property value 显然 有多种方法可以使用 JavaScript 实现此目的 但我希望 CSS Level 2 本
  • 导航栏折叠在 Bootstrap 中不起作用

    Bhanu pratap 解决了这个问题 在这个问题的末尾检查一下 我一直在遵循旧的路线来构建导航栏折叠 三明治 问题是课程中的页面顶部似乎有一个黑条 并且缩小页面时会出现导航栏 对我来说 我只需在左侧找到一个按钮 另外 当我缩小页面时 我
  • 如何仅使用CSS设置某个角的边框半径

    如上所示 我可以只给顶部部分而不给底部提供半径 或者有时给底部而不是顶部提供半径吗 有没有办法只给一个角提供边界半径 Like border radius top left top right bottom right bottom lef
  • javascript中输入类型时间的值

    我有这个html
  • 如何在 Java 中使用 HTML 解析器和 Apache Tika 来提取所有 HTML 标签?

    我下载了 tika core 和 tika parser 库 但找不到将 HTML 文档解析为字符串的示例代码 我必须删除网页源的所有 html 标签 我能做些什么 如何使用 Apache Tika 进行编码 您想要 html 文件的纯文本
  • Thymeleaf 下拉菜单中的默认值

    我正在使用 Spring MVC 和 thymeleaf 构建一个 Web 应用程序 我的下拉菜单是这样的并且它按预期工作
  • 使用php表单更改href链接

    我正在制作一个带有搜索栏的网站 我想让搜索栏在 搜索 并显示结果后具有交互性 所以我希望 href 根据正在使用的 Id 进行更改 例如 有人搜索 Pinecones 如果它在数据库中 它将有一个 ID 在本例中是 4 一旦他们搜索它 它就
  • 如何在表格的 tbody/thead 部分周围创建边框?

    我正在尝试创建一个包含表格数据的页面 该页面必须显示为多个表格 然而 我有两个相互冲突的要求需要解决 每个表格周围都必须有边框 每个表格的列宽必须能够根据内容重新调整大小 但是 所有表中的列宽必须一致 即列的大小基于所有表中该列中最大的单元
  • 显示表中的记录

    我的第一个 PHP 项目遇到了一些麻烦 我试图从 MySQL 数据库 有 3 条记录 获取数据并将其显示在表格中 问题是它似乎只显示记录 2 和 3 它跳过了第 1 条记录 请参阅我的代码并在下面显示 if mysqli connect e
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • 水平平滑滚动 100px

    Heyjo problem 一周以来我一直在寻找 javascript 或 jQuery 代码 以便在我的网站上实现滚动按钮 我失败的那一刻是按钮应该多次工作的时候 他的任务不是滚动到专用元素 而是应该向左滚动 例如 100px 此外 滚动
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • 删除

    好的 我有一个小菜单栏 菜单内的三个元素还有更多的子菜单 但是菜单栏中的元素之间有不必要的间距 而且我创建的子菜单有不必要的背景宽度 我在代码中将其涂成白色以使读者理解 由于这种不必要的宽度 即使鼠标悬停在不可见的宽度上 在本例中为白色 本
  • 为什么我的图像下方有空间? [复制]

    这个问题在这里已经有答案了 图像在下面获得了神秘的空白空间 即使padding 0 margin 0被应用 示范 http jsfiddle net cLETP 红色边框应该包围图像 但底部有空间 造成这种情况的原因是什么 如何删除该空间
  • 从顶部开始在同一水平线上显示同一行中的两个 div

    这是我的代码 floating box display inline block width 150px margin 10px border 3px solid 73AD21 after box border 3px solid red

随机推荐

  • QHash & QMap 的顺序问题 (***)

    QT关联容器QMap QHash的Key值自动排序问题 对QMap中的key进行自定义排序 如何取消QMap自动排序 让QMap按照插入的顺序排列 通过插入顺序循环QHash QMap QHash插入后的显示顺序以及记录插入顺序的数据结构
  • OpenGL图形管线和坐标变换

    1 OpenGL 渲染管线 OpenGL渲染管线分为两大部分 模型观测变换 ModelView Transformation 和投影变换 Projection Transformation 做个比喻 计算机图形开发就像我们照相一样 目的就是
  • 最实用的chrome插件

    前言 说真的第一次看到CSDN这个插件的时候并没有感觉特别吸引我的地方 因为我个人安装了好多的插件 第二次看到CSDN插件还是因为广告上说的参赛拿奖 其实我的动机也不是很纯o o 插件地址 CSDN插件 走起 对于谷歌的插件安装方式很多 可
  • springboot——集成elasticsearch进行搜索并高亮关键词

    目录 1 elasticsearch概述 3 springboot集成elasticsearch 4 实现搜索并高亮关键词 1 elasticsearch概述 1 是什么 Elasticsearch 是位于 Elastic Stack 核心
  • C51单片机数码管动态显示

    数码管作为最廉价的输出设备 在各种自动化设备中有很大的应用 最简单普通的显示方式为动态刷新显示 称为假动态显示 即通过分时扫描每一位 利于人眼的视觉停留现象 造成一种静态显示的效果 如下图所示 C51单片机由于运行速度很慢 在高刷新频率下
  • ASCII与C简单数据类型

    ascII与简单数据类型 1 打印出所有ascII表中的字符 思路 ascII码值与阿拉伯数字0 127对应 故可以先将其以数字形式存在数组空间或内存空间中 然后用 c一个一个打印出来即可 本次采用数组进行存储 代码 include
  • 2013年8月11日星期日(7。15 色彩动画)

    距离上次封装有一个月了 PHYSX知道怎么弄朝向和位置了 我决定业余时间可以弄弄小游戏 这个例子是通过改变调色板ID来达到颜色的亮灭 这个肯定过时了 不过思路还是不错的 各个常量和结构体类型 define BLINKER ADD 0 add
  • 探索第三方 API 服务的身份验证方法:优点和缺点

    探索第三方 API 服务的身份验证方法 优点和缺点 赛斯 法特的相片 赛斯法特 2023 年 3 月 18 日 4分钟阅读 嗨 大家好 我们中的大多数人已经使用多个第三方 API 服务来实现您的业务逻辑 是的 他们中的大多数都有不同的身份验
  • mongodb安装(1)

    目录 一 mongodb安装 1mongodb介绍 2下载mongodb 3安装mongodb 4 启动mongodb 5 安装studio3t 一 mongodb安装 1mongodb介绍 2下载mongodb MongoDB 提供了可用
  • eclipse 环境配置第一个webapp的发布 及jsp代码的执行

    GBK 所有中文操作系统默认的编码 UTF 8 支持识别各个国家的字符 但这样 之前的代码如果用的是GBK编码 则会变成乱码 我们可以建一个新的工作区 新建一个文件夹 存放workspace 选择workspace位置后 等待重启 以后再建
  • 手把手教你进行APP数据埋点

    经过大半年的努力 产品终于开始趋向稳定 之前的版本一直在探索 需求经常改动 没时间系统进行埋点 随着产品的稳定以及工作的深入 越发认识到数据的重要性 所以开始着手数据埋点相关事项 这次亲历了产品 APP 从零开始进行数据埋点的过程 分享出来
  • 【数据分析与可视化】Seaborn库简介及风格设置详解(图文解释 超详细)

    需要源码和PPT请点赞关注收藏后评论区留言私信 一 Seaborn简介 Matplotlib绘图基本模仿MATLAB绘图库 其绘图风格和MATLAB类似 由于MATLAB绘图风格偏古典 因此 Python开源社区开发了Seaborn绘图模块
  • 神经网络权重是什么意思,神经网络权值和阈值

    BP神经网络中初始权值和阈值的设定 1 首先需要了解BP神经网络是一种多层前馈网络 2 以看一下在matlab中BP神经网络的训练函数 有梯度下降法traingd 弹性梯度下降法trainrp 自适应lr梯度下降法traingda等 3 在
  • 深度学习-算法的鲁棒性与稳定性解析

    文章与视频资源多平台更新 微信公众号 知乎 B站 头条 AI研习图书馆 深度学习 大数据 IT编程知识与资源分享 欢迎关注 共同进步 1 引言 鲁棒 的英文是robustness 中文译为强健 稳健 所以说算法的鲁棒性直白点说就是健壮的 稳
  • 【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)

    欢迎关注博客主页 https blog csdn net u013411339 本文由 王知无 原创 首发于 CSDN博客 本文首发CSDN论坛 未经过官方和本人允许 严禁转载 欢迎点赞 收藏 留言 欢迎留言交流 声明 本篇博客在我之前发表
  • Kong网关 入门安装与配置

    简介 Kong 是由Mashape公司开源的 基于Nginx的API gateway 特点 可扩展 支持分布式 模块化 功能 授权 日志 ip限制 限流 api 统计分析 存在商业插件Galileo等 也可自己研发 请求转化 跨域 CORS
  • java.lang.StringIndexOutOfBoundsException: String index out of range: 22

    报错 in thread main java lang StringIndexOutOfBoundsException String index out of range 22 原因 for int i 0 i lt 255 i 输入的字符
  • element ui的el-tree多选树(复选框)父子节点关联不关联的问题,选中当前节点,他的子节点和父节点是否被选中,非常详细

    element ui的el tree多选树 复选框 父子节点关联不关联的问题 选中当前节点 他的子节点和父节点是否被选中 非常详细 属性check strictly 官方文档提供属性check strictly 在显示复选框的情况下 是否严
  • SQL Server2012 安装方法详解

    欢迎大家关注我的公众号 添加我为好友 首先要找到自己下载好的安装包 并且保持网络畅通 最近有不少细心的小伙伴反应安装包有问题 我这里进行了一下更新 链接 https pan baidu com s 1bB WS zmHy ow34mU ET
  • scss的基本语法的使用

    scss 1 声明变量 声明变量符 变量名称 变量值 eg width300 300px 2 变量调用 width300 300px 声明 main width width300 调用 3 局部变量和全局变量 定义在局部的变量不会影响其他的