一、CSS简介

CSS的主要使用目的就是美化网页,布局页面

1.1 HTML的局限性

HTML只关注内容的语义,比如<h1> 只表明这是一个标题,<p> 只表明这是一个段落等。

只用HTML时,网页显示效果很不好看。因为HTML可以做简单的样式,但是十分繁琐和臃肿。

即,HTML主要做结构,显示元素内容。

1.2 CSS的作用

CSS是层叠样式表的简称,也成为CSS样式表或级联样式表。

CSS也是一种标记语言,主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。

简单来说,CSS可以美化HTML,让页面布局更简单。

1.3 CSS语法规范

CSS规则有两个主要部分组成:选择器以及一条或多条声明。

选择器 {属性:值 属性:值}

选择器是用于指定CSS样式的HTML标签,花括号内是对该对象设置的具体样式。

属性和属性值以“键值对”的形式出现

1.4 CSS代码风格

代码风格推荐

  1. 样式格式书写

    • 展开格式

      1
      2
      3
      4
      h3 {
      color: blue;
      font-size: 12px;
      }
  2. 样式大小写

    • 样式选择器,属性名,属性值关键字全部使用小写字母,特殊情况除外。
  3. 空格规范

    • 在属性值前面,冒号后面,保留一个空格;
    • 选择器和大括号中间保留空格

二、CSS基础选择器

2.1 CSS选择器的作用

选择器就是根据不同需求把不同的标签选出来,这就是选择器的作用,简单来说,就是选择标签用的

2.2 选择器的分类

选择器分为基础选择器和复合选择器

其中,基础选择器是由单个选择器组成的

基础选择器又包括:标签选择器、类选择器、id选择器和通配符选择器

2.3 标签选择器

使用HTML标签名作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。

语法

1
2
3
4
5
6
标签名 {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
...
}

作用:把某一类标签全部选择出来,例如所有的<div>标签,所有的<p>标签。

优点

能快速为页面中同类型的标签统一设置样式。

缺点

不能差异化设置,只能选择全部的当前标签。

2.4 类选择器

如果想要差异化选择不同的标签,单独选一个或者选几个标签,可以使用类选择器。

语法

1
2
3
4
.类名 {
属性1: 属性值1;
...
}

1
2
3
4
.red {
color: red;
}
<div class=`red`> 红色 </div>

类选择器口诀:样式点定义,结构类调用,一个或多个,开发最常用。

注意事项

  1. 长名称或词组可以使用短横线来表示。
  2. 不要使用纯数字、中文等命名,尽量使用英文字母来表示。
  3. 命名要有意义,尽量使别人一眼就知道这个类名的目的。

多类名

我们可以给一个标签指定多个类名,从而达到更多的选择目的,这些类名都可以选出这个标签,简单理解就是一个标签有多个名字。

  1. 多类名使用方式

    <div class="red fong35">Huffie</div>

    • 在标签class属性中写多个类名
    • 多个类名中间必须用空格分开
    • 这个标签就可以分别具有这些类名的样式
  2. 多类名的优点

    • 节省CSS代码,统一修改也非常方便
    • 多类名选择器在后期布局比较复杂的情况下,使用比较多

2.5 id选择器

id选择器可以为标有特定id的HTML元素指定特定的样式

HTML元素以id属性来设置id选择器,CSS中id选择器以"#"来定义

语法

1
2
3
4
#id名{
属性: 属性值1;
...
}

口诀:样式#定义,结构id调用,只能调用一次,别人切勿使用

2.6 通配符选择器

在CSS中,通配符选择器使用"*"定义,他表示选取页面中的所有元素

语法

1
2
3
4
* {
属性1: 属性值1;
...
}
  1. 通配符选择器不需要调用,自动就给所有的元素使用样式
  2. 特殊情况下才使用

2.7 基础选择器总结

基础选择器 作用 特点 使用情况 用法
标签选择器 可以选出所有相同的标签 不能差异化选择 较多 p {color: red;}
类选择器 可以选出1个或多个标签 可以根据需求选择 非常多 .nav{color: red;}
id选择器 一次只能选择1个标签 ID属性只能在每个HTML文档中出现一次 一般和js搭配 #nav{color: red;}
通配符选择器 选择所有标签 选择的太多,有部分不需要 特殊情况使用 * {color: red;}

三、CSS字体属性

CSS Fonts字体属性用于定义字体系列、大小、粗细和文字样式。

3.1 字体系列

CSS使用font-family属性定义文本的字体系列。

1
2
h2 {font-family: "Microsoft Yahei";}
p {font-family: Arial, "Times New Roman";}
  • 可以写多个字体,字体之间用英文逗号分隔

    浏览器会优先使用第一个字体,如果用户电脑上没有安装第一个字体,则会按顺序检索。

  • 如果字体名由多个单词组成,用引号包含

  • 尽量使用系统默认的字体,保证任何用户的浏览器都能正确显示

    常用字体:“Microsoft Yahei”, tahoma, arial, “Hiragino Sans GB”

3.2 字体大小

CSS使用font-size属性定义字体大小

1
p {font-size 20px;}
  • 谷歌浏览器默认文字大小为16px
  • 不同浏览器可能默认现实的字号大小不一致,我们尽量给字体大小一个明确值
  • 可以给body指定整个页面文字的大小

3.3 字体粗细

CSS使用font-weight属性设置文本字体的粗细

1
2
.bold {font-weight: bold;}
.bold {font-weight: 700;}

参数:normal正常,bold加粗,数字100-900也可表示字体粗细

实际开发中我们提倡使用数字:400 正常,700 加粗

3.4 文字样式

CSS使用font-style属性设置文本的风格

1

