Scss的使用场景

一、Scss

1.CSS有几个缺点

  • 语法不够强大,没有变量和合理的样式复用机制
  • 使得逻辑上相关的属性值必须以字面的形式重复输出,难以维护
  • 动态的样式语言为css富裕了动态语言的特性
  • 极大的提高了样式语言的可维护性

常见的样式语言:

1.scss/sass(scss兼容sass,scss更接近css的语法格式)

2.stylus

3.less

动态语言------css预处理----->*.css

2.什么是SCSS

是一款强化css的辅助工具

在css的语法上,增强了变量、嵌套,混合,导入,函数等高级功能。这些拓展另css更加强大与优雅。

3.scss的作用,有助于更好的管理样式文件,以及更高效的开发项目。

4.scss的使用

1.在服务器端使用

  • 安装nodejs解释器
  • 安装scss的编译程序

在线安装  npm install -g node-sass

注意:要求node.js版本在8.11以上

2. 把sass包中的4个文件拷贝进node.js文件夹

  • 在黑窗口或者ws的控制台(alt+f12)输入
  • node-sass-v 检测sass版本
  • 如果输入版本,说明sass安装成功

3.编写01.scss文件

  1. 把.scss转化为.css文件
  2. 在正确路径下,打开黑窗口,输入
  3. node-sass scss/01.scss    css/01.css
  4. 如果生成01.css则正确
  • 批量把scss转化为css,多文件转换命令
  • node-sass  scss 文件夹 -o css文件夹
  • 单文件监听命令,scss文件一旦保存,自动转换为css文件
  • node-sass -w scss/01.scss css/01.css

多文件监听

  • node-sass  -w scss -o css

二、SCSS的基础语法 

1.变量

使用$表示变量

变量的命名规范,遵循css中选择器的命名规范,

可以包含_ -,不能以数字开头,见名知意

  1. $jd-red:#f10125;颜色变量
  2. $w:100px;数值变量
  3. $before-content:"子曾经曰过"字符串变量
  4. $border-style:solid;样式变量

注意:

  1. 声明变量时,变量值可以应用其他的变量。
  2. 变量定义在{}规则外边,整个样式文件中都可以使用,如果定义在{}规则块外边,只能在当前规则块中使用。
  3. 声明重复变量,后声明的变量会覆盖前面的变量。
  4. !default规则,如果变量已经声明赋值了,那就用它之前声明的值

样式嵌套规则:

#content{

color:#f00;

div.top{

margin:0 auto;

h1{font-weight:normal}

p{font-size:20px;}

}

}

a{

color:#f00;

&:hover{

color:#00f;

}

}

群组选择器的嵌套

