首页 > 其他分享 >SCSS与CSS的区别

SCSS与CSS的区别

时间:2024-03-14 17:56:20浏览次数:27  
标签:SCSS 区别 color button font CSS size

SCSS(Sassy CSS)是一种CSS预处理器,它扩展了CSS的功能,并为样式表的编写提供了额外的便利性。以下是两者之间的主要区别:
1. 语法扩展:           CSS标准层叠样式表语言,采用简单、扁平化的键值对形式书写。          SCSS基于CSS语法之上增加了嵌套规则、变量、混入(mixins)、继承等高级特性,代码结构更加类似编程语言。
2. 变量           CSS不支持变量定义和使用。          SCSS支持变量定义,可以声名$variable:value;并在样式中重复引用,方便颜色、尺寸和其他值的统一管理和修改。
3. 嵌套规则         CSS中的选择器是扁平化的,每个选择器独立书写。        SCSS允许选择器嵌套,这样可以更好地反映HTML结构,并减少重复代码;
4.导入(@import)          CSS的@import主要用于合并多个CSS文件。但可能会导致额外的HTTP请求,降低性能。         SCSS的@import不仅能合并文件。而且在编译时会被处理成一个CSS文件。同时支持导入其他SCSS文件并合并其变量、混入等。   5.混合器(@mixin)          CSS不具备此功能。          SCSS提供混合功能,可以创建可重用的样式块。包括带有参数的样式模板,可以在多个地方调用以避免重复代码。 6.运算符和函数         CSS不支持继承。   SCSS允许在样式中执行简单的算术计算。如颜色函数、数值运算等。 7.继承(@extend)   CSS需要通过类名的层叠或使用通用选择器来实现样式继承。   SCSS 提供了明确的@extend指令,可以将样式应用到多个选择器上。 总结来说,SCSS作为一种预处理器,增强了CSS语言的功能性和可编程性。   下面用代码进行详细解释 1.SCSS变量和混合器 (@mixin)

 // 定义变量
$button-bg-color: #3498db;
$red-button-bg-color: #e74c3c;

// 使用变量及混合(Mixins)
@mixin button-styles($bg-color) {
  background-color: $bg-color;
  padding: 10px 20px;
  border-radius: 5px;
}

.button {
  @include button-styles($button-bg-color);
  color: black; // 其他基础样式
}

.red-button {
  @include button-styles($red-button-bg-color);
  color: white; // 只更改特定的样式属性
}
2. 嵌套规则
.navbar {
  background-color: #333;
  
  .nav-item {
    display: inline-block;
    
    &.active {
      font-weight: bold;
    }
  }
}
3. 导入 (@import)
 // _variables.scss 文件包含变量声明
    @import 'variables';
    @import 'mixins';

// 使用导入的变量和混入
.title {
  color: $primary-color;
  @include font-size(2em);
}
4. 混合器 (@mixin)
@mixin font-size($size) {
  font-size: $size;
  line-height: 1.5 * $size;
}
5. 运算符和函数
$width: 100px;
.element-width {
    width: $width * 2; // 数值运算
}

