목차
第一章 Sass和Compass让样式表重焕青春
1.2.1 通过变量来复用属性值
1.2.2 通过嵌套来快速写出多层级的选择器
1.2.3 使用混合器来复用一段样式
 1.2.4 使用选择器继承来避免重复属性
 1.3 Compass是什么
1.4 创建一个Compass项目
 1.5 使用Compass解决真实的CSS问题
 1.5.1 通过重置来保持样式表现一致
 1.5.2 引入基本布局--Blueprint网格布局
 1.5.3 通过表格辅助器为表格添加更加专业的斑马条纹样式
 1.5.4 CSS3属性无需再写厂商前缀
 1.6 小结
 第二章 Sass基本语法
 2.1 使用变量
 2.1.1 变量声明
 2.1.2 变量引用
 2.2 嵌套CSS规则
 2.2.1 父选择器的标识符&
 2.2.2 群组选择器的嵌套
 2.2.3 子组合选择器和同层组合选择器:>、+、~
 2.2.4 嵌套属性
 2.3 导入Sass文件
 2.3.1 使用Sass部分文件
2.3.2 默认值设置
2.3.3 嵌套导入
2.3.4 原生的CSS导入
2.4 静默注释
2.5 混合器
2.5.1 何时使用混合器
2.5.2 混合器中的CSS规则
2.5.3 给混合器传参
2.5.4 默认参数值
2.6 使用选择器继承来精简CSS
2.6.1 何时使用继承
2.6.2 继承的高级用法 
2.6.3 继承的工作细节
2.6.4 使用继承的最佳实践
2.7 小结
웹 프론트엔드 HTML 튜토리얼 (一)认识Sass和Compass_html/css_WEB-ITnose

(一)认识Sass和Compass_html/css_WEB-ITnose

Jun 24, 2016 am 11:44 AM

第一章 Sass和Compass让样式表重焕青春

// 内容概要
// 开始学习Sass和动态样式表
// 用Sass更高效地写样式表
// Compass简介
// 用Compass迎接工程实践中的样式挑战

1.2.1 通过变量来复用属性值

1 声明变量:<strong>$blue:#1875e7</strong>;2 调用变量:.blue { color:<strong>$blue</strong>; }
로그인 후 복사

1.2.2 通过嵌套来快速写出多层级的选择器

