sass学习笔记(1.0)

news2024/11/28 8:32:51

1.使用变量

sass可以像声明变量那样进行使用,这样同样的样式,就可以使用相同的变量来提高复用。

语法为:$ 变量名

在界面中也可以正常的显示

 当然了,变量之间也可以相互引用,比如下面

div{
    $_color: #d45387;
    $BgColor: $_color;
    background-color: $BgColor;
}

在sass中,变量名使用中划线和下划线是一样的

 2.嵌套CSS规则

这也是sass最常用的用法之一,就是不用像以前那样逐级书写css样式了,如果存在层级关系,直接嵌套就可以。

div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
    h1{
        color:$color;
    }
}

以上的嵌套写法等价于

div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
   
}
div h1{
        color:$color;
    }

3.使用父选择器标识符&

多用于伪类选择器,比如:hover,这样需要将制定的元素再写一遍,我们就可以直接使用&替代即可

div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
    height: 200px;
    width: 200px;
    h1{
        color:$color;
    }
    &:hover{
        h1{
            color:blue;
        }
    }
}

这里的&:hover就是div:hover

 

4.群组选择器的嵌套

 <ul>
    <li class="liOne">1</li>
    <li class="liTwo">2</li>
    <li>3</li>
    <li class="liThree">4</li>
    <li>5</li>
 </ul>





<style scoped lang="scss">
div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
    height: 200px;
    width: 200px;
    h1{
        color:$color;
    }
    &:hover{
        h1{
            color:blue;
        }
    }
}
ul{
    .liOne,.liTwo,.liThree{
        color: aqua;
    }
}

</style>

这样ul下,指定的三个类名下的设置为统一样式

 4.子组合选择器和同层组合选择器:>,+,~

<div class="outBox">
    <div class="divOne">1</div>
    <div class="divTwo">2</div>
    <div>
        <div class="divOne">3</div>
    </div>
    <div class="divThree">
        <div class="divOne">4</div>
    </div>
    <div>5</div>
 </div>


.outBox  .divOne{
    color: red;
}

如果直接这样设置样式的话,.outBox下的所有.divOne都会变成红色

 

如果使用子组合选择器>

.outBox > .divOne{
    color: red;
}

只会在直系后代中设置对应的样式

 同层相邻组合选择器+

<template>
 <div>
  <h1>我是首页</h1>
 </div>
 <div class="outBox">
    <div class="divOne">1</div>
    <div class="divTwo">2</div>
    <div>
        <div class="divOne">3</div>
    </div>
    <div class="divTwo">
        <div class="divOne">4</div>
    </div>
    <div>5</div>
 </div>
</template>

<script setup lang="ts">
import {ref,reactive} from 'vue'

</script>

<style scoped lang="scss">
div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
    // height: 200px;
    // width: 200px;
    h1{
        color:$color;
    }
    &:hover{
        h1{
            color:blue;
        }
    }
}
// ul{
//     .liOne,.liTwo,.liThree{
//         color: aqua;
//     }
// }
.outBox{
    .divOne + .divTwo{
        color: purple;
        font-size: 26px;
        font-weight: 800;
    }
   
}
</style>

 指divOne后面紧跟的兄弟节点divTwo才会进行样式设置,而同样类名的divTwo的4并没有进行样式设置。

如果想要4也设置同样的样式,我们可以使用全体组合选择器~

.outBox{
    .divOne ~ .divTwo{
        color: purple;
        font-size: 26px;
        font-weight: 800;
    }
   
}

5.注释

sass的注释和普通css的注释也是不一样的,类似于js的注释,我们直接在vscode中使用快捷键ctrl+/就可以自定生成sass的注释

// ul{
//     .liOne,.liTwo,.liThree{
//         color: aqua;
//     }
// }

而普通的css的注释和HTML的注释类似: 

/* 这是一个CSS注释 */

/*
这是一个
多行的
CSS注释

*/

6.嵌套属性 

在sass中,属性同样也可以嵌套,比如border系列的样式,我们就可以简写成border:然后书写嵌套属性即可。

.outBox{
    height: 100vh;
    .divOne ~ .divTwo{
        width: 50px;
        height: 50px;
        text-align: center;
        line-height:50px;
        background-color: bisque;
        border:{
            radius:50%;
            color: #ccc;
            width:2px
        }
        // color: purple;
        // font-size: 26px;
        // font-weight: 800;
    }
   
}

7.导入sass文件

使用@import导入规则,它在生成css文件是就把相关文件导入进来,在导入sass时,不需要指定导入文件的全名,就是可以省略后缀。

8.默认变量值

在sass中,类似与函数的默认参数,而sass样式也可以通过使用!default来设置默认的样式。比如:

