很多朋友把分不清“子選擇符”和“後代選擇符”的區別。其實它們的差別還是蠻大的。“後代選擇符”IE6,甚至更低IE版本,就已經支持了。也許你 已經被這些“拗口”、“深奧”的名詞搞迷糊了。到底什麼“後代選擇符”呢?其實大家都用過,看看下面的例子就明白了。 現在無論是FireFox還是IE7,對於“子選擇符”的支持還都存在一定的問題。
<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="YES!B/S!,web標准,楊正祎,博客園,實例代碼" />
<meta name="Description" content="這是一個簡單YES!B/S!文章示例頁面,來自楊正祎的博客,http://justinyoung.cnblogs.com/" />
<title>YES!B/S!文章示例頁面</title>
<style type="text/css">
/*後代選擇符*/
#div1 p{
color:red;
}
/*子選擇符*/
#div1>p{
font-size:150%;
}
</style>
</head>
<body>
<div id="div1">
<p id="p1">我是div1的兒子1
<p id="p1_1">我是div1的孫子</p>
</p>
<p id="p2">我是div1的兒子2</p>
</div>
</body>
</html>
示例中,"p1"和"p2"包含在“div1”內,那麼"p1"和"p2"就是“div1”的兒子,是後代,而“p1_1”包含在“p1”中, 那麼 “p1_1”是“p1”的兒子,是後代。而“p1_1”也包含在“div1”中,則“p1_1”是“div1”的孫子,也是後代。使用“#div1 p{color:red;}”(後代選擇器)會將div1下面的所有段落的字體顏色都設置為了紅色。無論是孩子還是孫子,都要聽話。“只要是我的後代,就 得聽我的話!”——這就是“後代選擇符”。
而“子選擇符”則不會那麼霸道,它只管它的“兒子”,不會去管“孫子”、“重孫子”、“重重孫子”……