CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。通过使用 CSS 我们可以大大提升网页开发的工作效率!
CSS 的主要作用是定义网页的样式(美化网页),对网页中元素的位置、字体、颜色、背景等属性进行精确控制。CSS 不仅可以静态地修饰网页,还可以配合 JavaScript 动态地修改网页中元素的样式,而且市面上几乎所有的浏览器都支持 CSS。
20 世纪 90 年代初 HTML 语言诞生,这时的 HTML 只包含很少的属性来控制网页的显示效果。伴随着 HTML 的成长,各式各样的样式语言也随之出现,不同的浏览器结合它们各自的样式语言来控制页面的显示效果。
经过不断的发展,HTML 中添加了越来越多的属性来满足页面设计者的需求,随着这些属性的增加,HTML 变的越来越杂乱,而且 HTML 页面也越来越臃肿,于是 CSS 便诞生了。
1994 年,哈坤·利提出了 CSS 的最初建议,并决定与正在设计 Argo 浏览器的伯特·波斯(Bert Bos)合作,共同开发 CSS。
1994 年底,哈坤·利在芝加哥的一次会议上第一次正式提出了 CSS 的建议,之后又在 1995 年的 WWW 网络会议上再次提出了 CSS,在会议上伯特·波斯展示了支持 CSS 的 Argo 浏览器,哈坤·利也展示了支持 CSS 的 Arena 浏览器。
同年,W3C 组织(World WideWeb Consortium)成立,该组织对 CSS 的发展很感兴趣,为此还专门组织了一次讨论会。最终 CSS 的全部开发成员都加入了 W3C 组织,并负责 CSS 标准的制定,至此 CSS 的发展走上正轨。
W3C,中文名为“万维网联盟”,也称为“W3C理事会”,由万维网的发明者 蒂姆·伯纳斯·李 于 1994 年 10 月在麻省理工学院计算机科学实验室成立,是 Web 技术领域最具权威和影响力的国际中立性技术标准机构。
发展至今,CSS 总共经历了 4 个版本的迭代:
CSS1.0
1996 年 12 月 W3C 发布了 CSS 的第一个版本——CSS1.0(https://www.w3.org/TR/CSS1/)。
CSS2.0
1998 年 5 月,CSS2.0 版本正式发布(https://www.w3.org/TR/CSS2/)。
CSS2.1
2004 年 2 月,CSS2.1 正式发布。该版本在 CSS2.0 的基础上略微做了改动,删除了许多不被浏览器支持的属性。
CSS3
早在 2001 年,W3C 就着手开始准备开发 CSS 的第三个版本,到目前为止该版本还没有最终定稿。虽然完整的 CSS3 标准还没有最终发布,但各主流浏览器已经开始支持其中的绝大部分特性。
CSS 是 Web 领域的一个突破,它为 HTML 提供了一种描述元素样式的方式,使用 CSS 和 HTML 可以制作出外形优美的网页。总体来说 CSS 具有以下特点:
CSS 提供了丰富的外观属性,可以在网页中实现各式各样的效果,例如:
CSS 的样式信息不仅可以定义在 HTML 元素的 style 属性中,也可以定义在 HTML 文档 标签内的
推荐使用最后一种定义方式(定义单独的 .css 格式文件),这样可以将 CSS 样式统一存放,方便后期维护。
前面说了可以将 CSS 样式单独存放在一个 .css 格式的文件中,这个文件不属于任何页面,我们可以在不同的页面引用这个 .css 格式的文件,这样就可以统一不同页面的风格。
层叠就是指可以对同一个 HTML 元素多次定义 CSS 样式,后面定义的样式会覆盖前面定义的样式。
例如整个站点引用了同样的 CSS 样式文件,但想要调整其中某个页面的某些元素,这时就可以针对想要调整的元素单独定义一份样式文件并引用到页面中。这样后来单独定义的样式就会覆盖前面的样式,在浏览器同样只会看到最后设置的效果。
一个网页其中通常包含大量的 HTML 元素,为了实现某些效果我们往往还需要为这些元素定义样式文件,如果将它们放到一起就会使得我们的 HTML 文档过于臃肿。而将 CSS 样式定义在单独的样式文件中,把 CSS 样式与 HTML 文档分开的话就可以大大减小 HTML 文档的体积,这样浏览器加载 HTML 文档所用的时间也会减少。
另外,CSS 样式可以重复使用,不同的元素可以使用相同的 CSS 样式,这样可以避免定义重复的样式,CSS 样式文件的体积也会相应的减小,从而进一步缩短页面加载的时间。
CSS 样式由一系列规则组成,这些规则由 Web 浏览器解析,然后应用于 HTML 文档相应的元素上。CSS 样式规则由三个部分组成,分别是选择器、属性、值:
p
就表示为页面中的所有
标签定义样式;如下图所示的语法规则来定义 CSS 样式:
注意:在 CSS 的语法规则中,属性和值之间需要使用冒号
:
进行分隔,每个属性和值的组合可以看作一个声明,每个声明的末尾都需要使用分号;
作为结尾,属于同一选择器的声明需要使用花括号{ }
包裹起来。
标签定义样式;为了使 CSS 更具可读性,您可以在定义 CSS 时每一行代码上只放置一个声明,如下所示:
h1 {
color: blue;
text-align: center;
}
提示:CSS 中的属性和大部分值都是不区分大小写的,但 CSS 中的选择器通常区分大小写,例如类选择器 .bianchengbang 和 .BianChengBang 就表示两个不同的选择器。CSS 中的《选择器》有多种不同的类型,比如:标签选择器、类选择器、id选择器、等等。
CSS 应用于文档的三种方法:外部样式表、内部样式表、内联样式。
外部样式表在一个单独的扩展名为 .css
的文件中包含 CSS。这是将 CSS 应用到文档中最常见和最有用的方法。你可以将一个 CSS 文件链接到多个网页上,用同一个 CSS 样式表为所有网页确定样式。
使用 HTML 元素来链接外部样式表文件:
doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>我的 CSS 测试title>
<link rel="stylesheet" href="styles.css" />
head>
<body>
<h1>Hello World!h1>
<p>这是我的第一个 CSS 示例p>
body>
html>
CSS 样式表文件可能如下所示:
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
like
元素的href
属性需要引用你文件系统中的一个文件。在上面的例子中,CSS 文件与 HTML 文档在同一个文件夹中,但你可以把它放在其他地方,并调整路径。
一个内部样式表驻留在 HTML 文档内部。要创建一个内部样式表,你要把 CSS 放置在包含在 HTML head
元素中的style
元素内。
一个内部样式表的 HTML 代码可能看起来像这样:
doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>我的 CSS 测试title>
<style>
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
style>
head>
<body>
<h1>Hello World!h1>
<p>这是我的第一个 CSS 示例p>
body>
html>
在某些情况下,内部样式表可能是有用的。例如,也许你正在使用一个内容管理系统,其外部 CSS 文件是不可以直接修改的。
但对于有多个页面的网站来说,内部样式表就变成了一种不太有效的工作方式。要使用内部样式表在多个页面上应用统一的 CSS 样式,你必须在每个要使用该样式的网页上都有一个内部样式表。这种效率的下降也会影响到网站的维护。在内部样式表中使用 CSS,存在这样的风险:即使是一个简单的样式变化,也可能需要对多个网页进行编辑。
内联样式是影响单个 HTML 元素的 CSS 声明,包含在元素的 style
属性中。在一个 HTML 文档中,内联样式的实现可能看起来像这样:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
head>
<body>
<h1 style="color: blue;background-color: yellow;border: 1px solid black;">Hello World!h1>
<p style="color: red;">这是我的第一个 CSS 示例p>
body>
html>
尽可能避免以这种方式使用 CSS。这不符合最佳实践。首先,这是对 CSS 的维护效率最低的实现。一个样式的改变可能需要在一个网页中进行多次编辑。其次,内联 CSS 还将(CSS)表现性代码与 HTML 内容混合在一起,使一切都更难阅读和理解。将代码和内容分开,可以使所有从事网站工作的人更容易维护。
有几种情况下,内联样式是比较常见的。如果你的工作环境有很大的限制,你可能不得不使用内联样式。例如,也许你的内容管理系统(CMS)只允许你编辑 HTML 主体。你也可能在 HTML 电子邮件中看到大量的内联样式,以实现与尽可能多的电子邮件客户端的兼容。