nav,div,footer{

a{

color:#000;

&:hover{color:#f00;}

}

}

属性嵌套

div{

border:{style:solid;width:1px;color:#f00;}

}

2.导入scss文件

在SCSS中,局部文件以下划线开头

这样做,sass在编译时就不会编译以下划线开头的文件,而是把这个文件用作导入。

引入局部文件时,是关键字@import "局部文件名",局部文件省略了下划线和后缀。

并且一个局部文件可以被多个SCSS文件引用。

3.混合器

把需要在多个样式文件中出现的,相同的部分提取出来,封装到混合器中。

关键字 @mixin 混合器名称{重用的样式}

使用,关键字 @include 混合器名称。就可以在很多的样式中使用封装好的样式了。

带参数的混合器(类似参数的function)

  • 定义混合器的时候,在()添加参数
  • 调用混合器的时候,在()把参数补上

@mixin lin-colors($normal,$hover,$visited){

color:$normal;

$:hover{color:$hover}

$:visited{color:$visited}

}

ul li a{

@include lin-colors{#f00,#0f0,#00f};

}

#content a{

@include lin-colors{#faa,#afa,#aaf};

}

4.继承

继承就是说一个选择器可以继承另一个选择器定义的所有样式

在css中的表现形式是两个选择器共有的部分,变成了群组选择器

三、运算

1.数字

  • 加减乘除,求模取值
  • 会在不同单位间转换值
  • width:1in+8pt;
  • scss不能转换相对单位
  • height:1rem+1em;

(1)注意:加法

p::before{

content:"Microsoft"+yahei;

font-family:A+"rial"

}

结果

content:"Microsoftyahei";

font-family:Arial;

+  可以用于连接字符串

如果用引用去连接无引号的字符串,结果是有引号的

如果用无引号去连接有引号的字符串,结果是无引号的

(2)减法

-  会被优先解析为变量名,所以使用变量和减法,需要-前后添加空格

width:$size  -  $my-width

(3)除法

在scss中,除号经常起到分隔的用途 /

p{

font:10px/5px;

$width:100px;

width:$width/2;

height:(500px/2);

margin:5px+8px/2px;

}

在以下的情况视为除法运算

  1. 如果值,或者值的一部分,是变量或者函数的返回值
  2. 如果值被小括号包裹,视为除法
  3. 如果值是算术表达式的一部分,视为除法

(4)运算表达式与其他值连用时,用空格做连接

margin:4px + 5px auto;

(5)在有引号的字符串中,使用#{}插值语句可以添加动态的值

content:"I ate #{16+23} baozis"

2.颜色的运算

颜色是分段计算的,红+红  绿+绿  蓝+蓝

rgb(23,32,45)+rgb(11,23,33)

rgba(11,22,33,0.1)+rgba(22,33,44,0.1)

两个rgba相加,alpha的值,必须相等才可以计算,因为算术运算符不会作用到alpha

四、函数

1.scss定义了多种函数,有些函数甚至直接在css中调用

1.颜色函数

  • rgba(red,green,blue,alpha)
  • hsl(hue,saturation,lightness)
  • hue:色调  取值 0~360 3个色段 每120 一个色段
  • saturation:饱和度 0.0%~100.0%
  • lightness:亮度 0.0%~100.0%

2.数字函数

round($value) 四舍五入

ceil($value)向上取整

floor($value)

max($v1,$v2,.......)

min($v1,$v2,........)

random()

3.字符串函数

unquote($string) 删除字符串引号

quote($string)给字符串添加引号

To-upper-case()

To-lower-case()

2.自定义函数

@function 函数名($n){

函数体;

@return 结果;

}

四.控制指令

@if  1+1=4{border-radius:50%}

@else if(1-1==-1){border-radius:30%}

@else {border-radius:10%}

@if,@else if ,@else

boolean 表达式,可以添加括号,也可以不加

原文地址:https://www.cnblogs.com/sna-ling/p/11621999.html

时间: 2024-11-10 12:54:10

Scss的使用场景的相关文章

vue2.0以上版本安装sass(scss)

一.首先说明sass和scss的区别. 1.异同:1)简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力.语法形式上有些许不同,最主要的就是sass是靠缩进表示嵌套关系,scss是花括号 2)文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 SCSS 是以“.scss”后缀为扩展名 3)语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号(;),而 SCSS 的语法书写和我们的 CSS 语法书写方式非常类似.

《好好说话》:常见沟通场景的应对误区与应答思路、应答句式。4星。

全书针对谈话的常见场景,分析双方的本质问题和应答方的常见应对误区.应该的应答思路与句式.对沟通双方的思路的分析比较有功力. 感觉是从大专辩论赛的角度来组织全书的结构的.我更同意马东在序言中的说法,这本书更应该叫<好好思考>.不过如果从“好好思考”的角度来写书,全书的结构和重点要做一些变化. 书中把语言沟通的五种常见场景(沟通.说服.谈判.演讲.辩论)称作五个维度,还画了一个五边形,我认为这是全书最大的败笔,这里说“五种场景”比“五个维度”跟合适,用表格比用五边形更合适. 个人感觉:在大部分的场

淘宝网的质量属性的场景描述

