## 一、概述
### 1.1 什么是 CSS?
Cascading Style Sheets (CSS) 是一门指定文档该如何呈现给用户的语言。
在 HTML 中,使用标记语言来描述文档的内容而不是它的样式。使用 CSS 来指定它的样式而不是它的内容。
### 1.2 为什么使用 CSS?
CSS 帮助您将文档信息的内容和如何展现它的细节相分离。众所周知,如何展现文档的细节即为样式(style)。将样式从它的内容分离出来,以便能够:
* 避免重复
* 更容易维护
* 为不同的目的,使用不同的样式而内容相同
## 二、CSS 基本使用
### 2.1 内联样式
内联 CSS 也可称为行内 CSS,它直接在标签内部引入,显著的优点是十分的便捷、高效;但是同时也造成了不能够重用样式的缺点,如果代码行数到达一定长度不建议采用。
```
<p style="color: red;">这是我学习 CSS 的第一天</p>
```
### 2.2 选择器
我们可以通过 CSS 选择器选择你想要的元素,从而向这些元素添加相应的样式。
CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明构成。同一个声明中的属性和值组成一个名值对(property-value pairs),名值对用分号分隔。
```
selector {
property: value;
property: value;
...
}
```
* 标签选择器:我们可以将标签名作为选择器,为所有该标签表示的元素添加样式。示例如下:
```
<style>
p {
color: red;
}
</style>
<p>这是我学 CSS 的第一天</p>
<p>这是我学 CSS 的第二天</p>
```
* 类选择器:通过设置元素的`class`属性,可以为元素指定类名。文档中的多个元素可以拥有同一个类名。可以使用类名作为选择器,为拥有同一类名的元素添加样式。类名选择器使用`.类名`表示。示例如下:
```
<style>
.color-red {
color: red;
}
.color-blue {
color: blue;
}
</style>
<p class="color-red">这是我学 CSS 的第一天</p>
<ul>
<li class="color-red">苹果</li>
<li class="color-red">香蕉</li>
<li class="color-blue">橙子</li>
<li class="color-blue">菠萝</li>
</ul>
```
* ID 选择器:通过设置元素的`id`属性为该元素指定ID。每个ID在文档中必须是唯一的。可以通过 ID 选择器为某一个元素添加样式。ID 选择器使用`#ID名`表示。示例如下:
```
<style>
#hello {
color: green;
}
</style>
<p id="hello">这是我学 CSS 的第一天</p>
<p>这是我学 CSS 的第二天</p>
```
### 2.3 层叠和继承
一个元素的样式,可以通过多种方式来定义,而多种定义方式之间通过复杂的影响关系决定了元素的最终样式。
对于层叠来说,主要的样式来源如下:
* 浏览器对HTML定义的默认样式。
* 开发者定义的样式,可以有三种形式:
* 定义在外部文件(外链样式):在实际开发中主要是通过这种形式定义样式。
* 在页面的头部定义(内联样式):通过这种形式定义的样式只在本页面内生效。
* 定义在特定的元素身上(行内样式):这种形式多用于测试,可维护性较差。
嵌套的标签构建了网页元素的层级关系。此时父级元素的样式也会被子类元素继承。如下:
```
<style>
p {
color: red;
text-decoration: underline;
}
</style>
<p>这是我学<strong>CSS</strong>的第一天</p>
```
## 三、CSS 常用样式
### 3.1 文本样式
* `color`颜色
*****
* `font-size`文字大小
* `font-weight`文字粗细
* `font-family`字体集
* `font-variant`字体变体
* `font-style`字体样式
*****
* `text-align`文字对齐
* `text-decoration`文字装饰
* `text-indent`文字缩进
* `text-shadow`文字阴影
*****
* `line-height`行高
* `word-spacing`单词间距
* `letter-spacing`字母间距
### 3.2 颜色
* `关键字`:red、blue、black等
* `rgb坐标值`:rgb(255, 0, 0)、rgb(0, 0, 255)、rgb(0, 0, 0)等
* `十六进制值`:#ff0000、#0000ff、#000000等
### 3.3 列表
* `list-style-type`列表样式类型
* `list-style-image`列表样式图片
### 3.4 内容
* 内容文字:CSS可以在元素的前后插入文本:在选择器的后面加上`::before`或者`::after`。在声明中,指定`content`属性,并设置文本内容。
* 内容图片:可以通过将`content`属性值设置为某个图片的URL,可以将图片插到元素的前面或后面。
* 背景图片:将`background`的值设为图片的URL可以将图片设置成元素的背景图。
## 四、伪类
CSS伪类(pseudo-class)是加在选择器后面的用来指定元素状态的关键字。
伪类不仅可以让你为符合某种文档树结构的元素指定样式,还可以为符合某些外部条件的元素指定样式:浏览历史(比如是否访问过 (`:visited`), 内容状态(如`:checked`), 鼠标位置 (如`:hover`)。
```
selector:pseudo-class {
property: value;
}
```
* `:link`是用来选中元素当中的链接
* `:visited`表示用户已访问过的链接
* `:hover`适用于用户使用指示设备虚指一个元素的情况
* `:active`匹配被用户激活的元素
* `:focus`表示获得焦点的元素
* `:checked`表示任何处于选中状态的元素
- 阶段一 Java 零基础入门
- 步骤1:基础语法
- 第01课 初识
- 第02课 常量与变量
- 第03课 运算符
- 第04课 选择结构
- 第05课 循环结构
- 第06课 一维数组
- 第08课 方法
- 第09课 数组移位与统计
- 第10课 基础语法测试
- 第09课 基础语法测试(含答案)
- 步骤2:面向对象
- 第01课 类和对象
- 第02课 封装
- 第03课 学生信息管理
- 第04课 继承
- 第05课 单例模式
- 第06课 多态
- 第07课 抽象类
- 第08课 接口
- 第09课 内部类
- 第10课 面向对象测试
- 第10课 面向对象测试(含答案)
- 步骤3:常用工具类
- 第01课 异常
- 第02课 包装类
- 第03课 字符串
- 第04课 集合
- 第05课 集合排序
- 第06课 泛型
- 第07课 多线程
- 第08课 输入输出流
- 第09课 案例:播放器
- 第10课 常用工具测试(一)
- 第10课 常用工具测试(一)(答案)
- 第10课 常用工具测试(二)
- 第10课 常用工具测试(二)(答案)
- 阶段二 从网页搭建入门 JavaWeb
- 步骤1:HTML 与 CSS
- 第01课 HTML 入门
- 第01课 HTML 入门(作业)
- 第02课 CSS 入门
- 第02课 CSS 入门(作业)
- 第03课 CSS 布局
- 第03课 CSS 布局(作业)
- 步骤2:JavaScript 与前端案例
- 第01课 JavaScript 入门
- 第01课 JavaScript 入门(作业)
- 第02课 仿计算器
- 第03课 前端油画商城案例
- 第04课 轮播图
- 第05课 网页搭建测试
- 第05课 网页搭建测试(含答案)
- 步骤3:JavaScript 教程
- 入门
- 概述
- 基本语法
- 数据类型
- 概述
- 数值
- 字符串
- undefined, null 和布尔值
- 对象
- 函数
- 数组
- 运算符
- 算术运算符
- 比较运算符
- 布尔运算符
- 位运算符
- 运算顺序
- 语法专题
- 数据类型的转换
- 错误处理机制
- 标准库
- String
- Date
- Math
- DOM
- 概述
- Document 节点
- 事件
- EventTarget 接口
- 事件模型
- 常见事件
- 阶段三 数据库开发与实战
- 步骤1:初始数据库操作
- 第01课 数据类型
- 第02课 表的管理
- 第03课 数据管理
- 第04课 常用函数
- 第05课 JDBC 入门
- 第06课 Java 反射
- 第07课 油画商城
- 第08课 数据库基础测试
- 步骤2:MyBatis 从入门到进阶
- 第01课 IntelliJ IDEA 开发工具入门
- 第02课 Maven 入门
- 第03课 工厂模式
- 第04课 MyBatis 入门
- 第05课 MyBatis 进阶
- 第06课 商品信息管理
- 第07课 MyBatis 基础测试
- 步骤3:Redis 数据库与 Linux 下项目部署
- 第01课 Linux 基础
- 第02课 Linux 下 JDK 环境搭建及项目部署
- 第03课 Redis 入门
- 阶段四 SSM 到 Spring Boot 入门与综合实战
- 步骤1:Spring 从入门到进阶
- 第01课 Spring 入门
- 第02课 Spring Bean 管理
- 第03课 Spring AOP
- 第04课 基于 AspectJ 的 AOP 开发
- 第05课 JDBC Template
- 第06课 Spring 事务管理
- 第07课 人员管理系统开发
- 第08课 Spring 从入门到进阶测试
- 步骤2:Spring MVC 入门与 SSM 整合开发
- 第01课 Spring MVC 入门与数据绑定
- 第02课 Restful 风格的应用
- 第03课 SpringMVC 拦截器
- 第04课 办公系统核心模块
- 步骤3:Spring Boot 实战
- 第01课 Spring Boot 入门
- 第02课 校园商铺项目准备
- 第03课 校园商铺店铺管理
- 第04课 校园商铺商品管理及前台展示
- 第05课 校园商铺框架大换血
- 步骤4:Java 面试
- 第01课 面试准备
- 第02课 基础面试技巧
- 第03课 Web基础与数据处理
- 第04课 主流框架