首页 > 其他分享 >sass

sass

时间:2022-08-31 20:12:12浏览次数:42  
标签:sass width color 编译 font size

sass概述

            sass是一个预编译的css语言,它是使用ruby语言写的,和它一样的预编译语言还有less,它是使用js写             的。sass的环境之前是ruby环境,但是由ruby并了python,所以它可以运行在python环境上,这个些             内容并不能直接使用,因为它属于预编译css,没有进行编译是不能被使用的。编译完还是css,那么我             们知道它有个编译过程并比损耗效率,那么它的优势在哪?

            预编译css的优势就是它可以减少你的css代码的书写量,并编译出对应的简洁的css代码。

        常用的预编译css

            sass (底层采用ruby书写)循环可以支持所有类型             less (底层采用js书写) 循环只支持数值类型             stylus (底层采用的是js (功能单一) 它是以缩进来区分对应的层级)

        sass的常用俩种形式  

            sass 后缀(以缩进来做为区分 没有{} ;)             scss 后缀(类似于css的区分)

        sass的编译环境

        node支持python 运用node环境来运行sass

            安装                 
    npm install sass -g

 

            编译                 
    sass 需要编译的文件 编译后的文件

 

            监听编译                
    sass --wacth 需要编译的文件:编译后的文件

 

        vscode的插件来帮助我们编译sass

            easy sass 扩展                 保存后自动编译

 

 

        sass入门

            官方网站:https://www.sass.hk/

            变量定义 使用$进行变量定义(*)

               
                $color:red;
                div{
                   background-color:$color;
                }

       

               div {
                   background-color: red;
                }
  

            选择器嵌套 使用&表示当前选择器(*)

              
              div{
                    background-color:$color;
                    a,b{
                        text-align: center;
                    }
                    &:hover{
                        color: $color;
                    }
                }

 

              
                div a, div b {
                    text-align: center;
                }
                div:hover {
                    color: red;
                }

 

            样式嵌套

               
                span{
                    border: 1px solid #ccc {
                        bottom: none;
                    };
                }

              

                div span {
                    border: 1px solid #ccc;
                    border-bottom: none;
                }

 

            支持运算符 + - * / %

              
                $size:10px;
                p{
                    font-size: $size * 5 / 10 + 20 % 1;
                }
                #box{
                    font-size: 10px + 10;
                }

 

              
                p {
                    font-size: 5px;
                }
                #box {
                    font-size: 20px;
                }

 

            支持if else判断

               
                #content{
                    @if $size>5 {font-size: $size - 5;}
                    @if $size - 5>5 {color:red}
                    @else if $size - 5<5{color:blue}
                    @else {color:green}
                }

 

               
                #content {
                    font-size: 5px;
                    color: green;
                }

 

            支持for循环 (插值表达式 #{})

              
               //普通for循环
                @for $i from 1 through 3 {
                    .item-#{$i} { width: 2em * $i; }
                }
                //for each循环
                $list : 1,2,3,4,5;
                @each $var in $list {
                    .icon-#{$var}{
                        font-size:$var * 5px ;
                    }
                }

 

               
                .item-1 {
                    width: 2em;
                }
                .item-2 {
                    width: 4em;
                }
                .item-3 {
                    width: 6em;
                }
                .icon-1 {
                    font-size: 5px;
                }
                .icon-2 {
                    font-size: 10px;
                }
                .icon-3 {
                    font-size: 15px;
                }
                .icon-4 {
                    font-size: 20px;
                }
                .icon-5 {
                    font-size: 25px;
                }

 

            支持while循环

              
               $i: 6;
                @while $i > 0 {
                    .item-#{$i} { width: 2em * $i; }
                    $i: $i - 2;
                }

 

              
                .while-6 {
                    width: 12em;
                }
                .while-4 {
                    width: 8em;
                }
                .while-2 {
                    width: 4em;
                }

 

            注释 /**/ 多行注释 // 单行注释

                // 不会编译到css文件 /**/会编译到css文件

            混入器 mixin (*)

              
               //混入器
                @mixin borderStyle {
                    border: 1px solid red;
                }
                .box{
                    @include borderStyle()
                }
                //传参的混入器 支持默认参数的
                @mixin borderStyle1($a:1px,$b:solid,$c:green) {
                    border: $a $b $c;
                }
                #box{
                    // @include borderStyle1(1px,solid,red)
                    @include borderStyle1(2px)
                }

 

               
                .box {
                    border: 1px solid red;
                }
                #box {
                    border: 2px solid green;
                }

 

            方法 返回值的形式

               
                 @function reduce($a){
                    @return $a+10;
                }
                #hello{
                    width: reduce(10px);
                }

 

               
                #hello {
                    width: 20px;
                }

 

            继承 extend(复用 *)

              
                #hi{
                    //继承hello的内容
                    @extend #hello;
                    height: 20px;
                }

 

                
                #hello, #hi {
                    width: 20px;
                }
                #hi {
                    height: 20px;
                }

 

            导入 (*)

                
                @import './mixin.scss';
                #box{
                    @include borderStyle1()
                }

 

              
                #box {
                    border: 1px solid green;
                }

 

