Home  >  Article  >  Web Front-end  >  (二)在实战中使用Sass和Compass_html/css_WEB-ITnose

(二)在实战中使用Sass和Compass_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:44:14913browse

第三章 无需计算玩转CSS网格布局

3.1 网格布局介绍

3.2 使用网格布局

3.2.1 术语

1 术语名             定义                      是否涉及HTML标签2 列           内容度量的垂直单位                    否3 容器         构成一个网格布局的HTML元素             是4 槽           网格布局中列与列之间的统一留白          否

3.2.3 固定的网格布局还是流动的网格布局

1 // 由于网络用户的屏幕尺寸不一,设计人员有两种选择:2 // 1.要么选择一种对于大多数用户合理的固定布局大小(并且限制这种布局内的内容不溢出);3 // 2.要么实现一种灵活的<strong>流动布局</strong>,让内容自适应用户的屏幕,甚至当浏览器窗口大小改变时也会自适应;

3.3 使用Blueprint

1 // Blueprint把一些通用的对网格布局/段落和表格进行样式修饰的CSS技术打包到一个<strong>框架</strong>中,然后可以在各个项目中通用这个框架;2 // 安装Blueprint3 C:\Users\DELL><strong>gem install compass-blueprint</strong>

3.3.2 使用Compass应用Blueprint

 1 // 创建一个基本的Blueprint项目 2 C:\Users\DELL><strong>compass create simple --using blueprint/basic</strong> 3 directory simple/ 4 directory simple/images/ 5 directory simple/sass/ 6 directory simple/sass/partials/ 7 directory simple/stylesheets/ 8    create simple/config.rb 9    create simple/sass/screen.scss10    create simple/sass/partials/_base.scss11    create simple/sass/print.scss12    create simple/sass/ie.scss13    create simple/images/grid.png14     write simple/stylesheets/ie.css15     write simple/stylesheets/print.css16     write simple/stylesheets/screen.css17 18 // 在screen.scss文件生成↓↓↓↓↓↓↓↓↓↓:19     // This import applies a global reset to any page that imports this stylesheet.20     @import "blueprint/reset";              // 默认的Blueprint重置模块;21 22     // To configure blueprint, edit the partials/_base.sass file.23     @import "partials/base";                //<strong> 网格布局设置</strong>;24 25     // Import all the default blueprint modules so that we can access their mixins.26     @import "blueprint";                    // 让Blueprint的模块可用;27 28     // Import the non-default scaffolding module.29     @import "blueprint/scaffolding";        //<strong> 引入脚手架</strong>;30 31     // Generate the blueprint framework according to your configuration:32     @include blueprint;                     //<strong> 生成网格布局</strong>;33 34     @include blueprint-scaffolding;         //<strong> 表单和其他Blueprint元件;</strong>

3.3.3 使用Compass应用无需类名的Blueprint

 1 C:\Users\DELL>compass create simple --using blueprint/semantic 2  3 Sass: 4     #container { 5 <strong> @include container; </strong> 6     } 7 CSS: 8     #container { 9 <strong> width: 950px; 10       margin: 0 auto; 11  overflow: hidden; 12       *zoom: 1; </strong>13     }

3.4 使用960网格布局系统

 1 // 安装960系统; 2 C:\Users\DELL><strong>gem install compass-960-plugin </strong> 3  4 // 创建一个960网格系统的Compass项目 5 C:\Users\DELL><strong>compass create -r ninesixty twelve_col --using 960</strong> 6 directory twelve_col/ 7 directory twelve_col/sass/ 8 directory twelve_col/stylesheets/ 9    create twelve_col/config.rb10    create twelve_col/sass/grid.scss11    create twelve_col/sass/text.scss12     write twelve_col/stylesheets/grid.css13     write twelve_col/stylesheets/text.css

3.5 通过Compass处理垂直韵律

1 @import "compass/typography";       //<strong> 引入段落模块</strong>;2 $base-font-size:16px;               // 声明字体大小;3 $base-line-height:24px;4 <strong>@include establish-baseline; </strong>5 h1 { @include adjust-font-size-to(48px); }

3.5.2 前置和后置

 1 //<strong> leader混合器在元素前加一个基线单位的外间距</strong>; 2 //<strong> trailer混合器在元素的后边加了一个基线单位的外间距;</strong> 3 p { @include leader; @include trailer; } 4 Sass: 5     p {  6       @include leader; 7       @include trailer; 8     } 9 CSS:10     p {11       margin-top: 1.5em;12       margin-bottom: 1.5em;13     }

3.6 小结

1 // 流行的CSS网格框架如何简化维护留白和快速构建原型设计;2 // 通过添加一些CSS类,就可以创建彼此之间有统一间距的竖列内容;

 

第四章 有Compass不再枯燥

// 使用Compass重置浏览器默认样式;

// 改进样式表排版的Compass辅助器;

// 使用Compass创建粘滞的页脚/多样化的表格以及浮动;

4.1.1 全局样式重置--global-reset

4.1.2 通过有针对性的样式重置进行更多控制

1 @import "compass/reset/utilities";2 >1.<strong>HTML5样式重置--@include reset-html5 </strong>3 >2.Compass文档中更多的样式重置4     >>1.<strong>reset-box-</strong><strong>model:移除元素的内边距和边框</strong>;5     >>2.<strong>reset-</strong><strong>font:重置文字的字号和基线</strong>;6     >>3.<strong>reset-</strong><strong>focus:移除浏览器提供的轮廓线</strong>;7     >>4.<strong>reset-table和reset-table-</strong><strong>cell:重置表格的边框和对齐方式</strong>;8     >>5.<strong>reset-quotation:为<blockquotes>添加仅存在于样式表中的双引号</strong>;