1 ul{2     float:right;3     li {4         float:left;5         a{ color:#111; }6     }7 }
로그인 후 복사

1.2.3 使用混合器来复用一段样式

 1 <strong>@mixin list</strong> { 2     li { 3         float:left; 4         margin-right:10px; 5     } 6 } 7 ul { 8 <strong> @include list</strong>; 9 }10 11 // 在混合器中应用变量12 @mixin list(<strong>$spacing:10px</strong>) {  13     li {14         float:left;15         margin-right:<strong>$spacing</strong>;16     }17 }
로그인 후 복사

1.2.4 使用选择器继承来避免重复属性

 1 .error { 2     border:1px #f00; 3     background:#fdd; 4 } 5 .bacError { 6 <strong> @extend .error;    // 继承选择器里的内容 </strong> 7     border-width:3px; 8 } 9 10 //<strong> 在选择器中使用占位选择器</strong>11 Sass:12     %button-reset {    <strong>// 占位选择器; </strong>13         margin:0;14         padding:.5em 1.2em;15     }16     .save {17         <strong>@extend %button-reset;  // 继承占位选择器里的内容; </strong>18         color:white;19     }20     .delete {21         <strong>@extend %button-reset; </strong>22         color:black;23     }24 CSS:25     .save,.delete {26         margin:0;27         padding:.5em 1.2em;28     }
로그인 후 복사

1.3 Compass是什么

// Compass是一个强大的Sass框架,它的设计目标是顺畅、高效地装扮互联网,使用它的人可写出可维护性更高的样式表;

1.4 创建一个Compass项目

// 确保电脑已经安装Ruby环境,并且安装了Sass和Compass

1 $ <strong>compass create sample</strong>
로그인 후 복사

1.5 使用Compass解决真实的CSS问题

// 接下来将通过使用Compass的内置模块(Sass的函数和其他特性组合而成)来实现CSS重置、网格布局、表格格式化和CSS3的一些特性;

1.5.1 通过重置来保持样式表现一致

1 (1).<strong>@import "compass/reset"</strong>2 //<strong> 通过Sass引入命令@import引入Compass的重置模块;</strong>3 // reset模块是<strong>Compass框架中独立的一部分</strong>,<strong>可被随意引用到项目中;</strong>4 // 通过加入这行代码,<strong>生成的CSS文件中就会包含CSS重置部分的代码;</strong>5 6 (2).<strong>@include reset-html5 </strong>7 // 输出文件中会<strong>生成额外的CSS规则来对HTML5的元素进行基本的样式修改</strong>,
로그인 후 복사

1.5.2 引入基本布局--Blueprint网格布局

1 $ compass create my_grid --using blueprint2 // 创建的my_grid工程里,<strong>screen.scss文件内容会添加一系列基本布局的样式在里边;</strong>3 // 而且不必在HTML标签添加"span-*"的类名,而是使用Sass的column混合器;4 <strong>@include column($sidebar-columns); </strong>5 // 详细内容见第六章;
로그인 후 복사

1.5.3 通过表格辅助器为表格添加更加专业的斑马条纹样式

1 @import "compass/utilities/tables";2 table {3     $table-color:#666;                                          // 定义变量;4     @include table-scaffolding;                                 // 引入混合器;<strong>提供最基本的样式修饰</strong>;5     @include inner-table-borders(1px, darken($table-color,40%));//<strong> 添加单元格边框</strong>;6     @include outer-table-borders(2px);                          //<strong> 添加表格边框</strong>;7     @include alternating-rows-and-columns($table-color,adjust-hue($table-color,-120deg),#222);  //<strong> 添加斑马条纹样式</strong>;8 }
로그인 후 복사

1.5.4 CSS3属性无需再写厂商前缀

 1 <strong>@import "compass/css3"</strong> 2 Sass: 3     .rounded { 4         @include border-radius(5px); 5     } 6 CSS: 7     .rounded { 8         -moz-border-radius: 5px; 9         -webkit-border-radius: 5px;10         -o-border-radius: 5px;11         -ms-border-radius: 5px;12         border-radius: 5px;13     }
로그인 후 복사

1.6 小结

//我们学习了CSS预处理的示例,并简单介绍了一下Sass的4个关键特性:变量选择器嵌套混合器选择器继承
//同时,我们也了解了一些Compass框架中Sass特性在真实世界程序中的应用,包括CSS重置格式布局表格样式修饰以及CSS3边框圆角

第二章 Sass基本语法

// 内容概要
// 通过变量重用颜色、长度以及其他一些值
// 通过规则嵌套让CSS更加结构化
// 通过多文件组织让样式变得更加可维护
// 通过混合器和继承重用整个样式

2.1 使用变量

// Sass使用$符号来标识变量

2.1.1 变量声明

1 $nav-color:#abc;            //<strong> 外部变量</strong>;2 nav {3     $width:100px;           //<strong> 内部变量;</strong>4     width:$width;5     color:$nav-color;6 }
로그인 후 복사

2.1.2 变量引用

1 //<strong> 当声明变量时,变量值也可以引用其他变量;</strong>2 $highlight-color:#abc;3 $highlight-border:1px $highlight-color solid;4 .seleted { border:$highlight-border; }
로그인 후 복사

2.2 嵌套CSS规则

1 #content {2     article {3         h1 {color:#333;}4         p {margin:1em;}5     }6 }
로그인 후 복사

2.2.1 父选择器的标识符&

 1 Sass: 2     a { 3         color:blue; 4         &:hover {color:red;} 5     } 6 CSS: 7     a { 8         color:blue; 9     }10     a:hover {11         color:red;12     }
로그인 후 복사

2.2.2 群组选择器的嵌套

1 .container {2     h1,h2,h3 {margin-bottom:2em;}3 }
로그인 후 복사

2.2.3 子组合选择器和同层组合选择器:>、+、~

1 // 选择器只会选择article下紧跟着的子元素中命中section选择器的元素;2 article > section {border:1px solid #ccc;}3 // 选择header元素后紧跟的p元素;4 header+p {font-size:1.1em;}5 // 选择所有跟在article后的同层article元素;6 article ~ article {border:none;}
로그인 후 복사

2.2.4 嵌套属性

1 nav {2     border: {      // <strong>将属性拆开; </strong>3         style:solid;4         width:1px;5         color:#ccc;6     }7 }
로그인 후 복사

2.3 导入Sass文件

// Sass的@import规则在生成CSS文件时就把相关文件导入进来;
// 所有相关的样式被归纳到了同一个CSS文件中,而无需发起额外的下载请求;
// 所有在被导入文件中定义的变量和混合器均可在导入文件中使用;

2.3.1 使用Sass部分文件

1 //<strong> Sass局部文件的文件名以下划线开头</strong>。这样,Sass就不会在编译时单独编译这个文件输出CSS,而只把这个文件用作导入;2 <strong>@import "themes/night-sky";</strong>
로그인 후 복사

2.3.2 默认值设置

1 // !default : 如果这个变量被声明赋值了,那就用它声明的值,否则就用这个默认值。2 $box-width:400px !default;      // 如果变量"$box-width"之前没有被赋值,则使用"400px";3 .box {4     width:$box-width;5 }
로그인 후 복사

2.3.3 嵌套导入

1 Sass:2 _blue-theme.scss:3     aside{4         color:white;5     }6     .blue-theme { @import "blue-theme" }  // 引入_blue-theme.scss文件;7 CSS:8     .blue-theme {       aside { color:white; }    }
로그인 후 복사

2.3.4 原生的CSS导入

// 1.被导入的文件的名字以.css结尾;

// 2.被导入的文件的名字是一个URL地址;

// 3.被导入的文件的名字是CSS的url()值;

2.4 静默注释

// 这种注释内容不会出现在生成的css文件中

/* 这种注释内容会出现在生成的css文件中 */

2.5 混合器

 1 //<strong> 混合器使用@mixin标识符定义;</strong> 2 //<strong> 这个标识符给一段样式赋予一个名字</strong>,<strong>这样就可以通过"@include"引用这个名字重用这段样式</strong>; 3 //<strong> @include调用会把混合器中的所有样式提取出来放在@include被调用的地方</strong>; 4 Sass: 5     @mixin rounded { 6         -moz-border-radius:5px; 7         -webkit-border-radius:5px; 8         border-radius:5px; 9     }10     .notice {11         @include rounded;12     }13 CSS:14     .notice {15         -moz-border-radius:5px;16         -webkit-border-radius:5px;17         border-radius:5px;18     }
로그인 후 복사

2.5.1 何时使用混合器

1 // 判断一组属性是否应该合成一个混合器;一条经验法则就是能否为这个混合器想出一个合理的名字;2 // 混合器和CSS类的区别:3 // 1.<strong>类名在HTML文件中应用;具有语义化;</strong>4 // 2.<strong>混合器是在样式表中应用的;具有展示性;</strong>
로그인 후 복사

2.5.2 混合器中的CSS规则

 1 // 当一个包含CSS规则的混合器通过@include包含在一个父规则中时,在混合器中的规则最终会生成父规则中的嵌套规则; 2 Sass: 3     @mixin no-bullets { 4         list-style:none; 5         li { 6             list-style-type:none; 7             margin-left:0px; 8         } 9     }10     ul {11         color:#333;12         @include no-bullets;13     }14 CSS:15     ul {16         color:#333;17         list-style:none;    // 混合器中的属性;18     }19     ul li {20         list-style-type:none;21         margin-left:0px;22     }
로그인 후 복사

2.5.3 给混合器传参

 1 Sass: 2     @mixin link-colors(<strong>$normal,$hover,$visited</strong>){ 3         color:$normal; 4         &:hover { color:<strong>$hover;</strong> } 5         &:visited { color:<strong>$visited;</strong> } 6     } 7     a { 8         @include link-colors(blue,red,green); 9     }10     Or11     a {12         @include link-colors(13             $normal:blue,14             $visited:green;15             $hover:red16         );17     }18 CSS:19     a { color:blue; }20     a:hover { color:red; }21     a:visited { color:green;}
로그인 후 복사

2.5.4 默认参数值

1 @mixin link-colors ($normal,<strong>$hover:$normal</strong>,<strong>$visited:$normal</strong>){2     color:$normal;3     &:hover { color:$hover; }4     &:visited { color:$visited; }5 }
로그인 후 복사

2.6 使用选择器继承来精简CSS

 1 Sass: 2     .error { 3         border:1px solid red; 4     } 5     .seriousError { 6         @extend .error;      // <strong>继承选择器中的内容</strong>; 7         border-width:3px; 8     } 9 CSS:10     .seriousError {11         border:1px solid red;12         border-width:3px;13     }
로그인 후 복사

2.6.1 何时使用继承

// 继承是基于类的(有时是基于其他类型的选择器),所以继承应该是建立在语义化的关系上;

2.6.2 继承的高级用法

// 如果一条样式规则继承了一个复杂的选择器,那么它只会继承这个复杂选择器命中的元素所应用的样式;

2.6.3 继承的工作细节

1 // 继承不是仅仅用CSS样式替换@extend处的代码那么简单;2 // >1.<strong>跟混合器相比,继承生成的CSS代码相对更少</strong>;3 // >2.<strong>继承遵从CSS层叠的规则;(权重和出现的先后顺序)</strong>;
로그인 후 복사

2.6.4 使用继承的最佳实践

// 使用继承会让你的CSS美观/整洁;因为继承只会在生成CSS时复制选择器,而不会复制大段的CSS属性;

2.7 小结

 1 // 1.变量是Sass提供的最基本的工具; 3 //<strong> 通过变量可以让独立的CSS值变得可复用</strong>;无论是在一条单独的规则范围内还是在整个样式表中; 5 // 变量/混合器的命名甚至Sass的文件名,可以互换通用"_"和"-"; 6  7 // 2.<strong>嵌套允许CSS规则内嵌套CSS规则</strong>,减少重复编写常用的选择器,同样让样式表的结构更清晰; 9 // 同时提供了特殊的父选择器标识符"&",从而构造更高效的嵌套;10 11 // 3.<strong>通过样式导入可以把分散在多个Sass文件中的内容合并在生成的一个CSS文件</strong>,避免了项目中有大量的CSS文件通过原生的CSS@import带来的性能问题;12 13 // 4.混合器允许用户编写语义化样式的同时避免视觉层面上样式的重复;14 15 // 5.继承允许声明类之间语义化的关系,通过这些关系可以保持CSS的整洁和可维护性;
로그인 후 복사

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작 HTML : 구조, CSS : 스타일, 자바 스크립트 : 동작 Apr 18, 2025 am 12:09 AM

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 정의하고, 2. CSS는 웹 페이지 스타일을 제어하고 3. JavaScript는 동적 동작을 추가합니다. 그들은 함께 현대 웹 사이트의 프레임 워크, 미학 및 상호 작용을 구축합니다.

HTML, CSS 및 JavaScript의 미래 : 웹 개발 동향 HTML, CSS 및 JavaScript의 미래 : 웹 개발 동향 Apr 19, 2025 am 12:02 AM

HTML의 미래 트렌드는 의미론 및 웹 구성 요소이며 CSS의 미래 트렌드는 CSS-In-JS 및 CSShoudini이며, JavaScript의 미래 트렌드는 WebAssembly 및 서버리스입니다. 1. HTML 시맨틱은 접근성과 SEO 효과를 향상시키고 웹 구성 요소는 개발 효율성을 향상 시키지만 브라우저 호환성에주의를 기울여야합니다. 2. CSS-in-JS는 스타일 관리 유연성을 향상 시키지만 파일 크기를 증가시킬 수 있습니다. CSShoudini는 CSS 렌더링의 직접 작동을 허용합니다. 3. Webosembly는 브라우저 애플리케이션 성능을 최적화하지만 가파른 학습 곡선을 가지고 있으며 서버리스는 개발을 단순화하지만 콜드 스타트 ​​문제의 최적화가 필요합니다.

HTML의 미래 : 웹 디자인의 진화 및 트렌드 HTML의 미래 : 웹 디자인의 진화 및 트렌드 Apr 17, 2025 am 12:12 AM

HTML의 미래는 무한한 가능성으로 가득합니다. 1) 새로운 기능과 표준에는 더 많은 의미 론적 태그와 WebComponents의 인기가 포함됩니다. 2) 웹 디자인 트렌드는 반응적이고 접근 가능한 디자인을 향해 계속 발전 할 것입니다. 3) 성능 최적화는 반응 형 이미지 로딩 및 게으른로드 기술을 통해 사용자 경험을 향상시킬 것입니다.

HTML vs. CSS vs. JavaScript : 비교 개요 HTML vs. CSS vs. JavaScript : 비교 개요 Apr 16, 2025 am 12:04 AM

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. HTML은 컨텐츠 구조를 담당하고 CSS는 스타일을 담당하며 JavaScript는 동적 동작을 담당합니다. 1. HTML은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의하여 의미를 보장합니다. 2. CSS는 선택기와 속성을 통해 웹 페이지 스타일을 제어하여 아름답고 읽기 쉽게 만듭니다. 3. JavaScript는 스크립트를 통해 웹 페이지 동작을 제어하여 동적 및 대화식 기능을 달성합니다.

HTML vs. CSS 및 JavaScript : 웹 기술 비교 HTML vs. CSS 및 JavaScript : 웹 기술 비교 Apr 23, 2025 am 12:05 AM

HTML, CSS 및 JavaScript는 최신 웹 페이지를 구축하기위한 핵심 기술입니다. 1. HTML 웹 페이지 구조를 정의합니다. 2. CSS는 웹 페이지의 모양을 담당합니다.

HTML 너머 : 웹 개발을위한 필수 기술 HTML 너머 : 웹 개발을위한 필수 기술 Apr 26, 2025 am 12:04 AM

강력한 기능과 우수한 사용자 경험을 가진 웹 사이트를 구축하기 위해서는 HTML만으로는 충분하지 않습니다. 다음 기술도 필요합니다. JavaScript는 웹 페이지 동적 및 상호 작용을 제공하며 DOM을 운영하여 실시간 변경을 달성합니다. CSS는 미학 및 사용자 경험을 향상시키기 위해 웹 페이지의 스타일과 레이아웃을 담당합니다. React, Vue.js 및 Angular와 같은 현대 프레임 워크 및 라이브러리는 개발 효율성 및 코드 조직 구조를 향상시킵니다.

& lt; strong & gt;, & lt; b & gt; 태그 및 & lt; em & gt;, & lt; i & gt; 태그? & lt; strong & gt;, & lt; b & gt; 태그 및 & lt; em & gt;, & lt; i & gt; 태그? Apr 28, 2025 pm 05:42 PM

이 기사는 HTML 태그, 등의 차이점과 시맨틱 대 프리젠 테이션 사용 및 SEO 및 접근성에 미치는 영향에 중점을 둡니다.

마크 업 언어로서의 HTML : 기능과 목적 마크 업 언어로서의 HTML : 기능과 목적 Apr 22, 2025 am 12:02 AM

HTML의 기능은 웹 페이지의 구조와 내용을 정의하는 것이며, 그 목적은 정보를 표시하는 표준화 된 방법을 제공하는 것입니다. 1) HTML은 타이틀 및 단락과 같은 태그 및 속성을 통해 웹 페이지의 다양한 부분을 구성합니다. 2) 콘텐츠 및 성능 분리를 지원하고 유지 보수 효율성을 향상시킵니다. 3) HTML은 확장 가능하므로 사용자 정의 태그가 SEO를 향상시킬 수 있습니다.

See all articles