웹 프론트엔드 HTML 튜토리얼 学习Sass 的基本语法规则[Sass和compass学习笔记]_html/css_WEB-ITnose

学习Sass 的基本语法规则[Sass和compass学习笔记]_html/css_WEB-ITnose

Jun 24, 2016 pm 12:05 PM
sass 공부하다 규칙 문법

自从发现可编程的css语法 Sass和基于Sass的css库compass

一个给我的感觉像c# 另外一个给我的感觉像.NET Framework,一切都为了提升开发效率和降低开发大型web的门槛。

当web开发趋势迈进WebApi+Js 时代,compass和Sass 会不会成为web开发的标配?这个得实际开发检验下.

预处理

当web站点变的越来越复杂。

先是html 复杂了----》动态编程语言解决方案

js复杂了---》jq和dojo 等解决方案

css现在也变的复杂了,但是css本身没有编程的功能,所以面向css预处理的中间件出现了,想compass和Sass这种想编写程序一样编写css,然后通过预处理,处理为浏览器可以解析的css,降低了构建更加强大的web站点复杂度。

变量

变量和js、c# 里面的变量差不多,都是用来存储东西了,我这样的菜鸟写css,最头疼一次修改好多高度,颜色等等,有了变量,即使是最笨的方法,编写css也比以前快多了了

在 sass 里面变量的标识符是$,话说和jq是一样的标识符呢

例如

$font-stack:    Helvetica, sans-serif;$primary-color: #333;body {  font: 100% $font-stack;  color: $primary-color;}
로그인 후 복사

这样编写的sass版的css在经过compass预处理后是可以正常解析的css,而且每一行还会有行号,用于对照比较,刚开始非常担心处理前和处理后如何联系到一起,排查BUG,后来发现有行号,so 方便

