mvc html.actionlink css类

时间:2013-06-02 11:32:51

标签: css asp.net-mvc html.actionlink

似乎没有得到一个类来覆盖:link

的继承样式
@Html.ActionLink("Back to List", "Index", null, new { @class = "htmlactionlink" })

CSS

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

.htmlactionlink {
    color: red;
}

不影响元素的风格吗?

如果我应用内联样式,则可行。

2 个答案:

答案 0 :(得分:3)

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

选择器的特异性计算如下:

  1. 如果声明来自,则计数为1'样式'属性..
  2. 计算选择器(= b)
  3. 中的ID属性数
  4. 计算选择器中其他属性的数量和伪类(= c)
  5. 计算选择器中的元素名称和伪元素的数量(= d)
  6. 换句话说:

    1. 内联声明style =“”
    2. #myId {}
    3. .htmlactionlink {}
    4. a {}
    5. 第3点说,firstdense的相同值应用于类和伪类(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个点用于类,1个用于元素名称。

      注意:

      从我的角度来看,最正确的解决方案是

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

      在这种情况下,我们确实得到{ c = 2 ,d = 0},我们不依赖于简单的A.htmlactionlink {c = 1 ,d = 1}

答案 1 :(得分:0)

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

a.htmlactionlink 
{
    color: red;
}

<强> DEMO