Sass与Compress实战:第二章

1.使用变量

  Sass使用$符号来标识变量,比如$highlight-color。

1.1声明变量

  Sass声明变量和CSS声明属性很像:

$highlight-color : #abcdef;

  这意味着变量$highlight-color现在的值时#abcdef。任何可以用作CSS属性值的赋值都可以用作Sass的变量值,甚至是以空格分割的多个属性值,如$basic-border : 1px solid black;或以逗号分割的多个属性值,如$plain-font : "Myriad Pro"、Myriad、"Helvetica Neue"、Helvetica。只有当引用了变量时它才会生效。

  与CSS属性不同,变量可以在CSS规则块定义之外存在。当变量定义在CSS规则块内,那么该变量只能在此规则块内使用。例如:

$nav-color: #abcdef;
nav {
    $width: 100px;
    width: $width;
    color: $nav-color;
}

  在这段代码中,变量$nav-color定义在规则块外部,因此这个样式表中的任意位置都可以引用这个变量,而$width定义在了规则块内部,因此只有在nav的规则块内部才可以引用它。也就意味着你可以在样式表的其他地方定义和引用$width不会影响到nav的规则块内部的$width变量。

1.2变量引用

  凡是CSS属性的标准值(比如说1px或者bold)可存在的地方,变量就可以使用。CSS生成时,变量会被它们的值所替代,之后,如果你需要一个不同的值,只需要改变这个变量的值,则所有引用到这个变量的地方生成的值都会被改变。

  在声明变量时,变量值也可以引用其他变量。下例在独立的颜色值粒度上定义了一个变量,且在另一个更复杂的边框值粒度上也定义了一个变量:

$highlight-color : #abcdef;
$highlight-border : 1px $highlight-color solid ;

.selected {
    border : $highlight-border;
}

  这里,$highlight-border变量的声明中使用了$highlight-color这个变量。产生的效果就跟你直接为border属性设置了一个1px $highlight-color solid的值是一样的。

1.3变量名用中划线还是下划线分隔

  Sass的变量名可以与CSS中的属性名和选择器名称相同,包括中划线和下划线。这两种方法互相兼容,用中划线声明的变量可以用下划线的方式引用,例如:

$link-color : blue;

a {
    color : $link_color;
}

$link-color 和 $link_color其实指向的是同一个变量。除了变量,混合器和Sass函数的中划线命名内容和下划线命名内容也是互通的。但在Sass中纯CSS部分不通,比如类名、ID或属性名。

2.嵌套CSS规则

  Sass的嵌套规则能够避免重复书写CSS选择器。假设有这么一段代码:

#content article h1 { color : #333 }
#content article p { margin-bottom : 1.4em }
#content aside { background-color : #eee }

  Sass文件代码:

