2012-07-31 38 views
0

我繼承了一個非常大的CSS文件,我添加了一個特定id如下:什麼可能導致CSS id鏈接的「border」屬性被完全忽略?

#specialLink a, #specialLink a:link, #specialLink a:active, #specialLink a:visited 
{ 
    border:solid 1px #000000; 
    background-color:#CC0000; 
} 

然而,當我在一個鏈接中使用它,因爲在<a id="specialLink" href="whatever.htm">Test Link</a>,它完全忽略上面的border屬性,但尊重background-color屬性。

我被引導認爲CSS中的id標記具有最終優先級,那麼可能是什麼導致border屬性被完全忽略?

+0

'id'不一定給予最終優先權。如果你添加'!important',它會起作用嗎? – bhamlin 2012-07-31 18:42:19

+1

使用css樣式檢查器(firebug,chrome)查看邊界聲明中是否有重寫聲明 – 2012-07-31 18:44:14

+0

嘗試#specialLink {css} – SRN 2012-07-31 18:45:18

回答

1

您的選擇器不正確。您有:

#specialLink a {} 

這將匹配與該ID #specialLink後代元素的錨元素:

<div id="specialLink"> 
    <a href="#">Anchor</a> 
</div> 

你想要的是:

a#specialLink {} 

從而使選擇器將匹配:

<a href="#" id="specialLink">Anchor</a> 
+0

由於#specialLink是唯一的,指定#specialLink是多餘的。 – 2012-07-31 18:47:56

+0

對,'#specialLink'也足夠了。我只是想更清楚地知道錯誤在選擇器中。 – daGUY 2012-07-31 18:49:53

+0

工作!但是,我不得不專門使用'#specialLink {}'。 '#specialLink'不起作用。任何想法爲什麼? – ProgrammerGirl 2012-07-31 18:55:51

0

#specialLink a指ID爲「specialLink」的包裝元素中的A標籤。

要設置鏈接的樣式,您需要自行使用#specialLink,因爲它已具有唯一的ID。

#specialLink { 
    ... 
}