scss 变量_SCSS和Sass使用这种样式语言所需的所有CSS和SCSS代码
我们来看一下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代码相关推荐
- vue组件引入scss变量_SCSS特色的Vue.js ui组件设计系统
vue组件引入scss变量 Kotti设计系统 (Kotti Design System) This design system helps to unify our design language ...
- 在行内样式 或 对象格式的样式中 使用scss变量
前言 scss可以通过$mcolor:color,设置变量,方便全局统一样式和后续修改整体风格.一般也不会写行内样式,所以用起来没什么问题.但是在使用uniapp及其第三方ui框架uview的时候,有 ...
- 使用SASS修改iconic样式
iconic使用了sass来快速更改UI样式,通过修改sass,能够编译生成我们要的样式.所以有必要了解学习好sass,来更方便的更改ionic成为我们要的UI. 学过CSS的人都知道,它不是一种编程 ...
- element-ui 按需加载情况下覆盖预置scss变量
element-ui的默认主题theme-chalk是通过scss预编译的,可以通过修改scss变量达到修改主题的目的. 在项目中改变 SCSS 变量 Element 的 theme-chalk 使用 ...
- sass学习笔记(二):sass的不同样式风格的输出方法
sass的不同样式风格的输出方法 1.嵌套式nested Sass 提供了一种嵌套显示 CSS 文件的方式.例如 nav {ul {margin: 0;padding: 0;list-style: n ...
- hbuilderx 2.9.8 公用css样式_浅谈关于vue中scss公用的解决方案
简述 最近由于项目要求查阅了很多关于scss公用的文章,以下只是对那些文章进行简单的总结 解决方法 a.当我们要使用scss文件的共用时,首先我们就要想到如何应当如何编辑scss文件,比如降低scss ...
- Vue使用scss变量控制主题色
原理将变量注入到body的样式里,改变主题色的时候修改变量的颜色即可. scss变量 --color:red 放body的好处是全局可用. if(sheme==="dark"){d ...
- 提取scss变量,交给js
2019独角兽企业重金招聘Python工程师标准>>> gulp.task('variables.js', function() {/*** 解析scss变量,注入到 variabl ...
- 微前端之实践环境变量设置、快照沙箱隔离、代理沙箱隔离、css 样式隔离、父子应用间通信和子应用间通信
一.微前端之实践环境变量设置.快照沙箱隔离.代理沙箱隔离.css 样式隔离.父子应用间通信和子应用间通信 微前端环境变量设置,如下所示: 在 micro 下的 sandbox 中 performScr ...
最新文章
- 使用badboy录制脚本 结合Jmeter一起测试。
- Mongodb内存管理和使用情况情况查询
- 基于JAVA+SpringMVC+Mybatis+MYSQL的高校后勤管理系统
- android中的sqlite注意事项
- 获取三角形外接圆的圆心坐标、半径
- 02-即时通讯-XMPP 简单介绍
- 如何在CSDN中发表博客
- 加拿大高中计算机课,全面解析加拿大高中课程
- 空城计课件软件测试,空城计课件公开课.ppt
- 三次函数的对称中心问题
- 动态注册 Module
- 电影院里电影票和座位号的关系
- 集合中某几个数字之和等于一个固定值 java
- JZOJ 1285. 奶酪厂
- matlab中图线颜色大全
- Kafka的数据是如何存储的
- Google“窃取”内容渠道控制权?
- 无目标场景下高分辨率激光雷达和相机的像素级外参自标定
- ECG分析:基于深度学习的ECG心律失常分类入门(1)
- Flink / Scala 实战 - 13.TimeWindow 处理迟到数据详解
热门文章
- UI实用素材模板|app底部导航栏的图标可临摹素材,教你分析!
- 内核引导参数IOMMU与INTEL_IOMMU有何不同?
- 《深入浅出DPDK》学习思维导图
- Linux网络报文捕获/抓包技术对比:napi、libpcap、afpacket、PF_RING、PACKET_MMAP、DPDK、XDP(eXpress Data Path)
- 用DPDK rte_ring实现多进程间通信
- pythonios脚本语言-iOS开发Swift篇—(一)简单介绍
- scala的运算符(四)
- ethtool -g rx_魔兽怀旧服:黑G团避坑指南
- python loggeru模块_python常用模块——logger模块
- 黑莓桌面管理器4.2_虚拟桌面管理器行业现状调研分析及发展趋势预测报告(2020)...