质量属性 可用性 简单介绍 系统应能长期稳定地提供服务,近似7 X 24小时工作强度: 在负载过重或是系统崩溃的情况下,能保证用户请求不丢失: 当系统出现故障或崩溃时,恢复时间不超过两小时: 场景部分 可能的值 刺激源 业务快速发展 刺激 PHP模式易开发.难维护 制品 淘宝的网页 环境 更换技术 相应 改PHP为Java, 改MySql为oracle 相应度量 2004年开始稳定的供其使用 质量属性 可修改性 简单介绍 修改某个子系统或服务时,不影响其他子系统或服务: 场景部分 可能的值 刺激

小程序的使用场景及用途分析

今天看了小程序的介绍,仔细研究了一番,忽然有了这么一个想法,小程序是口碑传播的大杀器. 小程序依托于微信,先看下张小龙对于这两个的表述 我认为微信是一个工具,这是一个非常庞大的目标,我不认为工具是低层面的东西,事实上,人类从原始人进化到现在正是因为会使用工具.工具有好坏之分,要做一个非常好的工具难度是非常大的. 希望微信及微信相关的产品希望它展现给用户的是更有价值是他所需要的东西,用完即走体现在微信的方方面面,帮助用户提高它的效率,缩短他完成一个任务所需要的时间. 小程序是一个不需要下载安装就可

kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? 4.partitions设计的目的的根本原因是什么? 一.入门 1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.k

《虚拟人》:准科幻,讨论人的记忆与思维能力能够复制到机器之后的种种场景。3星。

感觉实质内容更像科幻小说(形式上不像).一开始判断人类将可以把大脑中的记忆与思维能力复制到软件,后面大部分都基于这个假设来讨论由此带来的社会.法律.宗教方面的各种可能出现的场景.3星. 以下是书中一些内容的摘抄: 1:事实上,有人与我持相同看法.本书内容大部分来自2003—2011年间我赞助过的座谈会和研讨会,书中观点参考了当今诸多颇具创造性.技术性和科学性的研究先锋们的观点.#286 2:“有重要证据显示,人类不是唯一拥有能够产生意识神经基质的物种.非人类动物,包括所有哺乳动物和鸟类.许多其他

HTTPS 原理剖析与项目场景

最近手头有两个项目,XX导航和XX产业平台,都需要使用HTTPS协议,因此,这次对HTTPS协议做一次整理与分享. 为什么使用HTTPS HTTP 协议,本身是明文传输的,没有经过任何安全处理.那么这个时候就很容易在传输过程中被中间者窃听.篡改.冒充等风险.这里提到的中间者主要指一些网络节点,是用户数据在浏览器和服务器中间传输必须要经过的节点,比如 WIFI 热点,路由器,防火墙,反向代理,缓存服务器等. HTTP 协议,中间者可以窃听隐私,使用户的敏感数据暴露无遗:篡改网页,例如往页面插的广告

Android 原生开发、H5、React-Native使用利弊和场景技术分享

http://m.blog.csdn.net/article/details?id=51778086 发表于2016/6/28 18:52:46  1176人阅读 最近工作中接触到React-Native框架,对其进行一些技术分析,结合之前了解的H5的一部分,加上自己做了很久的原生开发(十几个android app.sdk,包括2个ios), 总结下目前了解到的这三种移动端应用开发方式的特点和试用范围,作为个人知识的记录,也作作为公司内部互相学习的分享. 一.原生开发   原生开发是系统自带的a

架构设计:系统间通信(32)——其他消息中间件及场景应用(下2)

(接上文<架构设计:系统间通信(31)--其他消息中间件及场景应用(下1)>) 5-3.解决方案二:改进半侵入式方案 5-3-1.解决方法一的问题所在 方案一并不是最好的半侵入式方案,却容易理解架构师的设计意图:至少做到业务级隔离.方案一最大的优点在于日志采集逻辑和业务处理逻辑彼此隔离,当业务逻辑发生变化的时候,并不会影响日志采集逻辑. 但是我们能为方案一列举的问题却可以远远多于方案一的优点: 需要为不同开发语言分别提供客户端API包.上文中我们介绍的示例使用JAVA语言,于是 事件/日志采集