首页 > 其他分享 >CSS 预处理器

CSS 预处理器

时间:2023-02-03 20:00:19浏览次数:60  
标签:node Sass sass LibSass 处理器 CSS

CSS 预处理器

目录

目录

预处理器简介

什么是预处理器?

预处理器把我们编写的源文件转译成输出文件,即常规样式表。

使用预处理器变量的示例:

$brand-blue: #0086b3;
a:link {
 	color: $brand-blue;
} 
.page-heading {
 	font-size: 1.6rem;
 	color: $brand-blue;
}

预处理器的作用?

预处理器不仅有助于提高代码书写效率,还利于后期维护。

例如,使用预处理器我可以复用一段样式。


预处理器中比较流行的两个是 Sass 和 Less。

Less和Sass类似,主要是一些语法上的细节有区别。

Sass

建议学习Sass中文文档

Sass 是用 Ruby 写的,但因为这种实现方式在编译大型样式表的时候比较慢,所以建议使用 LibSass,这是用 C/C++实现的 Sass 编译器。

可以通过 npm 包管理工具安装 node-sass,也可以获取 LibSass。

LibSass 和 Node Sass 已弃用。虽然他们将继续无限期地接收维护版本,但没有计划添加额外的功能或与任何新的 CSS 或 Sass 功能兼容。仍在使用它的项目应该转移到 Dart Sass上。

Node-sass 是一个库,它提供 Node.js 到LibSass的绑定,LibSass是 Sass 的 C 版本。

安装 Sass

  • 新建项目目录
  • 初始化一个新的 npm 项——npm init -y,创建 package.json 文件。
  • 安装 node-sass 包——npm install –save-dev node-sass,并把它作为开发依赖写入package.json。

在 Windows 系统中,还需要安装 node-gyp 包。更多信息查看 Github的sass/node-sass

从国内镜像安装:

npm install -g mirror-config-china --registry=https://registry.npmmirror.com
npm install node-sass

用法

var sass = require('node-sass');
sass.render({
  file: scss_filename,
  [, options..]
}, function(err, result) { /*...*/ });
// OR
var result = sass.renderSync({
  data: scss_content
  [, options..]
});

选项

file

  • Type: String
  • Default: null

Special: file or data must be specified

Path to a file for LibSass to compile.

data

  • Type: String
  • Default: null

Special: file or data must be specified

A string to pass to LibSass to compile. It is recommended that you use includePaths in conjunction with this so that LibSass can find files when using the @import directive.

参考自Github的sass/node-sass

Scss

Sass 支持两种语法:Sass 和 Scss。它们的语言特性一样,但 Sass 语法去掉了所有的大括号和分号,严格使用缩进来表示代码结构。

这有点类似于 Ruby 和 Python 这样的编程语言,空格是有意义的。SCSS 语法使用大括号和分号,因此看起来更像常规 CSS。

SCSS 文件使用 .scss 扩展名,Sass 文件使用 .sass 扩展名。

运行 Sass

安装好 Sass 后,我们新建一个文件夹 sass 和一个文件夹 build,sass 用来放源文件,生成的 CSS 文件放入 build。

修改 package.json 文件的 scripts 入口:

"scripts": {
 "sass": "sass sass/index.scss build/styles.css"
},

运行 npm run sass,执行这条命令,就会生成(或者覆盖)build/styles.css 样式表。

像 Grunt、Gulp 和 Webpack 这些常见的任务构建工具,会有一些可以使用的插件,比如 gulp-sass。如果你想使用插件,可以找一款 Sass 或者 Less 的,集成到自己最熟悉的工作流中。

核心特性

行内计算

Sass 支持 Sass变量使用 +-*/%,这样我们可以从一个初始值获得多个新值。

嵌套选择器

.div{
    display:flex;
    > a{
        margin:1em;
        &.isVisited{
            color:blue;
        }
    }
}

以上 scss 代码将生成 css:

