第5章 快速入门CSS

248 阅读7分钟

1 CSS的基础定义

CSS 的全称为:层叠式表 ( Cascading Style Sheets ) 。

CSS是一种标记语言,用来给HTML结构设置样式。

前端基础技术
图1 前端基础技术

层叠样式表中的“层叠“是指像化妆一样一层一层 “”上去。而层叠样式表中的“表“主要表示记录”化妆”的操作。CSS给HTML所搭建的页面结构美化,也就是“化妆”的原理。

2 CSS的编写位置

CSS样式文件按照编写位置有3种引入方式,分别为行内式、内部式以及外联式,而这3种引入CSS方式的样式又分别被称为行内样式表、内部样式表以及外联样式表

2.1 行内式引入

行内式引入是指在HTML标签中添加style属性,并给style属性的属性值赋予对应的声明块。声明块的格式为:CSS属性名:CSS属性值;,要写多个声明块,必须严格按照声明块格式,并排写在一起即可。CSS行内引入方式案例,如下图2 CSS的行内引入所示:

CSS的行内引入
图2 CSS的行内式引入

⚠注意

行内式写法只能对所指定的标签进行美观,没有体现结构与样式分离的思想,不便于后期样式的维护,一般用于学习案例效果调整。

2.2 内部式引入

内部式引入是指:<title> 标签下方添加 <style> 双标签,并在<style>标签里面,书写选择器,再在选择器中写声明块,具体格式为: 选择器 { CSS属性名:CSS属性值; CSS属性名:CSS属性值; ......}。CSS的内部引入案例,如下图3 CSS的内部式引入所示:

CSS的内部引入
图3 CSS的内部式引入

⚠注意

<style> 标签理论上可以放在 HTML 文档的任何地方,但一般都放在 <head> 标签 中。虽然CSS内部式引入方式体现了部分结构与样式分离的思想,但是无法在多个.html文件实现复用,常用于单个.html的样式编写。

2.3 外联式引入

外联式引入是指把CSS代码写在单独的 .css 文件中,随后在 HTML 文件中的<head>标签中,用<link>标签引入使用。

  1. 第1步 把CSS代码写在index.css文件中。如下图4 CSS的样式文件所示:
CSS的样式文件
图4 CSS的样式文件
2. 第2步 在.html文件中用<link>标签在<head>标签中引入index.css文件。 如下图5 CSS的外联式引入所示:
CSS的外联式引入
图5 CSS的外联式引入
⚠注意
  1. <link> 标签要写在 <head> 标签中。
  2. <link> 标签中的 href属性 表示引入的文档来自于哪里。<link> 标签中的 rel属性 表示引入的文档与当前文档之间的关系。
  3. 实际开发中最推荐的一种使用方式。

2.4 样式表优先级

若是CSS样式同时使用行内引用、内部引用以及外联引用,且每种引入方式中的样式CSS属性名均一致,仅只有CSS属性值不同,哪一种样式引入方式中CSS样式生效呢?

例如,CSS行内引入方式、CSS内部引入方式以及CSS外联引入方式,都对<p>设置了颜色样式,其中CSS行内引入方式只给一个指定的<p>标签设置了蓝色,CSS内部引入方式给所有的<p>标签设置了绿色,而CSS外部引入方式也给所有的<p>标签设置了红色。可以明显看出,行内引入方式的样式优先级将高于其它两种,至于内部引入方式与外联引入方式的样式优先级,看它们在HTML结构中的顺序。具体如下图6 针对同一标签的3种CSS的引入方式所示:

针对同一标签的3种CSS的引入方式
图6 针对同一标签的3种CSS的引入方式

针对同一标签,同属性名不同属性值的CSS样式优先级原理,是浏览器加载HTML文件时会将所有的CSS引入方式的样式表都加载进来,然后按照HTML结构的中CSS代码块先后位置顺序进行渲染。渲染的原则是,HTML结构中位置靠后的样式会覆盖位置靠前的样式。

样式表优先级规则
  1. 针对同一标签的3种CSS引入种方式的样式表优先级:行内样式>内部样式=外部样式(内部样式、外部样式,这二者的优先级相同,且后面的样式会覆盖前面的(简记:“后来 者居上”)。)
  2. 同一个样式表中,优先级也和编写顺序有关,且后面的样式会覆盖前面的样式(简记:“后来 者居上”)。

2.5 引入方式总结

CSS的3种CSS引入方式优劣如下表7 三种引入方式比较表 所示:

表7 三种引入方式比较表
3种CSS的引入方式比较表

3 CSS的语法规范

CSS的语法规范由选择器以及声明块两部分组成,选择器用于寻找元素,声明块用于给寻找到的元素添加相关属性。具体如下图8 CSS语法规范所示:

CSS语法规范
图8 CSS语法规范
通常编写一个CSS代码块时,要给关键代码编写注释,而CSS代码块的注释写法格式为:/* */

3.1 CSS代码风格

CSS的代码风格包含展开风格以及紧凑风格两部分。

  • 展开风格 —— 开发时推荐,便于维护和调试。如下图9 CSS代码风格之展开风格所示:
    CSS代码风格之展开风格
    图9 CSS代码风格之展开风格
  • 紧凑风格 —— 项目上线时推荐,可减小文件体积。如下 图10 CSS代码风格之紧凑风格所示:
CSS代码风格之紧凑风格
图10 CSS代码风格之紧凑风格

3.2 CSS属性书写顺序

为了能让网络加载资源更加流畅,书写顺序很重要。

  1. 布局定位属性:display/position/float/clear/visibility/overflow(建议display第一个写,毕竟关系到模式)
  2. 自身属性:width/height/margin/padding/border/background
  3. 文本属性:color/font/text-decoration/text-align/vertical-align/white-space/break-word
  4. 其他属性(CSS3):content/cursor/border-radius/box-shadow/text-shadow/background:linear-gradient...

4 使用Chrome调试工具

要检查检查、调试代码,可以借助Chrome浏览器的调试工具。

  • 第1步 打开调试工具

    • 方式一: 浏览器窗口内任意位置 / 选中标签 ▶ 鼠标右键 ▶ 检查
    • 方式二: 按住键盘上的 【F12】
  • 第2步 使用调试工具

    Chrome调试工具
    图11 Chrome调试工具

⚠注意: 如果页面样式显示不出来,直接打开Chrome开发工具,选择添加样式的元素,查看style

  • 如果有样式属性,只是前面有警告标识,说明属性写错了,一般是属性名、属性值、:;以及{}出错。
  • 如果没有样式属性,则表示选择器出错,一般是选择器名写错或者复合选择器层级出错。

5 CSS的学习方法

主要是学习 CSS的选择器以及声明块 两部分内容。 (声明块大多是为改变 元素的形状 大小、颜色以及位置 从而设计出来的。)