.text-shadow {        text-shadow: rgba(0, 0, 0, 0.5) 2px 2px; // 示例简单样式,SCSS支持更多复杂颜色函数如 darken(), lighten() } 6. 继承 (@extend) // 定义一个基础样式类 %base-button {   border: 1px solid #ccc;   padding: 8px 16px;   font-size: 14px;   text-align: center; }
// 使用继承来创建扩展样式类 .button {   @extend %base-button; // 继承了%base-button的所有样式   background-color: #f0f0f0; }
.primary-button {   @extend %base-button; // 同样继承了%base-button的所有样式   background-color: #3498db;   color: white; }
// 编译后生成的CSS: .base-button, .button, .primary-button {   border: 1px solid #ccc;   padding: 8px 16px;   font-size: 14px;   text-align: center; }
.button {   background-color: #f0f0f0; }
.primary-button {   background-color: #3498db;   color: white; } 7.条件语句与循环:SCSS支持条件语句@if、@for、@each、@while和@debug。
 scss
    $font-sizes: (small: 14px, medium: 16px, large: 18px);
    @each $size, $value in $font-sizes {
        .font-#{$size} {
            font-size: $value;
        }
    }
    编译后的CSS
    .font-small {
        font-size: 14px;
    }

    .font-medium {
        font-size: 16px;
    }

    .font-large {
        font-size: 18px;
    }
8.自定义函数:SCSS提供了一系列内置函数,同时也支持自定义函数。例如,自定义颜色反转函数:
 SCSS
    @function color-inverse($color) {
        @return mix(white, $color, 100%);
    }

    body {
        background-color: color-inverse(black);
    }
    编译后的CSS:
    body {
        background-color: white;
    }

 

                     

标签:SCSS,区别,color,button,font,CSS,size
From: https://www.cnblogs.com/flzs/p/18073598

相关文章

  • html5&css&js代码 018颜色表
    html5&css&js代码018颜色表一、代码二、效果三、解释这段代码展示了一个基本的颜色表,方便参考使用,同时也应用了各种样式应用方式。一、代码<!DOCTYPEhtml><htmllang="zh-cn"><head><title>编程笔记html5&css&js颜色表</title><metacharset="utf......
  • 本地化部署跟SaaS云部署有什么区别?
    在数字化时代,企业对于部署软件的方式有着多种选择,其中最为常见的两种方式便是本地化部署和SaaS云部署。这两种方式各有优劣,适用于不同的业务场景和需求。那么,它们之间究竟有哪些区别呢?  一、技术架构与实现方式 本地化部署是将软件安装在客户自己的服务器上,客户需要自行......
  • 4大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)
    四大软件测试策略分别是单元测试、集成测试、确认测试和系统测试。一、单元测试单元测试也称为模块测试,它针对软件中的最小单元(如函数、方法、类、模块等)进行测试,以验证其是否符合预期的行为和结果。单元测试通常由开发人员编写,目的是在开发过程中尽早发现和修复错误,从而提高软......
  • 云审计与大数据审计:区别、优势与应用场景
    本文分享自天翼云开发者社区《云审计与大数据审计:区别、优势与应用场景》,作者:每日知识小分享随着信息技术的飞速发展,审计领域也迎来了革命性的变革。云审计和大数据审计作为两种新兴的审计模式,各有其独特的特点和应用场景。本文将对云审计和大数据审计进行深入的比较分析,探讨它们......
  • 【 React 】React 构建组件的方式有哪些?区别?
    1.组件是什么组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式在React中,一个类、一个函数都可以视为一个组件降低整个系统的耦合度,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、范围等组件......
  • vue中 lang="ts"与js的区别
    `lang="ts"`与`js`的区别在于指定了脚本语言的类型,其中:-`lang="ts"`指定了TypeScript,一种由微软开发的JavaScript的超集,提供了静态类型检查等功能,使得代码更加健壮和可维护。-`js`则指定了JavaScript,是一种脚本语言,用于在网页上实现动态交互效果,是前端开发中最常用......
  • CSS基本选择器
    ID选择器以#开头,后面跟着ID名称,根据元素的ID名称选择元素,给元素加样式。和类选择器差不多,class可以有多种,但是id只能有一种。<pid="demo">HelloWorld</p>语法#demo{ color:red;}完整写法<!DOCTYPEhtml><htmllang="zh-CN"> <head> <metacharset=&qu......
  • CSS概念及入门
    CSS概念及入门简介CSS的全称为:层叠样式表(CascadingStyleSheets)。CSS也是一种标记语言,用于给HTML结构设置样式,例如:文字大小、颜色、元素宽高等等。主流的布局方式:div+css。组成选择器用于选择页面中的元素,进行样式的控制。属性用于设置样式,布局控制......
  • 三种方式使用纯 CSS 实现星级评分
    本文介绍三种使用纯CSS实现星级评分的方式。每种都值得细品一番~五角星取自ElementPlus的svg资源<svgxmlns="http://www.w3.org/2000/svg"viewBox="0010241024"style=""><pathfill="currentColor"d="M283.84867.8......
  • CSS实际案例,布局结构
    目前自己的问题:1所有东西都想用div,比如头部几个导航,不是用几个div而是用ui,li。搜索框不是div套两个div,而是div套input,buttom。且h,p,ul,ol等这种块级元素,都可以直接设置height,width当盒子用。全用div他的语义就不好了。【靠经验】2看见盒子老想去设置宽高,很多时候子盒子都不用设......