2013-06-02 77 views
1

不能似乎得到一個類來在寫一個繼承的樣式:鏈接MVC html.actionlink CSS類

@Html.ActionLink("Back to List", "Index", null, new { @class = "htmlactionlink" }) 

CSS

a:link, a:visited, 
a:active, a:hover 
{ 
    color: #333; 
} 

.htmlactionlink { 
    color: red; 
} 

不影響該元素的風格?

如果我應用內聯樣式,它會起作用。

回答

0

嘗試

a:link, a:visited, 
a:active, a:hover 
{ 
    color: #333; 
} 

a.htmlactionlink 
{ 
    color: red; 
} 

DEMO

3

答案是理解CSS:6.4.3 Calculating a selector's specificity。小提取

一個選擇的特異性的計算方法如下:

  1. 計數1,如果該聲明是從是「風格」屬性..
  2. 計數在選擇器ID的屬性的數量(= b的)
  3. 計數在選擇其它屬性和僞類(= C)的數
  4. 計數元素名稱和僞元素的數量在選擇器(= d)

其它詞語:

  1. inline聲明樣式= 「」
  2. #myId {}
  3. .htmlactionlink {}
  4. 一個{}

的點3。說,同樣的價值先例適用於類和僞類(see more in w3schools.com)

這意味着,計算

a:link is { a=0, b=0, c=1, d=1} 

.htmlactionlink is { a=0, b=0, c=1, d=0} 

這就是爲什麼a:link語句採用優先級,因爲它需要1點上課,一個用於元素名稱。

注:

從我的角度看,最正確的解決方案是

.htmlactionlink:link, .htmlactionlink:visited ... { 
    color: red; 
} 

在這種情況下,我們得到{C = 2,d = 0},我們不指望與簡單的訂單一樣A.htmlactionlink{c = 1,d = 1}