.div{
    display:flex;
}
.div > a .isVisited{
    margin:1em;
}
.div > a .isVisited{
    color:blue;
}

局部文件(@import)

可以建立多个独立的 scss 文件,比如我们维护一个按钮样式,有时不得不在成千上万代码里寻找,是比较困难的,我们可以把它写成一个局部文件从而分离出来,通过语法 @import "scss文件名" 来插入这些样式。

混入

混入(mixin)是一小段 CSS 代码块,可以在样式表任意地方复用。

如果有一段特定的字体样式需要在多个地方使用,或者类似于清除浮动这样常用的重复规则,使用混入就比较合适。

混入使用 @mixin 规则来定义,使用 @include 规则来调用。

@mixin clearfix {
    &::before {
        display: table;
        content: " ";
    } 
    &::after {
        clear: both;
    } 
} 
.media {
    @include clearfix;
    background-color: #eee;
}

继承

@extend 规则类似于 @mixin,但不会多次复制相同的声明,而是把使用了 @extend 的选择器组合起来。

.a{
    样式1
}
.b{
    @extend .a;
    样式2
}
.c{
    @extend .a;
    样式3
}

以上代码将生成:

.a,
.b,
.c{
    样式1
}
.b{
    样式2
}
.c{
    样式3
}

标签:node,Sass,sass,LibSass,处理器,CSS
From: https://www.cnblogs.com/LiJunLin1231/p/17090330.html

相关文章

  • 前端css基础知识
    css(cascadingstylesheet)层叠样式表就是控制html中的标签样式CSS代码写法:选择器:{css代码属性:属性值}CSS代码引入方式一 在head标签里面写 <style>   ......
  • Vue使用:style动态给css中某样式赋值
    template中<spanclass="successOrError":style="{'--fontColor':"green"}">成功</span>css中<stylelang="scss"scoped>.successOrError{font-size:14px;......
  • 零基础学前端之CSS字体风格和样式简写
    通过CSS可以设置文本倾斜、文本粗细以及文本大小写等字体风格。font-style属性主要用于指定斜体文本。这个属性有三个值:normal,文本正常显示。italic,文本斜体显示。obliqu......
  • 零基础学前端之CSS字体和字号
    为你的网站选择正确的字体,能够提高用户浏览网站的体验——恰当的字体可以为你的品牌创造一个强大的视觉标识。使用一种易于阅读的字体,比如为字体选择正确的颜色和文字大小,都......
  • CSS 实现文本装饰效果
    使用CSS实现文本装饰效果主要有以下几种方式:text-shadow:为文本添加阴影效果。text-decoration:为文本添加下划线、删除线、上划线等装饰效果。letter-spacing:调......
  • html+css部分复习-cnblog
    HTML+CSS部分复习(蓝桥杯参考)0.考前准备插件安装设置:文件自动格式化1.web标准结构(HTML)表现(CSS)行为(js)2.前端插件安装3.img的border属性属性值:数......
  • CSS transform 属性
    transform属性是CSS中一个用于转换元素形状、大小和位置的属性。它允许开发人员对元素进行以下转换:平移(translation)缩放(scale)旋转(rotation)拉伸(skew)矩......
  • Nginx配置tomcat负载均衡,解决css样式丢失问题
    Nginx配置tomcat负载均衡,解决css样式丢失问题增加location~.*即可http{upstreamgzf{ip_hash;server192.168.2.171:8380;server192.1......
  • CSS-@规则(At-rules)常用语法使用总结
    At-rules规则是目前CSS中一种常见的语法规则,它使用一个"@"符号加一个关键词定义,后面跟上语法区块,如果没有则以分号结束即可。这种规则一般用于标识文档、引入外部样式、条......
  • Spring boot 无法加载css样式,image解决办法
    Springboot无法加载css样式,image解决办法 最近在给公司做一个系统,使用了springboot框架,同时也遇到了一些大坑在网上找到了一个好看的模版的,(非前后端的分......