#BGcolor:red  !default;

意思就是如果你自己定义了一个局部变量BGcolor,就是你可以使用自己定义的样式,如果没有改局部变量,那么当你使用这个样式时,默认就是红色。【通俗的将,你自己有,就用你自己的,你若是没有,就用我的】

9.嵌套导入

<template>
 <div>
  <h1>我是首页</h1>
 </div>
 <div class="outBox">
    <div class="divOne">1</div>
    <div class="divTwo">2</div>
    <div>
        <div class="divOne">3</div>
    </div>
    <div class="divTwo">
        <div >4</div>
    </div>
    <div class="bgc">5</div>
 </div>
</template>

<script setup lang="ts">
import {ref,reactive} from 'vue'

</script>

<style scoped lang="scss">
div{
    $Pink_color: pink;
    $BgColor: $Pink-color;
    background-color: $BgColor;
    // height: 200px;
    // width: 200px;
    h1{
        color:$color;
    }
    &:hover{
        h1{
            color:blue;
        }
    }
}
// ul{
//     .liOne,.liTwo,.liThree{
//         color: aqua;
//     }
// }
.outBox{
    @import '../../styles/local-style';
    height: 100vh;
    .divOne ~ .divTwo{
        width: 50px;
        height: 50px;
        text-align: center;
        line-height:50px;
        background-color: bisque;
        border:{
            radius:50%;
            color: #ccc;
            width:2px
        }
        // color: purple;
        // font-size: 26px;
        // font-weight: 800;
    }
   
}
</style>

 定义的_local_style.scss

可以看到,对应5的样式已经设置上去了。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2201255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kibana 删除es指定数据,不是删除索引

