scss语法介绍

本文详细介绍了SCSS的自定义变量、变量插入、子元素书写等核心语法,并讲解了样式的数学运算、继承、代码块复用、条件语句、循环语句及函数的使用方法。

scss语法介绍

这里既然是对语法的介绍,那么至于如何安装和编译scss我就不多少了,主要是因为本人在群里认识的小伙伴有的不会用scss,所以就借着放假的机会来对scss语法做个总结,博主在开发过程中用scss蛮多,所以对scss语法还是熟知的。


1.自定义变量

$color:pink;
.test1{
    background-color:$color;
}

通过编译工具编译出来后

.test1{
    background-color:pink;
}

注:时间原因我在这里只写scss了,就不写编译后的结果,一来方便大家自己去尝试编译,二来增加大家对scss的理解:编译工具kaola很好的一个编译工具,大家可以百度如何使用,再这里就不做过多介绍了。
***
2.插入一个变量

$right:right;
.test2{
    border-#{$right}:1px solid #000;
}

3.子元素书写

.text3{
    .text33{
        border:1px solid;
    }   
}

4.样式的加减乘除

$paramer:3;
.text4{
    height:(1px+3px);
    width: (96px/6);
    right: $paramer*4;
}

5.继承

.class5{
    border:1px solid red;
}
.class5E{
    @extend .class5;
    font-size:20px;
}

6.代码块的复用

@mixin text6 {
    height:50px;
    left:20px;
}
.text6M{
    @include text6
}
//这里的mixin就是定义一个可以复用的代码段,当然我们也可以给它传递一个参数,就像这样一样:
@mixin text66($height){
    height:$heigth;
    left:20px;
}
.text6N{
    @include text66(100px);
}   

7.if语法,通过对if的判断来决定使用那一套样式

.text7{
    @if 1 +2 == 3 {
        border:1px solid ;
    }
    @if 5 < 3 {
        border:2px dsahed red;
    }
}
当然,我们都知道if一般是要和else配合的,所以我们也可以这样写
.test77{
    @if lightness($color) > 30%{
        background-color:#fff;
    }@else{
        background:#0ff;
    }
}
这里的lightness是一个scss颜色函数,$color指向之前定义的值。

8.循环语法,包括最常见的三种循环方法,for,while,each

//for 循环
@for $i from 1 to 5 {
    .item-#{$i} {
        border:#{$i}px solid;
    }
}
//while 循环
$m:8;
@while $m > 0 {
    .items-#{$m} {
        width:2em*$m;
    }
    $m:$m - 2 ;
}
//这里可以对$m进行运算 让它每次都减去2
//each 语法
@each $img in q,w,e,r {
    .#{$img} {
        background-image:url('#{$img}.png')
    }
}

9.函数语法

@function double ($number){
    @return $number*2;
}
.text9{
    font-size:double(20px);
}

10.import导入语法

@import 'other.scss'
这样就在你现在的scss中导入了other.scss编写的scss

scss语法并不是很多,但是需要开发者灵活使用,这样才能事半功倍,要深刻理解scss变量,以及如何插入变量,以及循环语法和函数思想,如果遇到不太清楚的可以给博主留言哈,欢迎指正和提出问题。

### SCSS 语法简介 SCSS (Sassy CSS) 是一种扩展了标准 CSS 功能的预处理器语言,它提供了许多强大的特性来简化样式的编写过程。以下是关于 SCSS 的一些核心概念及其用法: #### 1. 基础语法 SCSS语法与传统 CSS 非常相似,但它支持更多高级功能,比如变量、嵌套规则以及混合宏等[^1]。 ```scss // 定义变量并应用到样式中 $primary-color: #333; body { color: $primary-color; } ``` 上述代码展示了如何定义一个 `$primary-color` 变量,并将其应用于 `body` 元素的颜色属性中。 --- #### 2. 嵌套规则 通过嵌套的方式,可以更直观地表示 HTML 结构中的父子关系,从而减少冗余代码[^3]。 ```scss nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { text-decoration: none; &:hover { color: red; } } } ``` 在这个例子中,所有的子元素都属于 `nav` 下面的一部分,这样不仅提高了可读性,还减少了重复书写父级选择器的工作量。 --- #### 3. 使用变量 变量可以在整个项目范围内共享某些固定的值,例如颜色或字体大小,方便统一管理和调整。 ```scss $font-stack: Helvetica, sans-serif; $primary-color: #333; body { font-family: $font-stack; color: $primary-color; } ``` 这里设置了两个全局变量——字体栈 (`$font-stack`) 和主要文字颜色 (`$primary-color`) 并在后续多次引用它们。 --- #### 4. 导入文件 (@import) 为了保持模块化开发原则,可以通过 `@import` 将多个独立的小型 SCSS 文件组合成最终的大规模样式表。 ```scss @import 'reset'; @import 'variables'; @import 'mixins'; body { background-color: $background-color; } ``` 注意,在现代前端构建工具链下(如 Webpack),推荐使用其他方式替代传统的 `@import` 方法以优化性能。 --- #### 5. 继承样式 (@extend) 当不同类之间存在公共部分时,可以利用 `@extend` 来实现样式的复用而不是复制粘贴相同的声明列表。 ```scss .message { border: 1px solid black; padding: 10px; } .success { @extend .message; border-color: green; } .error { @extend .message; border-color: red; } ``` 这种方式有助于降低维护成本,因为一旦 `.message` 类发生变化,则所有依赖它的派生类也会自动更新其表现形式。 --- #### 6. 混合宏 (@mixin / @include) 如果有一组特定的 CSS 属性需要频繁设置给不同的对象,则应该考虑创建自定义 mixin 函数以便重用逻辑结构。 ```scss @mixin flex-center($direction: row) { display: flex; justify-content: center; align-items: center; flex-direction: $direction; } .container { @include flex-center(column); } ``` 此片段演示了一个简单的布局辅助方法 —— 让容器内的内容居中显示的同时还可以指定排列方向,默认水平分布(`row`) 或垂直分布(`column`) . --- #### 7. 运算操作 除了基本的数据存储外,SCSS 支持直接执行数值计算任务,这使得动态生成复杂视觉效果变得更加容易[^2]。 ```scss $base-size: 1rem; .button { font-size: $base-size * 1.5; line-height: ($base-size + 0.5em); } ``` 以上实例说明了怎样基于已知尺寸单位推导新的比例关系出来用于实际渲染用途当中去。 --- #### 总结 综上所述,掌握了这些基础知识之后就可以着手实践自己的第一个 SCSS 工程啦!记住始终遵循 DRY(Don't Repeat Yourself) 设计理念尽可能消除不必要的重复劳动环节提升工作效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值