Web前端开发技术
上QQ阅读APP看书,第一时间看更新

第3章 CSS基础

3.1 CSS简介

HTML标签原本被设计为用于定义文档内容。通过使用<h1>、<p>、<table>这样的标签,HTML的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。同时文档布局由浏览器来完成,而不使用任何格式化标签。

当时,由于两种主要的浏览器(Netscape和Internet Explorer)不断地将新的HTML标签和属性(例如字体标签和颜色属性)添加到HTML规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。

为了解决这个问题,万维网联盟(W3C)肩负起了HTML标准化的使命,并在HTML 4.0之外创造出样式(Style)。所有的主流浏览器均支持层叠样式表。

3.1.1 什么是CSS

CSS指层叠样式表(Cascading Style Sheets),是一种用来表现HTML或者XML等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

样式通常保存在外部的.css文件中。通过编辑一个简单的CSS文档,外部样式表使程序员有能力同时改变站点中所有页面的布局和外观。由于允许同时控制多重页面的样式和布局,CSS可以称得上是Web设计领域的一个突破。作为网站开发者,如果需要进行全局的更新,只需要简单地改变样式,网站中的所有元素就会自动更新。

3.1.2 CSS的作用

CSS网页布局的意义体现在如下方面:

·样式定义如何显示HTML元素。

·样式通常存储在样式表中。

·样式是为了解决内容与表现分离的问题。

·外部样式表可以极大提高工作效率。

·外部样式表通常存储在CSS文件中。

·多个样式定义可以层叠为一个。

1.多重样式将层叠为一个

样式表允许以多种方式规定样式信息,可以规定在单个的HTML元素中,在HTML页面的头元素中,或者在一个外部的CSS文件中,甚至可以在同一个HTML文档内部引用多个外部样式表。层叠,简单地说,就是给一个元素多次设置同一个样式,这将使用最后一次设置的属性值。例如,对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。

2.层叠次序

当同一个HTML元素被不止一个样式定义时,会使用哪个样式呢?一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中规则(4)拥有最高的优先权。

(1)浏览器默认设置

(2)外部样式表

(3)内部样式表(位于<head>标签内部)

(4)内联样式(在HTML元素内部)

因此,内联样式(在HTML元素内部)拥有最高的优先权,这意味着它将优先于以下的样式声明:<head>标签中的样式声明,外部样式表中的样式声明或者浏览器中的样式声明。

关于选择器的优先级:选取元素越精确,优先级越高。即id选择器指定的样式>类选择器指定的样式>元素类型选择器指定的样式。