CSS 偽類


CSS 偽類別(Pseudo-classes)


CSS偽類別是用來加入一些選擇器的特殊效果。


語法

偽類別的語法:

#selector:pseudo-class {property:value;}

CSS類別也可以使用偽類別:

selector.class:pseudo-class {property:value;}

##anchor偽類別

在支援CSS 的瀏覽器中,連結的不同狀態都可以以不同的方式顯示

#
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
a:link {color:#FF0000;}    /* unvisited link */
a:visited {color:#00FF00;} /* visited link */
a:hover {color:#FF00FF;}   /* mouse over link */
a:active {color:#0000FF;}  /* selected link */
</style>
</head>

<body>
<p><b><a href="http://www.php.cn/css/css-css_tutorial.html" target="_blank">这是一个链接</a></b></p>
<p><b>注意:</b> a:hover 必须在 a:link 和 a:visited 之后,需要严格按顺序才能看到效果。</p>
<p><b>注意:</b> a:active 必须在 a:hover 之后。</p>
</body>
</html>

運行實例»點擊"運行實例" 按鈕查看線上實例

#注意: 在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.html">CSS Syntax</a>
如果在上面的例子的連結已被訪問,它會顯示為紅色。


CSS - :first - child偽類別

您可以使用:first-child 偽類別來選擇元素的第一個子元素

注意:在IE8的先前版本必須宣告<!DOCTYPE> ,這樣:first-child 才能生效。

符合第一個<p> 元素

在下面的範例中,選擇器符合作為任何元素的第一個子元素的<p> 元素:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
p:first-child
{
	color:blue;
} 
</style>
</head>

<body>
<p>This is some text.</p>
<p>This is some text.</p>
<p><b>注意:</b>对于 :first-child 工作于 IE8以及更早版本的浏览器, DOCTYPE必须已经声明.</p>
</body>
</html>

運行實例»#點擊"運行實例" 按鈕查看線上實例


符合所有<p> 元素中的第一個<i> 元素

#在下面的範例中,選擇相符的所有<p>元素的第一個 <i>元素:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
p > i:first-child
{
	color:blue;
} 
</style>
</head>

<body>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p><b>注意:</b> 当 :first-child 作用于 IE8以及更早版本的浏览器,  DOCTYPE必须已经定义.</p>
</body>
</html>

運行實例»點擊"運行實例" 按鈕查看線上實例


符合所有作為第一個子元素的<p>元素中的所有<i>元素 

#在下面的範例中,選擇器符合所有作為元素的第一個子元素的<p> 元素中的所有<i> 元素:

#實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
p:first-child i
{
	color:blue;
} 
</style>
</head>

<body>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p>
<p><b>注意:</b> 当:first-child 作用于 IE8及更早版本的浏览器, DOCTYPE 必须已经定义.</p>
</body>
</html>

執行實例»

點擊"執行實例" 按鈕查看線上實例


#CSS - :lang 偽類別

:lang偽類使你有能力為不同的語言定義特殊的規則

注意:IE8必須聲明<!DOCTYPE>才能支援;lang偽類。

在下面的範例中,:lang 類別為屬性值為no 的q元素定義引號的類型:

實例

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
q:lang(no)
{
	quotes: "~" "~";
}
</style>
</head>

<body>
<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>
<p>在这个例子中,:lang定义了q元素的值为lang =“no”</p>
<p><b>注意:</b> 仅当 !DOCTYPE已经声明时 IE8支持 :lang.</p>
</body>
</html>

運行實例»

點擊"運行實例"按鈕查看線上實例


#更多實例


##實例:為超連結新增不同樣式

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
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="http://www.php.cn/css/css-css_tutorial.html" target="_blank">This link changes color</a></b></p>
<p><b><a class="two" href="http://www.php.cn/css/css-css_tutorial.html" target="_blank">This link changes font-size</a></b></p>
<p><b><a class="three" href="http://www.php.cn/css/css-css_tutorial.html" target="_blank">This link changes background-color</a></b></p>
<p><b><a class="four" href="http://www.php.cn/css/css-css_tutorial.html" target="_blank">This link changes font-family</a></b></p>
<p><b><a class="five" href="http://www.php.cn/css/css-css_tutorial.html" target="_blank">This link changes text-decoration</a></b></p>
</body>

</html>

執行實例»

點擊"執行實例" 按鈕可查看線上實例

這個例子示範如何為超連結添加其他樣式。

實例:使用:focus

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>php中文网(php.cn)</title> 
<style>
input:focus
{
	background-color:yellow;
}
</style>
</head>

<body>
<form action="" method="get">
用户名: <input type="text" name="fname" /><br>
密 码: <input type="text" name="lname" /><br>
<input type="submit" value="Submit" />
</form>

<p><b>注意:</b>仅当 !DOCTYPE已经声明时 IE8支持 :focus.</p>

</body>
</html>

####執行實例»######點擊"運行實例" 按鈕查看線上實例## ####

這個例子示範如何使用 :focus偽類別。


所有CSS偽類別/元素

# :disabled選擇所有已停用的表單元素:empty選擇所有沒有子元素的p元素#:enabled#選擇所有啟用的表單元素:first-of-typep:first-of-typeinput:in-range#選擇所有無效的元素p:last-child#選取所有p元素的最後一個子元素p:last-of-type#選擇每個p元素是其母元素的最後一個p元素:not(p)選擇所有p以外的元素p:nth-child(2)選擇所有p元素的第二個子元素##選擇只讀屬性的元素屬性:read-writeinput:read-write選擇沒有唯讀屬性的元素屬性:requiredinput:required選擇有"required"屬性指定的元素屬性##:root#:target#:valid:link#:visited# #:active:hover#:focus:first-letter:first-line:first-child:lang(
選擇器範例範例說明
#:checkedinput:checked選擇所有選取的表單元素
input:disabled
#p:empty
input:enabled
選擇每個父元素是p元素的第一個p子元素:in-range
# #選擇元素指定範圍內的值:invalidinput:invalid
##:last-child
#:last-of-type
:not(selector)
#:nth-child(n)
:nth-last-child(n)#########p:nth-last-child(2)######選擇所有p元素倒數的第二個子元素###############:nth-last-of-type(n)#########p:nth-last-of-type (2)######選擇所有p元素倒數的第二個為p的子元素################:nth-of-type(n)### ######p:nth-of-type(2)######選取所有p元素第二個為p的子元素###############: only-of-type###p:only-of-type選擇所有隻有一個子元素為p的元素
:only-childp:only-child選擇所有隻有一個子元素的p元素
:optionalinput :optional選擇沒有"required"的元素屬性
#:out-of-rangeinput:out-of-range#選擇指定範圍以外的值的元素屬性
:read-onlyinput:read-only
root選擇文件的根元素
#news:target 選擇目前活動#news元素(點選URL包含錨點的名字)
input:valid選擇所有有效值的屬性
a:link選擇所有未存取連結
a:visited選擇所有造訪過的連結
a:active選擇正在活動連結
a:hover把滑鼠放在連結上的狀態
input:focus 選擇元素輸入後具有焦點
p:first-letter選擇每個<p> 元素的第一個字母
p:first-line#選擇每個<p> 元素的第一行
p:first-child #選擇器符合屬於任意元素的第一個子元素的<]p> 元素################:before###p:before在每個<p>元素之前插入內容
##:after ##p:after在每個<p>元素之後插入內容
language)p:lang(it)為<p>元素的lang屬性選擇一個開始值