css框架之 ---- SASS
SASS是最早的CSS预处理语言,有比LESS更为强大的功能,不过其一开始的缩进式语法并不能为大众接受,不过由于强大的功能,还是有很多开发者选择了SASS。
SASS是采用了Ruby语言编写的一款CSS预处理语言,(不用担心,我们并不用学习Ruby也可以使用全部功能)诞生于2007年,最初是为了配合HAML(缩进式HTML预编译器)而设计。
缩进式风格可以缩减代码量,强制代码风格,但不为大多数程序员接受,而且无法兼容已有的CSS代码,这也是SASS出现早,但是没有LESS普及广的原因之一。
但是SASS三代开始,SASS开始迎合程序员的使用习惯,放弃缩进式,以及完全兼容普通的CSS代码,这一代的SASS也称之为SCSS。 相比LESS,SASS功能更加强大。
sass有两种后缀名文件:
一种后缀名为sass,不使用大括号和分号;
另一种就是我们这里使用的scss文件,这种和我们平时写的css文件格式差不多,使用大括号和分号。
语法区别:
文件后缀名为sass的语法:
body background: #eee font-size:12px pbackground: #0982c1
文件后缀名为scss的语法:
body {background: #eee;font-size:12px;
}
p{background: #0982c1;
}
基本使用:
变量的使用这里使用 $ 号开头
(这一块和LESS区别不大,所以做个简单的实验)
<div id="main"></div>
main.scss---注意后缀名
$color:red;
div{background-color: $color;height: 200px;width: 200px;
}
执行编译(考拉最新版---查看软件中sass的3.3.7)
计算,和less一样,也不支持减法
$number:10px;
$heidth:$number+190;
$width:$number*20;div{background-color: red;height: $heidth;width: $width;
}
支持@IMPORT导入
在CSS中
1、@IMPORT URL(WODE.CSS)机制是不同于LINK的,LINK是在加载页面前把CSS加载完毕,而@IMPORT URL()则是读取完文件后在加载,所以会出现一开始没有CSS样式,闪烁一下出现样式后的页面(网速慢的情况下)。
2、@IMPORT 是CSS2里面的,所以古老的IE5不支持。
3、当使用JAVASCRIPT控制DOM去改变样式的时候,只能使用LINK标签,因为@IMPORT不是DOM可以控制的。
注意:@IMPORT先加载HTML加载CSS;
LINK先加载CSS加载HTML。
@import的小毛病
如果你网页head标签里面十分简单,只有@import属性的话,当用户浏览的网速较慢时,他会看到一个没有风格样式的页面,然后随着CSS文件被下载完成才可以看到应有的风格.要避免这样的问题,你需要确保head里至少有一个script或是link标签.
实验main.css main1.css mian.scss
页面文件:
<div id="main"></div>
main.scss
@import "main1.css";main1.css
div {background-color: red;height: 200px;width: 200px;
}
@extend 继承
很多编程语言中都有继承这个概念(非常酷的概念可以大大节约代码量);
#div{width: 200px;height: 200px;
}#main{ @extend #div;background-color: red;
}
#message{@extend #div;background-color: gray;
}
编译之后:
#div, #main, #message {width: 200px;height: 200px; }#main {background-color: red; }#message {background-color: gray; }
@mixin 混入
这里跟less有一定的区别:
@mixin div{width: 200px;height: 200px;
}
#main{@include div;
}
#message{
@include div;
}
——注意这里声明的部位和之前有点区别;
——引用也有区别,这样用关键字是比less麻烦了还是更清晰呢
嵌套
这一块和less没什么区别:
<div id="main"><p>文章类容</p><div id="message">hello world</div></div>#main{width: 200px;height: 200px;background-color: grey;p{color: red;font-size: 14px}#message{width: 50px;height: 50px;background-color: blanchedalmond;}
}
@function
方法的编写和js函数一样,选择使用
实验: 页面有三个div被一个大div包含,要求用sass编写
<div id="main"><div class="one"></div><div class="two"></div><div class="three"></div></div>@function setSize($size){@return $size
}
@mixin div-init{position: absolute;
}
$size:200px;
#main{height: setSize($size)*2;width: setSize($size)*2;background-color: grey;@include div-init;.one{height: setSize($size);width: setSize($size);background-color: red;@include div-init;}.two{height: setSize($size)-100;width: setSize($size)-100;background-color: blue;@include div-init;}.two{height: setSize($size)/2;width: setSize($size)/2;background-color: yellow;@include div-init;}
}
转载于:https://www.cnblogs.com/mustard-zy/p/4735033.html
css框架之 ---- SASS相关推荐
- SpaceBase – 基于 Sass 的响应式 CSS 框架
SpaceBase 是一个基于 Sass 的响应式 CSS 框架.SpaceBase 是可以在建立和定制您的需要的一个样板层,它结合最佳实践为今天的响应式网页与我们对每一个项目中使用的核心组件. 在线 ...
- LESS CSS 框架简介与使用
简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. ...
- 构建稳固的、可升缩的CSS框架的八大原则
为什么80%的码农都做不了架构师?>>> 这些原则都是我从这些年工作中所含盖的各个大型.复杂的web项目中总结出来的.而这些事情也都是我这些年被多次问到的,所以觉得将其用文档的 ...
- 介绍27款经典的CSS框架
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd> ...
- [转]LESS CSS 框架简介
简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. ...
- 27 款经典的CSS 框架
27 款经典的CSS 框架 利用 CSS 框架,可以简化你的工作,提高工作效率.CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版.网格布局.表单样式.通用规则等代码块.下面给 ...
- LESS CSS 框架简介(转)
为什么80%的码农都做不了架构师?>>> 原文地址:http://www.ibm.com/developerworks/cn/web/1207_zhaoch_lesscss/ ...
- 前端开发必备的1个CSS框架
常言道:工欲善其事,必先利其器,项目紧,框架还是很有必要的. 1. Bootstrap 最初被称为Twitter Blueprint的Bootstrap,是作为内部团队使用的工具而创建的.它是最著名的 ...
- 2019 css 框架_宣布CSS 2019调查状态
2019 css 框架 by Sacha Greif 由Sacha Greif 宣布#StateOfCSS 2019调查 (Announcing the #StateOfCSS 2019 Survey ...
- 27款经典网站设计必备的CSS框架
1. BlueTrip (网址:http://bluetrip.org/) BlueTrip 是一个集成了BluePrint & Tripoli 框架的做好的部分;Hartija 的打印样式; ...
最新文章
- 机器学习小抄,轻松搞定理解机器学习!
- 超实用!图像去畸变矫正及双线性内插法
- Oracle存储过程小解
- tensorflow2.0中的Broadcasting用法
- SQL SERVER2000将多行查询结果拼接到一行数据及函数的创建
- uni app input添加获取验证码按钮_uni-app跨平台框架对微信小程序的无障碍支持探索...
- 如何判断单链表是否存在环
- hbase 预写日志_HDInsight HBase 加速写入现已正式发布
- revit插件有哪些常用的?介绍几个常用的revit插件操作简单
- 偏微分方程数值解联系 - 向前差分法 - 一维热传导
- 钛资本研究院:全球产业链重构下的芯片机遇
- python统计大写辅音字母_大写
- linux网络重设,Linux ADSL拨号上网
- 为什么程序员怕改需求?
- PPT 问题 PowerPoint 储存此文件时发生错误
- 用python如何制作表格_Python中如何用xlwt制作表格
- 15万甚至30万以内的SUV值不值得买?
- echarts绘制各种图表(柱形、折线、柱形、饼图、南丁格尔、环形、中国地图散点图、百度地图散点图、词云图)
- [老齐的求职攻略] 第四章 现场面对面
- 向Mysql批量插入50万条数据
热门文章
- leetcode之Contains Duplicate
- 为什么要用火狐浏览器
- 构建路径_深度学习的幸福课堂构建从评价细则中找“路径”——基于深度学习的幸福课堂构建实践研究...
- 象棋python代码_python象棋_python 象棋_python象棋源码 - 云+社区 - 腾讯云
- 怎么判断网络回路_地暖管漏水怎么办?一打、二看、三确定,及时查出地暖管漏水点!...
- ERROR: The minSdk version should not be declared in the android manifest file.
- 软件开发应用分层、每层的作用及各层之间调用关系
- 3.4选择性嵌入服务容器
- 1.2执行更高级的线程任务(Performing More Advanced Thread Tasks)
- MyBatis的ResultMaps之一对一关系