body {  font: 100% Helvetica, sans-serif;  color: #333;}
로그인 후 복사
嵌套和作用域

以前写css,最蛋疼的就是 css默认规则是一行一行的,BUT css超过一屏幕,我就搞不清楚这些css 是怎么个关系。。。

现在好了 有{} 嵌套和作用域,像写程序一样写css

纳尼,作用域?上面都有了变量跟定得有作用域,不知道作用域的,百度下

sass 的嵌套 和预处理后的css 是按照html对css的继承和处理规则来的,看着比以前舒服多了

nav {  ul {    margin: 0;    padding: 0;    list-style: none;  }  li { display: inline-block; }  a {    display: block;    padding: 6px 12px;    text-decoration: none;  }}
로그인 후 복사
预处理后 是这样的
nav ul {  margin: 0;  padding: 0;  list-style: none;}nav li {  display: inline-block;}nav a {  display: block;  padding: 6px 12px;  text-decoration: none;}
로그인 후 복사

对于作用域,官方的demo 没有解释,这个是在书里面看到的

例如

div{$font-stack:    Helvetica, sans-serif;$primary-color: #333;}li{$font-stack:    Helvetica, sans-serif;$primary-color: #333;}
로그인 후 복사

在不同 {} 作用域内的变量互不影响

模块

看到这个单词 Partials,真的是喜极而泣啊,以前随便打开一个css文件都是1k行以上,本菜鸟在里面看代码,就好像在迷宫里面迷路一样,

sass的模块化是将需要模块化的css放在一个以下划线开始的单独的文件里面例如_partial.scss,使用这个模块的时候用@import导入即可

不支持模块化css的css框架都是耍流氓!

Import 导入模块

在css中使用一个Import 便会像服务器端发起一个请求,在sass中使用Import,compass 可以导入一个模块,而且会合并这个导入的文件.

例如, 重置浏览器默认样式的模块

// _reset.scsshtml,body,ul,ol {   margin: 0;  padding: 0;}
로그인 후 복사
导入是这样导入的
/* base.scss */@import 'reset';body {  font-size: 100% Helvetica, sans-serif;  background-color: #efefef;}
로그인 후 복사

生成的css 是浏览器可以解析的,而且带行号,方便对比

html, body, ul, ol {  margin: 0;  padding: 0;}body {  background-color: #efefef;  font-size: 100% Helvetica, sans-serif;}
로그인 후 복사
sass 中的函数方法--Mixins

函数 有函数名 参数 可选选参数,返回值等

在sass中 这些统统都有!具体我还在看书,这是官方的demo,足以发现mixins 是挺好用的

定义一个方法

@mixin border-radius($radius) {  -webkit-border-radius: $radius;     -moz-border-radius: $radius;      -ms-border-radius: $radius;          border-radius: $radius;}
로그인 후 복사
使用一个方法
.box { @include border-radius(10px); }
로그인 후 복사

可以发现用@mixin开头 后跟方法 名称 括号内为参数,{}中间为返回内容,

使用@include 后跟方法名和括号,便可以调用这个方法

compass预处理后 生成的css如下

.box {  -webkit-border-radius: 10px;  -moz-border-radius: 10px;  -ms-border-radius: 10px;  border-radius: 10px;}
로그인 후 복사
继承

此继承为sass组织代码的继承规则,非html解析和呈现css时候的继承规则,不要搞混了。。。,虽然生成的代码符合css继承规则。。。。。。

继承 使用的关键字是@extend,使用很简单,来看一个官方的demo

.message {  border: 1px solid #ccc;  padding: 10px;  color: #333;}.success {  @extend .message;  border-color: green;}.error {  @extend .message;  border-color: red;}.warning {  @extend .message;  border-color: yellow;}
로그인 후 복사
预处理后生成的代码
.message, .success, .error, .warning {  border: 1px solid #cccccc;  padding: 10px;  color: #333;}.success {  border-color: green;}.error {  border-color: red;}.warning {  border-color: yellow;}
로그인 후 복사
操作符

sass 支持+、-、*、/、% 加减乘除和求余,是在是太劲爆了,这样在写宽度和高等等地方有更加方便了

看看官方的demo

.container { width: 100%; }article[role="main"] {  float: left;  width: 600px / 960px * 100%;}aside[role="complimentary"] {  float: right;  width: 300px / 960px * 100%;}
로그인 후 복사

预处理后的代码

.container {  width: 100%;}article[role="main"] {  float: left;  width: 62.5%;}aside[role="complimentary"] {  float: right;  width: 31.25%;}
로그인 후 복사

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

C 언어의 매력을 밝히다: 프로그래머의 잠재력을 발견하다 C 언어의 매력을 밝히다: 프로그래머의 잠재력을 발견하다 Feb 24, 2024 pm 11:21 PM

C 언어 학습의 매력: 프로그래머의 잠재력을 여는 것 지속적인 기술 발전으로 컴퓨터 프로그래밍은 많은 주목을 받는 분야가 되었습니다. 많은 프로그래밍 언어 중에서 C 언어는 항상 프로그래머들에게 사랑을 받아 왔습니다. C 언어의 단순성, 효율성 및 폭넓은 적용 덕분에 많은 사람들이 프로그래밍 분야에 입문하는 첫 번째 단계는 C 언어입니다. 이 기사에서는 C 언어 학습의 매력과 C 언어 학습을 통해 프로그래머의 잠재력을 발휘하는 방법에 대해 설명합니다. 우선, C 언어 학습의 매력은 단순함에 있습니다. C언어는 다른 프로그래밍 언어에 비해

Pygame 시작하기: 종합적인 설치 및 구성 튜토리얼 Pygame 시작하기: 종합적인 설치 및 구성 튜토리얼 Feb 19, 2024 pm 10:10 PM

처음부터 Pygame 배우기: 전체 설치 및 구성 튜토리얼, 특정 코드 예제 필요 소개: Pygame은 Python 프로그래밍 언어를 사용하여 개발된 오픈 소스 게임 개발 라이브러리로, 개발자가 다양한 유형을 쉽게 만들 수 있도록 풍부한 기능과 도구를 제공합니다. 게임의. 이 기사는 처음부터 Pygame을 배우는 데 도움이 될 것이며, 완전한 설치 및 구성 튜토리얼과 빠른 시작을 위한 특정 코드 예제를 제공할 것입니다. 1부: Python 및 Pygame 설치 먼저 다음 사항을 확인하세요.

워드에서 근수를 입력하는 방법을 함께 알아볼까요? 워드에서 근수를 입력하는 방법을 함께 알아볼까요? Mar 19, 2024 pm 08:52 PM

Word에서 텍스트 내용을 편집할 때 수식 기호를 입력해야 하는 경우가 있습니다. 어떤 사람들은 Word에서 근수를 입력하는 방법을 모르기 때문에 편집자에게 Word에서 근수를 입력하는 방법에 대한 튜토리얼을 친구들과 공유해달라고 요청했습니다. 그것이 내 친구들에게 도움이 되기를 바랍니다. 먼저 컴퓨터에서 Word 소프트웨어를 연 다음 편집하려는 파일을 열고 루트 기호를 삽입해야 하는 위치로 커서를 이동합니다. 아래 그림 예를 참조하세요. 2. [삽입]을 선택한 후, 기호에서 [수식]을 선택하세요. 아래 그림의 빨간색 원과 같이 3. 아래의 [새 수식 삽입]을 선택하세요. 아래 그림의 빨간색 원과 같이 4. [부수]를 선택한 후 해당 부수를 선택합니다. 아래 그림의 빨간색 원에 표시된 대로:

포인터 비교에 대한 규칙과 예외는 무엇입니까? 포인터 비교에 대한 규칙과 예외는 무엇입니까? Jun 04, 2024 pm 06:01 PM

C/C++에서 포인터 비교 규칙은 다음과 같습니다. 동일한 객체를 가리키는 포인터는 동일합니다. 다른 객체에 대한 포인터는 동일하지 않습니다. 예외: 널 주소에 대한 포인터는 동일합니다.

Go 언어의 주요 기능을 처음부터 배우세요 Go 언어의 주요 기능을 처음부터 배우세요 Mar 27, 2024 pm 05:03 PM

제목: Go 언어의 주요 기능을 처음부터 배우세요. Go 언어는 간단하고 효율적인 프로그래밍 언어로 개발자들이 선호합니다. Go 언어에서 main 함수는 진입 함수이고, 모든 Go 프로그램은 프로그램의 진입점으로 main 함수를 포함해야 합니다. 이 글에서는 Go 언어의 주요 기능을 처음부터 배우는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 먼저 Go 언어 개발 환경을 설치해야 합니다. 공식 홈페이지(https://golang.org)에 접속하시면 됩니다.

람다 표현식의 구문과 구조적 특징은 무엇입니까? 람다 표현식의 구문과 구조적 특징은 무엇입니까? Apr 25, 2024 pm 01:12 PM

람다 표현식은 이름이 없는 익명 함수이며 구문은 (parameter_list)->expression입니다. 익명성, 다양성, 커링 및 폐쇄 기능이 특징입니다. 실제 응용 프로그램에서는 람다 표현식을 사용하여 합산 함수 sum_lambda=lambdax,y:x+y와 같은 함수를 간결하게 정의하고 map() 함수를 목록에 적용하여 합산 작업을 수행할 수 있습니다.

Go 언어와 JS의 연관성과 차이점 Go 언어와 JS의 연관성과 차이점 Mar 29, 2024 am 11:15 AM

Go 언어와 JS의 연결 및 차이점 Go 언어(Golang이라고도 함)와 JavaScript(JS)는 현재 널리 사용되는 프로그래밍 언어로, 어떤 측면에서는 서로 관련되어 있지만 다른 측면에서는 분명한 차이점이 있습니다. 이 기사에서는 Go 언어와 JavaScript 간의 연결과 차이점을 살펴보고 독자가 이 두 프로그래밍 언어를 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 연결: Go 언어와 JavaScript는 모두 크로스 플랫폼이며 다른 운영 체제에서 실행될 수 있습니다.

20개의 Dune 분석 대시보드를 이해하고 체인의 추세를 빠르게 파악하세요. 20개의 Dune 분석 대시보드를 이해하고 체인의 추세를 빠르게 파악하세요. Mar 13, 2024 am 09:19 AM

원저자: Minty, 암호화 KOL 원본 편집: Shenchao TechFlow 사용법을 알고 있다면 Dune은 올인원 알파 도구입니다. 20개의 Dune 대시보드를 사용하여 연구를 한 단계 더 발전시키세요. 1. TopHolder 분석 @dcfpascal이 개발한 이 간단한 도구는 보유자의 월간 활동, 고유 보유자 수, 지갑 손익 비율과 같은 지표를 기반으로 토큰을 분석할 수 있습니다. 방문 링크: https://dune.com/dcfpascal/token-holders2 토큰 개요 측정항목 @andrewhong5297이 사용자 작업을 분석하여 토큰을 평가하는 방법을 제공하는 이 대시보드를 만들었습니다.

See all articles