初体验
html结构:
<div id="wrap">
<div class="content">
<div class="article">
<p>
<span>文字</span>
</p>
</div>
</div>
</div>
css代码:
#wrap .content{}
#wrap .content .article{}
#wrap .content .article p{}
#wrap .content .article p span{}
使用sass编写:
#wrap{
width: 300px;
height: 300px;
border:3px solid #ccc;
.content{
width: 250px;
height: 250px;
background-color: pink;
.article{
width: 200px;
height: 200px;
background-color: skyblue;
p{
width: 150px;
height: 150px;
border:5px solid purple;
span{
font-size: 20px;
}
}
}
}
}
- 编译sass成css:
- 在 vs code 中 安装 插件 easy sass
- 在 vs code 中创建一个 xxx.scss 文件 ==(注意这里就是 scss 结尾 不是 sass 结尾)==
- 在 xxx.scss 文件中书写 scss 代码
- 保存代码后,当前的 xxx.scss 文件旁边会自动生成两个文件
- xxx.css:文件内容为编译后的 css 代码
- xxx.min.css:文件内容为编译后并且压缩过的 css 代码
sass的学习
SASS官网:www.sass.hk/
sass文件的后缀分两种:.sass和.scss,相对来说,.scss使用的比较多。
.scss的文件写法:
#wrap{
width:100px;
}
.sass的文件写法:
#wrap
width:100px
他们的区别在于有没有大括号和分号。我们已经习惯了写大括号和分号了,所以使用.scss的比较多。
sass的注释
// 单行注释,但是在编译的时候不保留
/*
多行注释
编译的时候可以保留
压缩的时候不保留
*/
/*!
多行注释
编译和压缩的时候都会保留
*/
变量
在sass中$来定义变量:
$color:red;
$font_size:12px;
.header{
background-color: $color;
font-size:$font_size*2(代表数值乘二);
}
一般用来定义颜色或者一些常用的像素值(变量名可自己编写,不必拘束于宽高的,字体颜色的单词)。
嵌套
/*后代关系*/
.wrap{
div{
width:$font_size*10(代表数值乘十);
}
}
/*子类关系*/
ul{
>li{
padding:12px;
}
}
/*大括号中表示自己*/
.nav{
&:hover{
background-color: $color;
}
li{
&:hover{
color:$color;
}
}
}
/*群组嵌套按正常写即可*/
/* 属性嵌套 */
.content{
border: {
style:solid;
color:$color;
width:2px;
}
}
.left{
border:1px solid #000{
left:none;
bottom:{
width:3px;
}
};
}
编译结果:
/*后代关系*/
.wrap div {
width: 120px;
}
/*子类关系*/
ul > li {
padding: 12px;
}
/*大括号中表示自己*/
.nav:hover {
background-color: red;
}
.nav li:hover {
color: red;
}
/*群组嵌套按正常写即可*/
/* 属性嵌套 */
.content {
border-style: solid;
border-color: red;
border-width: 2px;
}
.left {
border: 1px solid #000;
border-left: none;
border-bottom-width: 3px;
}
嵌套
/*后代关系*/
.wrap{
div{
width:$font_size*10;
}
}
/*子类关系*/
ul{
>li{
padding:12px;
}
}
/*大括号中表示自己*/
.nav{
&:hover{
background-color: $color;
}
li{
&:hover{
color:$color;
}
}
}
/*群组嵌套按正常写即可*/
/* 属性嵌套 */
.content{
border: {
style:solid;
color:$color;
width:2px;
}
}
.left{
border:1px solid #000{
left:none;
bottom:{
width:3px;
}
};
}
编译结果:
/*后代关系*/
.wrap div {
width: 120px;
}
/*子类关系*/
ul > li {
padding: 12px;
}
/*大括号中表示自己*/
.nav:hover {
background-color: red;
}
.nav li:hover {
color: red;
}
/*群组嵌套按正常写即可*/
/* 属性嵌套 */
.content {
border-style: solid;
border-color: red;
border-width: 2px;
}
.left {
border: 1px solid #000;
border-left: none;
border-bottom-width: 3px;
}