1 查询条件查询出满足条件的数据 GET /order_header_idx_202410/_search {"from":0,"size":10,"query":{"bool":{"filter":[{"term":{"oh_tenantId":{"value":"0211000001",&…

NeuVector部署、使用与原理分析

文章目录 前言1、概述2、安装与使用2.1、安装方法2.1.1、部署NeuVector前的准备工作2.1.1.1 扩容系统交换空间2.1.1.2 Kubernetes单机部署2.1.1.2.1 部署Docker2.1.1.2.2 部署Kubectl2.1.1.2.3 部署Minikube 2.1.1.3 Helm部署 2.1.2、使用Helm部署NeuVector 2.2、使用方法2.2.1…

YOLOv5改进——添加SimAM注意力机制

目录 一、SimAM注意力机制核心代码 二、修改common.py 三、修改yolo.py ​三、建立yaml文件 四、验证 一、SimAM注意力机制核心代码 在models文件夹下新建modules文件夹&#xff0c;在modules文件夹下新建一个py文件。这里为simam.py。复制以下代码到文件里面。 import…

Mysql中创建用户并设置任何主机连接

Mysql中创建用户并设置任何主机连接 文章目录 Mysql中创建用户并设置任何主机连接背景解决方式 背景 在linux上安装mysql,默认用户是root,但是用navicat连接不了,必须要用ssh隧道连接,现在想用任何主机只要输入账号密码之后就可以连接 解决方式 #创建一个指定用户和IP链接的用…

Java:数据结构-ArrayList和顺序表(2)

一 ArrayList的使用 1.ArrayList的构造方法 第一种&#xff08;指定容量的构造方法&#xff09; 创建一个空的ArrayList&#xff0c;指定容量为initialCapacity。 public ArrayList(int initialCapacity) {if (initialCapacity > 0) {this.elementData new Object[init…

鸿蒙微内核IPC数据结构

鸿蒙内核IPC数据结构 内核为任务之间的通信提供了多种机制&#xff0c;包含队列、事件、互斥锁、信号量等&#xff0c;其中还有Futex(用户态快速锁)&#xff0c;rwLock(读写锁)&#xff0c;signal(信号)。 队列 队列又称为消息队列&#xff0c;是一种常用于任务间通信的数据…

《ASP.NET Web Forms 实现短视频点赞功能的完整示例》

在现代Web开发中&#xff0c;实现一个动态的点赞功能是非常常见的需求。本文将详细介绍如何在ASP.NET Web Forms中实现一个视频点赞功能&#xff0c;包括前端页面的展示和后端的处理逻辑。我们将确保点赞数量能够实时更新&#xff0c;而无需刷新整个页面。 技术栈 ASP.NET We…

Java进阶之路—单元测试Juint(完整详解Juint使用以及Juin注解,附有代码+案例)

文章目录 单元测试Juint35.1 概述35.2 用法手动导包正确的使用方式 35.3 Junit常用注解 单元测试Juint 35.1 概述 针对最小功能单元编写测试代码&#xff0c;Java中最小功能单元是方法&#xff0c;因此单元测试就是针对Java方法的测试。 对部分代码进行测试。 35.2 用法 &…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的新能源停车场管理系统

开题报告 随着新能源汽车的快速普及和普及&#xff0c;新能源车辆的停车和充电需求也越来越大。传统的停车场管理系统无法满足这些新能源车辆的特殊需求&#xff0c;如充电桩分配、充电桩使用情况的实时监测等。因此&#xff0c;开发一种基于 Java 的新能源停车场管理系统成为…

计算机视觉之YOLO算法基本原理和应用场景

YOLO算法基本原理 整体流程 YOLO 将目标检测问题转化为一个回归问题。它将输入图像划分成多个网格单元&#xff0c;每个网格单元负责预测中心点落在该网格内的目标。对于每个网格单元&#xff0c;YOLO 预测多个边界框以及这些边界框中包含目标的类别概率。边界框通常由中心点坐…

Spring Cloud Stream 3.x+kafka 3.8整合

Spring Cloud Stream 3.xkafka 3.8整合&#xff0c;文末有完整项目链接 前言一、如何看官方文档(有深入了解需求的人)二、kafka的安装tar包安装docker安装 三、代码中集成创建一个测试topic&#xff1a;testproducer代码producer配置&#xff08;配置的格式&#xff0c;上篇文章…

PHP中的HTTP请求:简化你的网络通信

在当今的网络应用开发中&#xff0c;PHP作为一种流行的服务器端脚本语言&#xff0c;经常需要与外部服务进行通信。这通常涉及到发送HTTP请求来获取或提交数据。幸运的是&#xff0c;PHP提供了多种方式来简化HTTP请求的过程&#xff0c;使得网络通信变得轻而易举。 PHP中的HTTP…

stm32h743 threadx + filex(SD卡读写) + CubeMX + CubeIDE

今天整了一下正点原子阿波罗h743的filex,按部就班的使用CubeMX去搭建环境,再用CubeIDE去编写程序,里面也有几个小坑,问题不大。 Step1. 创建CubeMX 首先设置RCC晶振,SYS为tim6 然后勾选sdmmc1 选择4bits,分频系数为4。这个分频系数选4对应一般的sd卡都可以用了,如果好…

单片机死机后在不破坏现场的情况下连接调试器进入调试模式

经常遇到程序在现场卡死了&#xff0c;但是这个时候没有连接调试器&#xff0c;不好找死机原因。 下面说下在程序卡死的时候&#xff0c;在不破坏死机现场的情况下&#xff0c;连接上调试器进行程序调试的方法。 把调试器连接电脑&#xff0c;打开keil做下面的配置&#xff0c…

Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了

Llama系列上新多模态&#xff01;3.2版本开源超闭源&#xff0c;还和Arm联手搞了手机优化版&#xff0c;Meta首款多模态Llama 3.2开源&#xff01;1B羊驼宝宝&#xff0c;跑在手机上了&#xff01; 在多模态领域&#xff0c;开源模型也超闭源了&#xff01; 就在刚刚结束的Met…

Web自动化Demo-PHP+Selenium

1.新建工程 打开PhpStorm新建工程如下&#xff1a; 打开终端输入如下命令安装selenium&#xff1a; composer require php-webdriver/webdriver 2.编写代码 <?php require vendor/autoload.php;use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver…

分治算法(8)_归并排序_翻转对

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 分治算法(8)_归并排序_翻转对 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 温…

云原生日志ELK( logstash安装部署)

logstash 介绍 LogStash由JRuby语言编写&#xff0c;基于消息&#xff08;message-based&#xff09;的简单架构&#xff0c;并运行在Java虚拟机 &#xff08;JVM&#xff09;上。不同于分离的代理端&#xff08;agent&#xff09;或主机端&#xff08;server&#xff09;&…

【python】:pycharm2024.2.2使用

参考链接&#xff1a; 文件连接&#xff1a; 方法1&#xff1a;临时有效&#xff0c;后期官方更新提示激活无效 输入激活码&#xff1a; X9MQ8M5LBM-eyJsaWNlbnNlSWQiOiJYOU1ROE01TEJNIiwibGljZW5zZWVOYW1lIjoiZ3VyZ2xlcyB0dW1ibGVzIiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVF…

Chainlit集成Dashscope实现语音交互网页对话AI应用

前言 本篇文章讲解和实战&#xff0c;如何使用Chainlit集成Dashscope实现语音交互网页对话AI应用。实现方案是对接阿里云提供的语音识别SenseVoice大模型接口和语音合成CosyVoice大模型接口使用。针对SenseVoice大模型和CosyVoice大模型&#xff0c;阿里巴巴在github提供的有开…