CSS3是當(dāng)前Web開發(fā)中最流行的CSS語(yǔ)言之一,提供了許多新的特性和功能,使得網(wǎng)頁(yè)設(shè)計(jì)更加靈活和多樣化。本手冊(cè)將介紹CSS3的各種功能和用法,包括選擇器、樣式、布局、動(dòng)畫和交互等。
## 選擇器
CSS3選擇器提供了一種更靈活的選擇方式,可以更精細(xì)地控制元素的樣式。以下是一些常用的CSS3選擇器:
### 類選擇器
類選擇器是一種基于屬性選擇器的高級(jí)形式,可以根據(jù)選擇器屬性選擇多個(gè)元素。例如:
```css
/* 選擇所有p元素 */
color: red;
/* 選擇第一個(gè)p元素,并將其寬度設(shè)置為100像素 */
p:first-child {
width: 100px;
### 偽類選擇器
偽類選擇器是一種基于屬性選擇器的高級(jí)形式,可以根據(jù)選擇器屬性選擇多個(gè)元素,并根據(jù)不同的偽類形態(tài)改變?cè)氐男螤詈蜆邮健@纾?/p>
```css
/* 選擇所有#header元素 */
#header {
background-color: blue;
color: white;
/* 選擇第一個(gè)#header元素,并將其背景顏色設(shè)置為綠色 */
#header:first-child {
background-color: green;
### 條件樣式選擇器
條件樣式選擇器是一種基于條件選擇器的選擇器,可以根據(jù)條件值自動(dòng)調(diào)整元素的樣式。例如:
```css
/* 選擇所有
元素,如果元素存在,則其字體大小為3像素 */
p:hover + i {
font-size: 3px;
/* 選擇第一個(gè)
元素,如果元素不存在,則其字體大小為4像素 */
p:hover:not(i):first-child {
font-size: 4px;
## 樣式
CSS3提供了更多的樣式功能,可以更加精細(xì)地控制元素的樣式,包括顏色、字體、邊框、背景等等。以下是一些常用的CSS3樣式:
### 顏色
CSS3提供了顏色屬性,可以根據(jù)指定的RGB值或CSS顏色對(duì)象設(shè)置元素的顏色。例如:
```css
/* 設(shè)置文本顏色為紅色 */
color: red;
/* 設(shè)置背景顏色為藍(lán)色 */
body {
background-color: blue;
### 字體
CSS3提供了字體屬性,可以根據(jù)指定的字體名稱或字體樣式設(shè)置元素的字體樣式。例如:
```css
/* 設(shè)置文本字體為微軟雅黑 */
font-family: 微軟雅黑;
font-size: 20px;
/* 設(shè)置背景字體為黑體,并使其看起來(lái)比正文更清晰 */
body {
font-family: 黑體;
font-size: 16px;
background-color: #f00;
### 邊框
CSS3提供了邊框?qū)傩裕梢愿鶕?jù)指定的寬度和高度設(shè)置元素的邊框樣式。例如:
```css
/* 設(shè)置文本框邊框?qū)挾葹?像素 */
border-width: 2px;
/* 設(shè)置背景框邊框?qū)挾葹?像素,高度為20像素 */
body {
border-width: 4px;
border-style: solid;
border-bottom-color: #f00;
height: 20px;
### 背景
CSS3提供了背景屬性,可以根據(jù)指定的背景圖像或CSS顏色對(duì)象設(shè)置元素的背景顏色和樣式。例如:
```css
/* 設(shè)置背景圖像為地球圖像,并使其居中 */
body {
background-position: center;
/* 設(shè)置背景顏色為黑色,并將其居中 */
body {
background-color: #000;
background-position: center;
## 布局
CSS3提供了更多的布局功能,可以更加靈活地控制元素的位置和大小。以下是一些常用的CSS3布局:
### 層疊布局
層疊布局是一種基于布局對(duì)象的布局方式,可以使多個(gè)元素疊加在一起,實(shí)現(xiàn)復(fù)雜的布局效果。例如:
```css
/* 設(shè)置第一個(gè)元素位于第二個(gè)元素之上 */
.parent {
display: flex;
flex-wrap: wrap;
/* 設(shè)置第二個(gè)元素位于第一個(gè)元素之上 */
.parent:first-child {
display: flex;
flex-wrap: wrap;
/* 設(shè)置第三個(gè)元素位于第二個(gè)元素之上 */
.parent:last-child {
display: flex;
flex-wrap: wrap;
### 垂直布局
垂直布局是一種基于布局對(duì)象的布局方式,可以使元素垂直排列,實(shí)現(xiàn)垂直布局效果。例如:
```css
/* 設(shè)置第一個(gè)元素位于第二個(gè)元素之下 */
.parent {
display: flex;
flex-direction: column;
/* 設(shè)置第二個(gè)元素位于第一個(gè)元素之下 */
.parent:first-child {
display: flex;
flex-direction: column;
/* 設(shè)置第三個(gè)元素位于第二個(gè)元素之下 */
.parent:last-child {
display: flex;
flex-direction: column;
### 水平布局
水平布局是一種基于布局對(duì)象的布局方式,可以使元素水平排列,實(shí)現(xiàn)水平布局效果。例如:
```css
/* 設(shè)置第一個(gè)元素位于第二個(gè)元素之上,并使其垂直居中 */
.parent {
display: flex;
flex-direction: row;
align-items: center;
/* 設(shè)置第二個(gè)元素位于第一個(gè)元素之上,并使其水平居中 */
.parent:first-child {
display: flex;
flex-direction: row;
align-items: center;
/* 設(shè)置第三個(gè)元素位于第二個(gè)元素之上,并使其水平居中 */
.parent:last-child {
display: flex;
flex-direction: row;
align-items: center;
### 彈性盒子布局
彈性盒子布局是一種基于彈性盒子模型的布局方式,可以根據(jù)元素的需要自動(dòng)調(diào)整其大小和位置。例如:
```css
.parent {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
.child {
width: 200px;
height: 200px;
background-color: blue;
## 動(dòng)畫
CSS3提供了更多的動(dòng)畫功能,可以創(chuàng)建更加豐富和有趣的動(dòng)畫效果。以下是一些常用的CSS3動(dòng)畫:
### 偽粒子動(dòng)畫
偽粒子動(dòng)畫是一種基于偽粒子模型的動(dòng)畫效果,可以使元素看起來(lái)像是從邊緣逐漸展開或收縮的。例如:
```css
.parent {
position: relative;
width: 200px;
height: 200px;
.parent:before,
.parent:after {
content: "";
position: absolute;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 75px solid green;
.parent:before {
left: 100px;
.parent:after {
left: -100px;
### 過(guò)渡動(dòng)畫
過(guò)渡動(dòng)畫是一種基于過(guò)渡效果創(chuàng)建的動(dòng)畫效果,可以使元素之間過(guò)渡一種平滑的樣式。例如:
```css
.parent {
position: relative;
width: 200px;
height: 200px;
.parent:before,
.parent:after {
content: "";
position: absolute;
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 75px solid green;
.parent:before {
left: 100px;
top: 0;
border-width: 50px 0 50px 100px;
animation: pulse 1s infinite;
.parent:after {
left: -100px;
top: 0;
border-width: 50px 0 50px 100px;
animation: pulse 1s infinite;
@keyframes pulse {
0% {
transform: translateY(0);
100% {
transform: translateY(100px);
### 旋轉(zhuǎn)動(dòng)畫
旋轉(zhuǎn)動(dòng)畫是一種基于旋轉(zhuǎn)效果創(chuàng)建的動(dòng)畫效果,可以使元素圍繞中心點(diǎn)旋轉(zhuǎn)一定角度。例如:
```css
.parent {
position: relative;
width: 20;
height: 0;
.parent:before {
content: "";
position: absolute;
left: 0;
top: 0;
width: 20;
height: 0;
border-left: 0 10 0 10 ;
border-right: 0 10 0 0 ;
transform: rotateY(0deg);
.parent:hover:before {
transform: rotateY(18deg);