我们来看一下SCSS和Sass,浏览一下所有CSS和SCSS代码,您需要从这种样式语言开始。

在这篇文章中,我想介绍并讨论SCSS的功能。如果您是SCSS的新手并且您真的没有阅读过很多内容,那么您一定要阅读此博客以获取所有信息。

Sass(Syntactically awesome style sheets)是一种样式表语言,最初由Hampton Catlin设计,由Natalie Weizenbaum开发。Sass是一种预处理器脚本语言,可以解释或编译成层叠样式表(CSS)。SassScript本身就是脚本语言。拥抱Sass一次,你可能永远不想再回到vanilla CSS了。直到最近,当我不得不在一个项目中切换回vanilla CSS时,我才意识到我多么喜欢和Sass一起工作。在那段时间里,我学到了很多,所以我决定赞美萨斯,让这个世界变得更美好,让你变得更快乐。

如何使用Sass

像Sass这样的预处理器在我们的RoR世界中被广泛使用,使得编写CSS变得更加容易和无杂乱。大多数Rails开发人员都知道诸如嵌套,引用选择器,变量,mixin或扩展指令等优点。但萨斯远不止于此!

Sass包括两种类型的扩展名:.scss和.sass。“.scss”文件扩展名完全符合CSS语法,而.sass不完全符合CSS语法,但写入速度更快。

让我们从一些安装和使用Sass的基本技巧开始。

有两种方法可以使用应用程序或命令行启动SCSS。

使用命令行查看Sass文档以进行安装。

变量

我们可以在变量中定义一个元素,并在我们的Sass代码中插入它。将模块保存在单独的文件中时,这非常有用。变量的最常见用途是调色板,存储可以在单独的样式表中使用的字体声明,大小和媒体查询等信息。

例如

$body: #226666;

$primary-color: #403075;

$footer: #AA8439;

$font-stack: Helvetica, sans-serif;

以代码开头的代码 $ 是Sass变量。您可以稍后在样式表中使用这些变量,它们将映射到您定义的值,例如:

body {

background: $body;

font: $font-stack;

}

.header {

color: $primary-color;

}

a {

color: $primary-color;

}

使用SCSS嵌套

嵌套是SCSS最受欢迎的功能之一。使用嵌套,您可以在声明的大括号之间添加类。SCSS将非常直观地编译和处理选择器。您甚至可以使用“ &”字符来获取对父选择器的引用。

以下示例显示了基本网页的结构:

嵌套风格

以下样式用于创建上面的示例:

