学习Sass 的基本语法规则[Sass和compass学习笔记]_html/css_WEB-ITnose
自从发现可编程的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中 这些统统都有!具体我还在看书,这是官方的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%;}

핫 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)

뜨거운 주제











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

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

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

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

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

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

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

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