属性 作用
normal 默认值,浏览器会显示标准的字体样式
italic 浏览器会显示斜体的字体样式

注意:我们很少给文字加斜体,反而要给斜体标签(em, i)改为正常

3.5 字体复合属性

字体属性可以把文字样式综合起来写,这样可以更节约代码

语法

1
div {font: font-style font-weight font-size/line-height font-family;}

1
font: italic 700 16px "Microsoft Yahei"
  • 使用font属性时,必须按照上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开
  • 不需要设置属性可以省略,但必须保留font-size和font-family属性,否则font属性不起作用

3.6 字体属性总结

属性 表示 注意点
font-size 字号 通常的单位是px像素,一定要加单位
font-family 字体 “Microsoft Yahei”, tahoma, arial, “Hiragino Sans GB”
font-weight 粗细 加粗是700/bold,不加粗是400/normal,数字没有单位
font-style 样式 倾斜是italic,正常是normal,常用normal
font 复合属性 符合属性是有顺序的,不能随意换位置,字号和字体必须有

四、CSS文本属性

CSS Text文本属性可以定义文本的外观,别如文本的颜色、对齐文本、装饰文本、文本缩进、行间距等。

4.1 文本颜色

color属性用于定义文本的颜色。

1
div {color: red;}
表示形式 属性值
预定义的颜色值 red, green, blue, pink
十六进制 #FF0000, #123456, #666666
RGB代码 rgb(255,0,0)或rgb(100%,0%,0%)

4.2 对齐文本

text-align属性用于设置元素内文本内容的水平对齐方式。

1
div {text-align: center;}
属性值 解释
left 左对齐(默认)
right 右对齐
center 居中

4.3 装饰文本

text-decoration属性规定添加到文本的装饰,可以给文本添加下划线、删除线、上划线等。

1
div {text-decoration: underline;}
属性值 描述
none 无(最常用,超链接去下划线)
underline 下划线(常用)
overline 上划线(几乎不用)
line-through 删除线(几乎不用)

4.4 文本缩进

text-indent属性用来指定文本的第一行的缩进,通常是将段落的首行缩进。

1
p {text-indent: 2em;}

通过设置该属性,该元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。

em是一个相对单位,是当前元素的文字大小。

4.5 行间距

line-height属性用于设置行间的距离(行高),可以控制文字行与行之间的距离

1
p {line-height: 26px;}

行间距=上间距+文本高度+下间距,行高改变的是上下两个间距。

4.6 文本属性总结

属性 表示 注意点
color 文本颜色 通常使用16进制
text-align 文本对齐 可以设定文字水平的对齐方式
text-indent 文本缩进 用于设定段落首行缩进两字符 text-indent: 2em
text-decoration 文本修饰 添加下划线underline,取消下划线none
line-height 行高 控制行与行的距离

五、CSS的引入方式

5.1 CSS的三种样式表

按照CSS样式书写的位置(或者引入的样式),CSS样式表可以分为三大类:

  1. 行内样式表(行内式)
  2. 内部样式表(嵌入式)
  3. 外部样式表(链接式)

5.2 内部样式表

内部样式表是写到html页面内部,将所有的CSS代码抽取出来,单独放到一个<style>标签中。内部样式表设定CSS,也被称为嵌入式引入。

1
2
3
4
5
<style>
div {
color: red;
}
</style>
  • 理论上<style>标签可以放到任何位置,但一般放在<head>标签。
  • 这种方式可以控制整个页面的元素样式
  • 代码结构清晰,但并没有实现结构和样式的完全分离

5.3 行内样式表

行内样式表是在元素标签内部的style属性中设定CSS杨适。适合于修改简单样式。通常也称为行内式引入。

1
<p style="color: red;">Hello world.</p>
  • style其实就是标签的属性
  • 在双引号中间,写法要符合CSS规范
  • 只可以控制当前标签样式
  • 书写过于繁琐,不推荐大量使用,只有对当前元素添加简单样式的时候考虑使用。

5.4 外部样式表

实际开发都是外部样式表,适合样式比较多的情况,核心是:样式单独写到CSS文件中,之后把CSS文件引入到HTML页面中使用。

引入外部样式表分为两步:

  1. 新建一个后缀名为.css的样式文件,把所有CSS代码都放入此文件中。
  2. 在HTML页面中,使用<link>标签引入这个文件
1
<link rel="stylesheet" href="css文件路径">
属性 作用
rel 定义当前文档与被链接文档之间的关系,这里需要指定为"stylesheet",即被链接的文档是一个样式表文件
href 定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径

5.5 CSS引入方式总结

样式表 优点 缺点 使用情况 控制范围
行内样式表 书写方便,权重高 结构样式混写 较少 控制一个标签
内部样式表 部分结构和样式相分离 没有彻底分离 较多 控制一个页面
外部样式表 完全实现结构和样式相分离 需要引入 最多 控制多个页面

六、Chrome调试工具

Chrome浏览器提供了一个非常好用的调试工具,可以用来调试我们的HTML结构和CSS样式。

6.1 打开调试工具

在页面右键点击审查元素,或者按F12

6.2 使用调试工具

  1. 左边是HTML,右边是CSS杨适
  2. 使用Ctrl+滚轮可以放大代码字体大小
  3. 右边CSS样式可以改动数值和查看颜色
  4. Ctrl+0复原浏览器大小
  5. 如果点击元素,发现右侧没有样式引入,极有可能是类名或者样式引入错误
  6. 如果有样式,但是样式前面有黄色感叹号提示,则是样式属性书写错误

本文参考了黑马程序员pink老师的视频教程
黑马程序员pink老师前端入门视频教程: https://www.bilibili.com/video/BV14J4114768