# CSS 偽類 (Pseudo-classes)
**CSS 偽類用于向某些選擇器添加特殊的效果。**
## CSS 偽類 (Pseudo-classes)實例:
[超鏈接](/tiy/t.asp?f=csse_link)
```
<html>
<head>
<style type="text/css">
a:link {color: #FF0000}
a:visited {color: #00FF00}
a:hover {color: #FF00FF}
a:active {color: #0000FF}
</style>
</head>
<body>
<p><b><a href="/index.html" target="_blank">這是一個鏈接。</a></b></p>
<p><b>注釋:</b>在 CSS 定義中,a:hover 必須位于 a:link 和 a:visited 之后,這樣才能生效!</p>
<p><b>注釋:</b>在 CSS 定義中,a:active 必須位于 a:hover 之后,這樣才能生效!</p>
</body>
</html>
```
[超鏈接 2](/tiy/t.asp?f=csse_link2)
```
<html>
<head>
<style type="text/css">
a.one:link {color: #ff0000}
a.one:visited {color: #0000ff}
a.one:hover {color: #ffcc00}
a.two:link {color: #ff0000}
a.two:visited {color: #0000ff}
a.two:hover {font-size: 150%}
a.three:link {color: #ff0000}
a.three:visited {color: #0000ff}
a.three:hover {background: #66ff66}
a.four:link {color: #ff0000}
a.four:visited {color: #0000ff}
a.four:hover {font-family: monospace}
a.five:link {color: #ff0000; text-decoration: none}
a.five:visited {color: #0000ff; text-decoration: none}
a.five:hover {text-decoration: underline}
</style>
</head>
<body>
<p>請把鼠標移動到這些鏈接上,以查看效果:</p>
<p><b><a class="one" href="/index.html" target="_blank">這個鏈接改變顏色</a></b></p>
<p><b><a class="two" href="/index.html" target="_blank">這個鏈接改變字體大小</a></b></p>
<p><b><a class="three" href="/index.html" target="_blank">這個鏈接改變背景顏色</a></b></p>
<p><b><a class="four" href="/index.html" target="_blank">這個鏈接改變字體系列</a></b></p>
<p><b><a class="five" href="/index.html" target="_blank">這個鏈接改變文本裝飾</a></b></p>
</body>
</html>
```
[超鏈接 - :focus 的使用](/tiy/t.asp?f=csse_link_focus)
```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
input:focus
{
background-color:yellow;
}
</style>
</head>
<body>
<form action="form_action.asp" method="get">
First name: <input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
<input type="submit" value="Submit" />
</form>
<p><b>注釋:</b>如果已規定 !DOCTYPE,那么 Internet Explorer 8 (以及更高版本)支持 :focus 偽類。</p>
</body>
</html>
```
[:first-child(首個子對象)](/tiy/t.asp?f=csse_first-child)
```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
p:first-child {font-weight: bold;}
li:first-child {text-transform:uppercase;}
</style>
</head>
<body>
<div>
<p>These are the necessary steps:</p>
<ul>
<li>Intert Key</li>
<li>Turn key <strong>clockwise</strong></li>
<li>Push accelerator</li>
</ul>
<p>Do <em>not</em> push the brake at the same time as the accelerator.</p>
</div>
<p><b>注釋:</b>必須聲明 DOCTYPE,這樣 :first-child 才能在 IE 中生效。</p>
</body>
</html>
```
[:lang(語言)](/tiy/t.asp?f=csse_lang)
```
<html>
<head>
<style type="text/css">
q:lang(no)
{
quotes: "~" "~"
}
</style>
</head>
<body>
<p>:lang 偽類允許您為不同的語言定義特殊的規則。在下面的例子中,在下面的例子中,:lang 類為帶有值為 "no" 的 lang 屬性的 q 元素定義引號的類型:</p>
<p>一些文本 <q lang="no">段落中的引用</q> 一些文本。</p>
</body>
</html>
```
## 語法
偽類的語法:
```
selector : pseudo-class {property: value}
```
CSS 類也可與偽類搭配使用。
```
selector.class : pseudo-class {property: value}
```
## 錨偽類
在支持 CSS 的瀏覽器中,鏈接的不同狀態都可以不同的方式顯示,這些狀態包括:活動狀態,已被訪問狀態,未被訪問狀態,和鼠標懸停狀態。
```
a:link {color: #FF0000} /* 未訪問的鏈接 */
a:visited {color: #00FF00} /* 已訪問的鏈接 */
a:hover {color: #FF00FF} /* 鼠標移動到鏈接上 */
a:active {color: #0000FF} /* 選定的鏈接 */
```
提示:在 CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的。
提示:在 CSS 定義中,a:active 必須被置于 a:hover 之后,才是有效的。
提示:偽類名稱對大小寫不敏感。
## 偽類與 CSS 類
偽類可以與 CSS 類配合使用:
```
a.red : visited {color: #FF0000}
<a class="red" href="css_syntax.asp">CSS Syntax</a>
```
假如上面的例子中的鏈接被訪問過,那么它將顯示為紅色。
## CSS2 - :first-child 偽類
您可以使用 :first-child 偽類來選擇元素的第一個子元素。這個特定偽類很容易遭到誤解,所以有必要舉例來說明。考慮以下標記:
```
<div>
<p>These are the necessary steps:</p>
<ul>
<li>Intert Key</li>
<li>Turn key <strong>clockwise</strong></li>
<li>Push accelerator</li>
</ul>
<p>Do <em>not</em> push the brake at the same time as the accelerator.</p>
</div>
```
在上面的例子中,作為第一個元素的元素包括第一個 p、第一個 li 和 strong 和 em 元素。
給定以下規則:
```
p:first-child {font-weight: bold;}
li:first-child {text-transform:uppercase;}
```
第一個規則將作為某元素第一個子元素的所有 p 元素設置為粗體。第二個規則將作為某個元素(在 HTML 中,這肯定是 ol 或 ul 元素)第一個子元素的所有 li 元素變成大寫。
請訪問該鏈接,來查看這個 [:first-child 實例](/tiy/t.asp?f=csse_first-child)的效果。
提示:最常見的錯誤是認為 p:first-child 之類的選擇器會選擇 p 元素的第一個子元素。
注釋:必須聲明 [<!DOCTYPE>](/tags/tag_doctype.asp),這樣 :first-child 才能在 IE 中生效。
為了使您更透徹地理解 :first-child 偽類,我們另外提供了 3 個例子:
### 例子 1 - 匹配第一個 <p> 元素
在下面的例子中,選擇器匹配作為任何元素的第一個子元素的 p 元素:
```
<html>
<head>
<style type="text/css">
p:first-child {
color: red;
}
</style>
</head>
<body>
<p>some text</p>
<p>some text</p>
</body>
</html>
```
### 例子 2 - 匹配所有 <p> 元素中的第一個 <i> 元素
在下面的例子中,選擇器匹配所有 <p> 元素中的第一個 <i> 元素:
```
<html>
<head>
<style type="text/css">
p > i:first-child {
font-weight:bold;
}
</style>
</head>
<body>
<p>some <i>text</i>. some <i>text</i>.</p>
<p>some <i>text</i>. some <i>text</i>.</p>
</body>
</html>
```
### 例子 3 - 匹配所有作為第一個子元素的 <p> 元素中的所有 <i> 元素
在下面的例子中,選擇器匹配所有作為元素的第一個子元素的 <p> 元素中的所有 <i> 元素:
```
<html>
<head>
<style type="text/css">
p:first-child i {
color:blue;
}
</style>
</head>
<body>
<p>some <i>text</i>. some <i>text</i>.</p>
<p>some <i>text</i>. some <i>text</i>.</p>
</body>
</html>
```
## CSS2 - :lang 偽類
:lang 偽類使你有能力為不同的語言定義特殊的規則。在下面的例子中,:lang 類為屬性值為 no 的 q 元素定義引號的類型:
```
<html>
<head>
<style type="text/css">
q:lang(no)
{
quotes: "~" "~"
}
</style>
</head>
<body>
<p>文字<q lang="no">段落中的引用的文字</q>文字</p>
</body></html>
```
## 偽類
_W3C_:"W3C" 列指示出該屬性在哪個 CSS 版本中定義(CSS1 還是 CSS2)。
| 屬性 | 描述 | CSS |
| --- | --- | --- |
| [:active](/cssref/pr_pseudo_active.asp) | 向被激活的元素添加樣式。 | 1 |
| [:focus](/cssref/pr_pseudo_focus.asp) | 向擁有鍵盤輸入焦點的元素添加樣式。 | 2 |
| [:hover](/cssref/pr_pseudo_hover.asp) | 當鼠標懸浮在元素上方時,向元素添加樣式。 | 1 |
| [:link](/cssref/pr_pseudo_link.asp) | 向未被訪問的鏈接添加樣式。 | 1 |
| [:visited](/cssref/pr_pseudo_visited.asp) | 向已被訪問的鏈接添加樣式。 | 1 |
| [:first-child](/cssref/pr_pseudo_first-child.asp) | 向元素的第一個子元素添加樣式。 | 2 |
| [:lang](/cssref/pr_pseudo_lang.asp) | 向帶有指定 lang 屬性的元素添加樣式。 | 2 |
- HTML 基礎
- HTML 簡介
- 基本的 HTML 標簽 - 四個實例
- HTML 元素
- HTML 屬性
- HTML 標題
- HTML 段落
- HTML 文本格式化
- HTML 編輯器
- HTML CSS
- HTML 鏈接
- HTML 圖像
- HTML 表格
- HTML 列表
- HTML <div> 和 <span>
- HTML 布局
- HTML 表單和輸入
- HTML 框架
- HTML Iframe
- HTML 背景
- HTML 顏色
- HTML 顏色名
- HTML 4.01 快速參考
- HTML 高級
- HTML <!DOCTYPE>
- HTML 頭部元素
- HTML 腳本
- HTML 字符實體
- HTML 統一資源定位器
- HTML URL 字符編碼
- HTML Web Server
- HTML 媒體
- HTML 多媒體
- HTML Object 元素
- HTML 音頻
- HTML 視頻
- HTML XHTML
- XHTML 簡介
- XHTML - 元素
- XHTML - 屬性
- HTML 5 教程
- HTML 5 簡介
- HTML 5 視頻
- HTML 5 Video + DOM
- HTML 5 音頻
- HTML 5 拖放
- HTML 5 Canvas
- HTML5 內聯 SVG
- HTML 5 Canvas vs. SVG
- HTML5 地理定位
- HTML 5 Web 存儲
- HTML 5 應用程序緩存
- HTML 5 Web Workers
- HTML 5 服務器發送事件
- HTML5 Input 類型
- HTML5 表單元素
- HTML5 表單屬性
- CSS 基礎
- CSS 簡介
- CSS 基礎語法
- CSS 高級語法
- CSS 派生選擇器
- CSS id 選擇器
- CSS 類選擇器
- CSS 屬性選擇器
- 如何創建 CSS
- CSS 樣式
- CSS 背景
- CSS 文本
- CSS 字體
- CSS 鏈接
- CSS 列表
- CSS 表格
- CSS 輪廓
- CSS 框模型
- CSS 框模型概述
- CSS 內邊距
- CSS 邊框
- CSS 外邊距
- CSS 外邊距合并
- CSS 定位
- CSS 定位 (Positioning)
- CSS 相對定位
- CSS 絕對定位
- CSS 浮動
- CSS 選擇器
- CSS 元素選擇器
- CSS 分組
- CSS 類選擇器詳解
- CSS ID 選擇器詳解
- CSS 屬性選擇器詳解
- CSS 后代選擇器
- CSS 屬性選擇器詳解
- CSS 后代選擇器
- CSS 子元素選擇器
- CSS 相鄰兄弟選擇器
- CSS 偽類 (Pseudo-classes)
- CSS 偽元素 (Pseudo-elements)
- CSS 高級
- CSS 水平對齊
- CSS 尺寸 (Dimension)
- CSS 分類 (Classification)
- CSS 導航條
- CSS 圖片庫
- CSS 圖像透明度
- CSS2 媒介類型
- CSS 注意事項
- CSS3 教程
- CSS3 簡介
- CSS3 邊框
- CSS3 背景
- CSS3 文本效果
- CSS3 字體
- CSS3 2D 轉換
- CSS3 3D 轉換
- CSS3 過渡
- CSS3 動畫
- CSS3 多列
- CSS3 用戶界面
- Firebug 教程
- Firebug 教程
- 使用Firebug查看和編輯HTML和CSS
- 使用 Firebug 調試 JavaScript
- Firebug頁面概況查看
- Firebug動態執行JavaScript
- Firebug記錄Javascript日志
- Firebug監控網絡情況
- 免責聲明