4.2 更快更直观的排版辅助工具

4.2.1 链接辅助工具

1 >1.<strong>为链接配色</strong>;2     a { @include <strong>link-colors</strong>(#333,#00f,#f00,#555,#f00); }3 >2.<strong>通过hover-link设置悬停样式(设置下划线); </strong>4     a { @include <strong>hover-</strong><strong>link</strong> }5 >3.<strong>通过unstyled-link设置隐性的链接(去掉颜色/光标样式/下划线); </strong>6     p.secret a { @include unstyled-link }

4.2.2 列表辅助工具--创建各种各样的列表

 1 >1.<strong>用pretty-</strong><strong>bullets装点列表</strong>(利用背景图片显示列表的项目符号) 2     ul.features { 3         @include <strong>pretty-bullets('pretty-bullet.png'); </strong> 4     } 5 >2.通过no-bullet和no-bullets去掉项目符号 6     li.no-bullet { <strong>@include no-bullet</strong> }             //<strong> 去掉li类no-bullet的符号;</strong> 7     ul.no-bullet { <strong>@include no-bullets</strong> }            //<strong> 去掉整个列表的项目符号;</strong> 8 >3.轻松横向排布 9     // horizontal-list混合器有两个参数:$padding(内边距)和$direction(浮动方向);10     ul.nav { @include <strong>horizontal-</strong><strong>list</strong> }      11     ul.nav { @include <strong>horizontal-</strong><strong>list(7px,right)</strong> } // 列表水平排列;12 >4.用inline-list处理内联列表13     ul.words { @include <strong>delimited-list</strong> }            //<strong> 将列表设置成内联的样式;</strong>14     ul.words { @include <strong>delimited-list("!")</strong> }       //<strong> 自定义分隔符</strong>;

4.2.3 文本辅助工具--用辅助工具征服文字

1 ><strong>1.用省略号代表截断内容</strong>(text-overflow:ellipsis);2     td.dot { <strong>@include ellipsis;</strong> }3 ><strong>2.用nowrap防止文本折行 </strong>4     td { <strong>@include nowrap</strong> }5 >3<strong>.用replace-text将文字替换图片 </strong>6     h1.coffee { <strong>@include replace-text("coffee-header.png")</strong> }

4.3 布局辅助工具

4.3.1 粘滞的页脚

// 生成一个高40px的页脚,并且始终在最下面;

1 @include sticky-footer { 40px, "#content", "#footer", "#sticky-footer"};

4.3.2 可伸展元素

// 元素绝对定位,距离边界5px;

1 // stretch混合器有4个参数:$offset-top/$offset-right/$offset-bottom/$offset-left;2 a.logo { @include stretch(5px,5px,5px,5px) }

4.4 小结

// 本章,我们了解了Compass省时省力的工具;

// 包括:链接/列表/文本/布局;

 

第五章 通过Compass使用CSS3

// 用Compass的CSS3模块创建跨浏览器的CSS3样式表

// 在低版本IE中支持一些CSS3的特性

// Compass里的CSS3高阶技能

5.1 新属性:浏览器前缀

 1 // 引入CSS3模块 2 <strong>@import "compass/css3"; </strong> 3 Sass: 4     .notice { 5         @include border-radius(5px); 6     } 7 CSS: 8     .notice { 9         -moz-border-radius: 5px;10         -webkit-border-radius: 5px;11         border-radius: 5px;12     }

5.2 通过Compass使用CSS3

5.2.1 圆角

1 button.rounded {2     <strong>@include border-radius (5px); </strong>3 }

5.2.2 CSS3阴影--text-shadow和box-shadow

 1 Sass: 2     $shadow-1:rgba(#000,.5) -200px 0 0; 3     $shadow-2:rgba(#000,.3) -400px 0 0; 4     h2 { 5         <strong>@include box-shadow($shadow-1); </strong> 6         <strong>@include text-shadow($shadow-1,$shadow-2); </strong> 7     } 8 CSS: 9     h2 {10       -moz-box-shadow: rgba(0, 0, 0, 0.5) -200px 0 0;11       -webkit-box-shadow: rgba(0, 0, 0, 0.5) -200px 0 0;12       box-shadow: rgba(0, 0, 0, 0.5) -200px 0 0;13       text-shadow: rgba(0, 0, 0, 0.5) -200px 0 0, rgba(0, 0, 0, 0.3) -400px 0 0;14     }

5.2.3 颜色渐变

 1 #pattern { 2 <strong> @include background(  3         linear-</strong><strong>gradient</strong>( 4             360deg, 5             #bfbfbf 0%, 6             #bfbfbf 12.5% 7             #bfbf00 12.5%, 8             #bfbf00 25%, 9             ...10         )11     );12     width:400px;13     height:300px;14 }

5.2.4 用@font-face嵌入字体

1 <strong>@include font-face</strong> ("ChunkFiveRegular",2     font-files("ChunkFiveRegular-webfont.woff",woff,3                "ChunkFiveRegular-webfont.woff",ttf, 4                "ChunkFiveRegular-webfont.woff",svg,5                "ChunkFiveRegular-webfont.woff",normal,normal));

5.4 小结

// 使用CSS3混合器实现:圆角/阴影/渐变以及文字引入;

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn