sass学习研究_html/css_WEB-ITnose
这篇文章是算是前两天学习sass的一个摘要和总结吧,简单记载下。希望对大家有所帮助
对于什么是sass,我想现在大家可能都有所了解了。其实就是css的一种开发工具,或者也可以说是将css编程化。其实和less是有很大的相似点的。或者说几乎都是相同的。但是对于这两种的高级用法,其实个人更加的偏向于sass!
关于sass的安装以及编译之类的这个东西上网一查一大把的就不多说了
我这里是用koala编译的。
下面简单的总结下sass的几个特点吧。
1、变量:
sass中允许使用变量,在sass中变量都是以$开头的。
$blue:#249804;
div{
color:$blue;
}
如果需要将变量嵌入在字符串中则就必须写在#{}中
类似于我在汇联易中自定义的栅格宽度的sass写法:
@mixin colWidth($value:20%) {
-webkit-box-flex: 0;
-webkit-flex: 0 0 $value;
-moz-box-flex: 0;
-moz-flex: 0 0 $value;
-ms-flex: 0 0 $value;
flex: 0 0 $value;
}
$i:1;
@while $i
.col-#{$i}{
@include colWidth($i*1%);
$i:$i+1;
}
}
//这里用到的Mixin和循环后面会讲到。
变量非常的简单,基本也就这样。
2、计算功能
这个非常的简单,举个例子就可以了
在上面的例子中也用到了,比如$i*1%;
再比如:margin:(10px+2px);
3、嵌套
这里的嵌套给我的感觉就类似于dom树的树状结构似的。
很简单,举个例子就可以了
.hly{
.expense-type-icon-list {
box-shadow: inset 0px 3px 5px 3px rgba(0, 0, 0, .26);
.scroll {
float: left;
.scroll-content-container {
width: 35em;
padding: 8px 10px;
float: left;
img {
float: left;
margin-left: 5px;
}
img:first-child {
margin-left: 0px;
}
}
}
}
}
对应的生成出来的css:
.hly .create-invoice .expense-type-icon-list {
box-shadow: inset 0px 3px 5px 3px rgba(0, 0, 0, 0.26); }
.hly .create-invoice .expense-type-icon-list .scroll {
float: left; }
.hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container {
width: 35em;
padding: 8px 10px;
float: left; }
.hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container img {
float: left;
margin-left: 5px; }
.hly .create-invoice .expense-type-icon-list .scroll .scroll-content-container img:first-child {
margin-left: 0px; }
4、继承
sass允许一个选择器去继承另一个选择器,比如现在有个class1,
.class1{
border:1px soild #ddd;
}
现在有class2要继承class1的属性,则用@extend命令
.class2{
@extend .class1;
font-size:1.5em;
}
5、Mixin
这个可以理解为宏定义,angularjs中的指令,在变量的举例中就有说到了。这里再具体的说下
这里我们通过一个mixin来定义一个代码块
还是拿上面的例子:
@mixin colWidth($value:20%) {
-webkit-box-flex: 0;
-webkit-flex: 0 0 $value;
-moz-box-flex: 0;
-moz-flex: 0 0 $value;
-ms-flex: 0 0 $value;
flex: 0 0 $value;
}
用@include来调用它。
div{
@include colWidth(30%);
}
看到这里大家可能会有个疑问,为什么这里的mixin中有个参数在里面?
其实这个也就是Mixin的强大之处了(当然,你也可以不指定)
当指定了以后,我们可以传入不同的值,当然也可以缺省,当缺省的时候就是默认的指,例如上面的例子就是20%
6、颜色函数
说实话这个我不是很懂,因为基本我觉得是用不到的。简单从网上找了些例子:
lighten(#cc3, 10%) // #d6d65c
darken(#cc3, 10%) // #a3a329
grayscale(#cc3) // #808080
complement(#cc3) // #33c
大家这个也可以多查查。
7、插入文件
简单的一个命令@import
@import("path/fileName.scss");
如果是.css的文件
@import "fileName.css";
8、条件语句
从这里开始应该可以说是sass的一些高级的用法了吧
@if可以用来判断
div{
@if 1+2 ==3 {border:1px soild #ddd};
@if 3
}
当然,既然存在if,必然少不了else!用法如下:
@if lightness($color) > 30% {
background-color: #000;
} @else {
background-color: #fff;
}
9、循环语句
sass支持for循环,while循环以及each命令
for循环:
@for $i form 1 to 10{
.class-#{i}{
margin-left:#{i}px;
}
}
while循环(同样是汇联易中的例子):
@mixin colWidth($value:20%) {
-webkit-box-flex: 0;
-webkit-flex: 0 0 $value;
-moz-box-flex: 0;
-moz-flex: 0 0 $value;
-ms-flex: 0 0 $value;
flex: 0 0 $value;
}
$i:1;
@while $i
.col-#{$i}{
@include colWidth($i*1%);
$i:$i+1;
}
}
each例子:
@each $member in a, b, c, d {
.#{$member} {
background-image: url("/image/#{$member}.jpg");
}
}
10、自定义函数
当然也是有特殊符号的:@function @return
@function double($i){
@return $i*2;
}
div{
margin:double(2em);
}
最后说一句,在项目中尽量还是少用sass的高级用法,因为可能项目跑起来编译特别慢,甚至会卡在高级用法中编译不出sass别的样式
比如我自定的栅格用的Mixin,这个在项目能够很快被编译,但是配合了while循环就会卡死。后来我是引入koala编译出来的css文件引入到项目中的~

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











공식 계정 웹 페이지 업데이트 캐시, 이것은 간단하고 간단하며 냄비를 마시기에 충분히 복잡합니다. 공식 계정 기사를 업데이트하기 위해 열심히 노력했지만 사용자는 여전히 기존 버전을 열었습니까? 이 기사에서는이 뒤에있는 비틀기와 회전을 살펴 보고이 문제를 우아하게 해결하는 방법을 살펴 보겠습니다. 읽은 후에는 다양한 캐싱 문제를 쉽게 처리 할 수있어 사용자가 항상 가장 신선한 콘텐츠를 경험할 수 있습니다. 기본 사항에 대해 먼저 이야기 해 봅시다. 액세스 속도를 향상시키기 위해 브라우저 또는 서버는 일부 정적 리소스 (예 : 그림, CSS, JS) 또는 페이지 컨텐츠를 저장합니다. 다음에 액세스 할 때 다시 다운로드하지 않고도 캐시에서 직접 검색 할 수 있으며 자연스럽게 빠릅니다. 그러나 이것은 또한 양날의 검입니다. 새 버전은 온라인입니다.

이 기사에서는 브라우저에서 직접 사용자 입력을 검증하기 위해 필요한, Pattern, Min, Max 및 Length 한계와 같은 HTML5 양식 검증 속성을 사용하는 것에 대해 설명합니다.

기사는 HTML5 크로스 브라우저 호환성을 보장하기위한 모범 사례에 대해 논의하고 기능 감지, 점진적 향상 및 테스트 방법에 중점을 둡니다.

이 기사는 CSS를 사용한 웹 페이지에 효율적인 PNG 테두리 추가를 보여줍니다. CSS는 JavaScript 또는 라이브러리에 비해 우수한 성능을 제공하며, 미묘하거나 눈에 띄는 효과를 위해 테두리 너비, 스타일 및 색상 조정 방법을 자세히 설명합니다.

이 기사는 HTML & LT; Datalist & GT에 대해 논의합니다. 자동 완성 제안을 제공하고, 사용자 경험을 향상시키고, 오류를 줄임으로써 양식을 향상시키는 요소. 문자 수 : 159

이 기사는 HTML & lt; Progress & Gt에 대해 설명합니다. 요소, 그 목적, 스타일 및 & lt; meter & gt의 차이; 요소. 주요 초점은 & lt; progress & gt; 작업 완료 및 & lt; meter & gt; Stati의 경우

이 기사는 html5 & lt; time & gt; 시맨틱 날짜/시간 표현 요소. 인간이 읽을 수있는 텍스트와 함께 기계 가독성 (ISO 8601 형식)에 대한 DateTime 속성의 중요성을 강조하여 Accessibilit를 향상시킵니다.

이 기사는 HTML & lt; meter & gt에 대해 설명합니다. 범위 내에 스칼라 또는 분수 값을 표시하는 데 사용되는 요소 및 웹 개발의 일반적인 응용 프로그램. & lt; meter & gt; & lt; Progress & Gt; 그리고 Ex