header{

padding:10px

background-color: $grey

text-align:center;

.logo{

display:inline-block;

width:140px;

}

nav {

ul {

margin: 0;

padding: 0;

list-style: none;

li {

display: inline-block;

a {

display: block;

padding: 6px 12px;

text-decoration: none;

&:hover{

text-decoration:underline;

}

}

}

}

}

section{

background-color: $grey;

display:inline-block;

width:70%;

border:1px solid $grey;

color: $text-color;

}

aside{

background-color: $grey;

display:inline-block;

width:30%;

border:1px solid $grey;

color: $text-color;

}

footer{

padding:10px;

.copyright{

text-decoration:none;

padding:5px;

&:hover{

text-decoration:underline;

}

}

}

大!现在我们现在如何嵌套样式工作。我们来看看相应的CSS:

header{

padding:10px

background-color: #ded3d4;

text-align:center;

}

header .logo {

display:inline-block;

width:140px;

}

header nav ul{

margin: 0;

padding: 0;

list-style: none;

}

header nav ul li{

display: inline-block;

}

header nav ul li a{

display: block;

padding: 6px 12px;

text-decoration: none;

}

header nav ul li a:hover{

text-decoration:underline;

}

section{

background-color: #ded3d4;

display:inline-block;

width:70%;

border:1px solid #ded004;

color: #555;

}

aside{

background-color: #ded3d4;

display:inline-block;

width:30%;

border:1px solid #ded004;

color: #555;

}

footer{

padding:10px;

}

footer .copyright{

text-decoration:none;

padding:5px;

}

footer .copyright:hover{

text-decoration:underline;

}

Mixins和Extends

Mixins和extends是强大的功能,有助于避免大量重复。使用mixins,您可以制作参数化CSS声明,并在整个样式表中重复使用它们。

假设你有一个盒子,你想给盒子圆角:

@mixin border-radius($ round){

-webkit- border-radius:$ round ;

-moz- border-radius:$ round ;

-ms- border-radius:$ round ;

border-radius:$ round ;

}

/ *只需使用'@include'指令来应用mixin * /

.box { @include border-radius(15px); }

请注意@mixin 顶部的 指令。它已被赋予名称 border-radius 并使用变量 $round 作为其参数。此变量用于设置每个元素的半径值。之后,@include 使用参数值调用该 指令,即15px。

这是相应的CSS:

.box {

-webkit- border-radius:15px ;

-moz- border-radius:15px ;

-ms- border-radius:15px ;

border-radius:15px ;

}

如果要在使用@including 指令时为每个角添加不同的大小 ,也可以这样做; 你只需要指定如下:

.box { @include border-radius(15px 10px 5px 0px); }

您可以创建自己的mixin库,或者更好的是,您可以使用其中一个社区库。

该 @extend 指令被称为Sass最强大的功能之一。此指令允许您将属性从一个选择器共享到另一个选择器。

假设你声明一个包含属性的公共类:

.box {

margin: 10px;

padding: 10px;

border: 2px solid blue;

}

现在你想要两个具有相同属性但具有不同边框颜色的类似盒子。

.box-red {

@extend .box;

border-color: red;

}

.box-yellow {

@extend .box;

border-color: yellow;

}

在上面的例子中,我们使用@extend 指令扩展了公共类 。让我们看看我们需要的完整SCSS来获得所需的输出。

.box, .box-red, .box-yellow {

margin: 1em;

padding: 1em;

border: 2px solid red;

}

.box-red {

border-color: red;

}

.box-yellow {

border-color: yellow;

}

import

@import 将由Sass处理,我们所有的CSS和SCSS文件将被编译为一个文件,最终将在我们的实际网站上。您可以创建包含很少CSS的部分Sass文件,您可以将其包含在其他Sass文件中,即variable.scss,fonts.scss,buttons.scss等,然后我们可以在main / style中包含所有SCSS文件.scss文件夹。如果不导入部分文件,则可以使用mixin和variable等可重用组件。

假设您已经创建了多个文件,并且需要将它们导入main.scss文件:

@import “variables”;

@import “fonts”;

@import “base”;

@import “buttons”;

@import “layout”;

唯一的缺点是为要导入的每个CSS文件触发单独的HTTP请求。

scss 变量_SCSS和Sass使用这种样式语言所需的所有CSS和SCSS代码相关推荐

  1. vue组件引入scss变量_SCSS特色的Vue.js ui组件设计系统

    vue组件引入scss变量 Kotti设计系统 (Kotti Design System) This design system helps to unify our design language ...

  2. 在行内样式 或 对象格式的样式中 使用scss变量

    前言 scss可以通过$mcolor:color,设置变量,方便全局统一样式和后续修改整体风格.一般也不会写行内样式,所以用起来没什么问题.但是在使用uniapp及其第三方ui框架uview的时候,有 ...

  3. 使用SASS修改iconic样式

    iconic使用了sass来快速更改UI样式,通过修改sass,能够编译生成我们要的样式.所以有必要了解学习好sass,来更方便的更改ionic成为我们要的UI. 学过CSS的人都知道,它不是一种编程 ...

  4. element-ui 按需加载情况下覆盖预置scss变量

    element-ui的默认主题theme-chalk是通过scss预编译的,可以通过修改scss变量达到修改主题的目的. 在项目中改变 SCSS 变量 Element 的 theme-chalk 使用 ...

  5. sass学习笔记(二):sass的不同样式风格的输出方法

    sass的不同样式风格的输出方法 1.嵌套式nested Sass 提供了一种嵌套显示 CSS 文件的方式.例如 nav {ul {margin: 0;padding: 0;list-style: n ...

  6. hbuilderx 2.9.8 公用css样式_浅谈关于vue中scss公用的解决方案

    简述 最近由于项目要求查阅了很多关于scss公用的文章,以下只是对那些文章进行简单的总结 解决方法 a.当我们要使用scss文件的共用时,首先我们就要想到如何应当如何编辑scss文件,比如降低scss ...

  7. Vue使用scss变量控制主题色

    原理将变量注入到body的样式里,改变主题色的时候修改变量的颜色即可. scss变量 --color:red 放body的好处是全局可用. if(sheme==="dark"){d ...

  8. 提取scss变量,交给js

    2019独角兽企业重金招聘Python工程师标准>>> gulp.task('variables.js', function() {/*** 解析scss变量,注入到 variabl ...

  9. 微前端之实践环境变量设置、快照沙箱隔离、代理沙箱隔离、css 样式隔离、父子应用间通信和子应用间通信

    一.微前端之实践环境变量设置.快照沙箱隔离.代理沙箱隔离.css 样式隔离.父子应用间通信和子应用间通信 微前端环境变量设置,如下所示: 在 micro 下的 sandbox 中 performScr ...

最新文章

  1. 使用badboy录制脚本 结合Jmeter一起测试。
  2. Mongodb内存管理和使用情况情况查询
  3. 基于JAVA+SpringMVC+Mybatis+MYSQL的高校后勤管理系统
  4. android中的sqlite注意事项
  5. 获取三角形外接圆的圆心坐标、半径
  6. 02-即时通讯-XMPP 简单介绍
  7. 如何在CSDN中发表博客
  8. 加拿大高中计算机课,全面解析加拿大高中课程
  9. 空城计课件软件测试,空城计课件公开课.ppt
  10. 三次函数的对称中心问题
  11. 动态注册 Module
  12. 电影院里电影票和座位号的关系
  13. 集合中某几个数字之和等于一个固定值 java
  14. JZOJ 1285. 奶酪厂
  15. matlab中图线颜色大全
  16. Kafka的数据是如何存储的
  17. Google“窃取”内容渠道控制权?
  18. 无目标场景下高分辨率激光雷达和相机的像素级外参自标定
  19. ECG分析:基于深度学习的ECG心律失常分类入门(1)
  20. Flink / Scala 实战 - 13.TimeWindow 处理迟到数据详解

热门文章

  1. UI实用素材模板|app底部导航栏的图标可临摹素材,教你分析!
  2. 内核引导参数IOMMU与INTEL_IOMMU有何不同?
  3. 《深入浅出DPDK》学习思维导图
  4. Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)
  5. 用DPDK rte_ring实现多进程间通信
  6. pythonios脚本语言-iOS开发Swift篇—(一)简单介绍
  7. scala的运算符(四)
  8. ethtool -g rx_魔兽怀旧服:黑G团避坑指南
  9. python loggeru模块_python常用模块——logger模块
  10. 黑莓桌面管理器4.2_虚拟桌面管理器行业现状调研分析及发展趋势预测报告(2020)...