#content {
    article {
        h1 { color : #333 }
        p { margin-bottom : 1.4em }
    }
    aside { background-color : #eee }
}

  上边的例子,Sass会在输出CSS时把它转换成跟你之前看到的一样的效果。在这个过程中,Sass用了两步:首先,把#content(父级)这个ID放到article(子级)选择器和aside(子级)选择器的前边:

#content article {
    h1 { color : #333 }
    p { margin-bottom : 1.4em }
}
#content aside { background-color : #eee }

  然后,#content article里面还有嵌套的规则,Sass重复一遍上边的步骤,把新的选择器添加到内嵌的选择器前边:

#content article h1 { color : #333 }
#content article p { margin-bottom : 1.4em }
#content aside { background-color : #eee }

  一个给定的规则块,既可以像普通的CSS那样包含属性,又可以嵌套其他规则块。当你同时要为一个容器元素及其子元素编写特定样式时,这种能力就非常有用:

时间: 2024-10-29 10:46:51

Sass与Compress实战:第二章的相关文章

《The Django Book》实战--第二章--动态网页基础

这章演示了一些最基本的Django开发动态网页的实例,由于版本不一样,我用的是Django 1.,6.3,有些地方按书上的做是不行的,所以又改了一些,写出来让大家参考. 这是一个用python写的一个显示当前时间的网页. 1.开始一个项目. 在命令行中(指定要保存项目代码的盘或文件夹下)输入 python ...\django-admin.py startproject djangobook  (虽然在环境变量Path中加入了django-admin.py的地址,但是在前面还是要加上路径名,不知

.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

原文:.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证 内容:本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证 作者:zara(张子浩) 欢迎分享,但需在文章鲜明处留下原文地址. 在这一篇文章中我们希望使用OpenID Connect这种方式来验证我们的MVC程序(需要有IdentityServer4),我们首先需要干什么呢?那就是搞一个UI,这样非常美观既可以看到我们的身份验证效果,那么Iden

Sass与Compress实战:第六章

概要:介绍Compass如何让你从本地开发原型轻松转移到正产环境的网址或Web应用中. 本章内容: ● CSS精灵的历史和基本原则 ● Compass混合器让精灵自动化 ● 自定义精灵图片和CSS输出的高阶技巧 1.精灵的工作原理 在早期,CSS精灵是很简单的.设计师们会把按钮的不同状态做成图片,并把它们做成一张单个图片.然后在CSS里,他们会设置按钮的宽.高以及背景图片的属性,并在不同的状态下改变背景图的位置.如下代码: .go-button { width : 75px ; height :

Sass与Compress实战:第七章

概要:将介绍Compass如何让你从本地开发原型轻松转移到生产环境的网址或Web应用中. 本章内容: ● 生成资源URL的最佳实践 ● 撰写无需Web服务器的样式表 ● 在浏览器中进行设计的技巧 ● 如何为产品编译并构造样式表 1. 绝对URL 1.1 生成URL资源 CSS提供了url函数用来解码URL: background-image : url(‘/logo.png’) ; URL标识了资源在互联网上的位置,但是当你对照自己的资源时,你常常使用相对URL,且浏览器会根据其对当前请求的了解

Sass与Compress实战:第五章

概要:第5章展示了Compass如何使你免去编写跨浏览器的CSS3的痛苦. 本章内容: ● 用Compass的CSS3模块创建跨浏览器的CSS3样式表 ● 在低版本IE中支持一些CSS3的特性 ● Compass里的CSS3高阶技能 1.什么是CSS3 CSS3,或称第三代层叠样式表,是基于CSS2的规范建立起来的.CSS3的变革可以归纳为两部分——更给力的选择器,帮助我们定位元素:各种新的属性,用于修饰元素的外观. 1.1 新属性:浏览器前缀让你烦透了吧 由于浏览器厂商有各自的发布周期,浏览器

Sass与Compress实战:第四章

概要:这一章将深挖Compass的工具箱,看看Compass的混合器如何帮助你省去编写重复样式表的辛苦工作. 本章内容: ● 使用Compass重置浏览器默认样式表 ● 改进样式表排版的Compass辅助器 ● 使用Compass创建粘滞的页脚.多样化的表格以及浮动 1. 一张更好的白纸源自有针对性的样式重置 1.1 全局样式重置 当你构建一个传统的Web应用程序时,如果需要支持很多浏览器,甚至包括低版本的Internet Explorer,那么一个全局的样式重置是非常给力的.Compass体统

Sass与Compress实战:第一章

1.消除冗余代码的方式: ?通过变量来复用属性值 例如,一段冗余的CSS代码: h1#brand { color : #1875e7 } #sidebar { background-color : #1875e7 } 使用Sass,把属性值赋给变量,然后在一个地方管理散落在各处的属性值.几乎任意属性值都可以赋给变量: $company-blue : #1875e7; h1#brand{ color : $company-blue; } #sidebar{ background-color : $

Sass与Compress实战:第八章

概要:帮助你实现样式表的最佳性能 本章内容: ● 样式表拼接 ● 样式表和资源压缩 ● 减少和并行图片请求的策略 ● 选择器性能和优化策略 1. 测量客户端性能 性能优化的起点和终点都是测量.在第一次改变性能位置之前,你需要知道自己究竟在什么位置. 下面是一些工具: ● YSlow:http://developer.yahoo.com/yslow/. ● Google PageSpeed:http://developers.google.com/pagespeed/. ● WebPagetest

机器学习实战-第二章代码+注释-KNN

#-*- coding:utf-8 -*- #https://blog.csdn.net/fenfenmiao/article/details/52165472 from numpy import * #科学计算包 import operator #运算符模块 import matplotlib import matplotlib.pyplot as plt #matplotlib.pyplot是一些命令行风格函数的集合 from os import listdir #列出给定目录的文件名 de