gulp

            gulp是一个自动化构建工具(构建环境 将代码打包 基于文件流的形式) (outer了),webpack ---vite。             https://www.gulpjs.com.cn/             都是基于node环境运行的。用到模块来构建环境             
            npm install gulp -g
            npm install webpack -g
            npm insatll vite -g

 

标签:sass,width,color,编译,font,size
From: https://www.cnblogs.com/lkm7/p/16644386.html

相关文章

  • 关于vue.js:vue使用sass中deep报错
    转自:https://lequ7.com/guan-yu-vuejsvue-shi-yong-sass-zhong-deep-bao-cuo.html之前装了一个vue3.0的环境,结果搬砖的时候发现vue2.0的项目跑不了了然后照着网上说......
  • node-sass 安装出错常见解决方法
    使用与node-sass版本兼容的node到package.json中找到node-sass的版本号。使用nvm将node切换到与node-sass版本兼容的版本(sass/node-sass有版本对照表)。......
  • sass---安装sass失败解决方法
    今天在做vue项目,项目是老项目新开,使用的webpack比较老旧,通过正常的安装sass的方法,报错,无法安装。常规的安装方法:1、安装sass-loadernpminstallsass-loader--save-de......
  • Sass预处理器 常见函数的基本使用
    Sass提供了许多内置模块,其中包含有用的函数(以及mixin)。这些模块可以像任何用户定义的样式表一样使用@use规则加载,它们的函数可以像任何其他模块成员一样调用。所有内置模块......
  • 前端编译报Error: Cannot find module 'node-sass'
    解决办法:1.在项目目录cmd下运行:npm install -g cnpm --registry=https://registry.npm.taobao.org2.下载成功后再运行:cnpm install node-sass3、两个都下载成......
  • node与node-sass对应版本
    (122条消息)三、第一个ElementUI登录页_PkyShare的博客-CSDN博客(122条消息)Modulebuildfailed:TypeError:this.getOptionsisnotafunction报错解决方案_YOGi......
  • 解决yarn安装node-sass失败
    第一步:更改镜像源yarnconfigsetregistryhttps://registry.npm.taobao.org-g第二步:配置node-sass的二进制包镜像地址yarnconfigsetsass_binary_sitehttps://np......
  • Sass 混合指令——提高你的 CSS 重复使用率
    前言Sass(Scss)支持混合指令,姑且看作是函数一样的东西,可以传递参数、传递参数变量、参数默认值等。它也支持自定义函数,可以说是真正意义上的函数,可以返回值,也有混合指令的特......
  • Vite 项目添加 Sass 并配置全局样式
    (1)在Vite项目里,只需要安装sass:npmi-Dsass(2)Sass的全局变量,需要在vite.config.ts配置一项:css:{preprocessorOptions:{scss:{additionalData:"@......
  • CSS预处理器的对比 — sass、less和stylus
    本文根据JohnathanCroom的《sassvs.lessvs.stylus:PreprocessorShootout》所译,整个译文带有我们自己的理解与思想,如果译得不好或不对之处还请同行朋友指点。如需转......