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

sass学习笔记(1.0)

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.mrgr.cn/news/46328.html

相关文章:

  • AI工程师:AI时代的新岗位
  • Python 语法及入门(超全超详细)!
  • 【RAG论文精读5】RAG论文综述1(2312.10997)-第3部分:检索器
  • 高效开发最佳实践全面指南
  • 智能矿山建设方案
  • inBuilder低代码平台新特性推荐-第二十五期
  • 第三方软件测试报告包括哪些内容?需要多少时间和费用?
  • KDTS 实现MySQL至KingbaseES迁移实践
  • AVL树学习笔记
  • ai写作,五款软件助你快速写作!
  • AbMole揭秘BaP/BPDE与lnc-HZ08如何影响人类滋养层细胞的DNA修复
  • GC 算法
  • 【华为OD机试真题】95、最少面试官数
  • 前端基础面试题·第四篇——Vue(其二)
  • mysql学习教程,从入门到精通,SQL 临时表(37)
  • Vue-router 导航守卫有哪些
  • Windows11下 安装 Docker部分疑难杂症(Unexpecter WSL error)
  • Zabbix 7.2入门实战
  • 闪送股价破发:估值大幅缩水、客单价不断下滑,红海竞争如何突围?
  • 用来deploy jar包的bat脚本