更改已禁用链接的外观

时间:2009-07-21 16:48:05

标签: html css

是否可以在禁用时更改html链接的外观?例如使用类似的东西:

a.disabled
{
  color:#050;
}

<a class="disabled" disabled="disabled" href="#">Testing</a>

上面的示例似乎不适用于IE,但适用于Firefox,在IE上,即使我在样式中设置颜色,它仍然是灰色的。如果我删除了disabled="disabled",那么它可以正常工作。

7 个答案:

答案 0 :(得分:21)

:disabled pseduo类仅适用于输入字段,如文本,广播,复选框等,并在您为元素提供属性“disabled =”disabled“时适用。但是,IE6无法识别伪类,因此您需要单独使用一个类才能使其工作。

<input type="text" value="You can't type here" disabled="disabled" class="disabled" />

可以用

设置样式
input[disabled="disabled"], input.disabled {
    /* whatever you want */
}

伪类将适用于现代浏览器,而类将涵盖IE6。

就像Radeksonic所说,如果你想让禁用的CSS出现在其他元素上,比如锚点,你只需要制作和使用一个类。 <a> s

没有禁用属性

答案 1 :(得分:13)

对于您在评论中提供的链接:

<a href="#" disabled="disabled">some link</a>

样式将是(就像基于属性的任何其他选择器一样):

a[disabled=disabled] {
  color: red;
  font-weight: bold;
}

如果我在你的位置,我会检查跨浏览器的行为。我还没有看到之前使用的disabled属性。

答案 2 :(得分:2)

使用

a.disabled
{
    color: #CCC;/* Just an example */
}

只需使用一个点后跟一个类名来表示您要使用该类。

适用于所有浏览器

答案 3 :(得分:1)

当然,只是添加一个类以特定方式设置<a>元素的样式并不会阻止它们实际执行正常操作。为此,你需要javascript。以基本方式,您可以:

<a href="foo.htm" class="disabled" onclick="return false;">linky</a>

答案 4 :(得分:1)

您可以使用attribute selector获得完整的浏览器支持。

这就足够了:

a[disabled] {
  display:none;
}

属性选择

[att]    

当元素设置&#34; att&#34;时匹配属性,无论属性的值如何。

[att=val]

匹配元素&#34; att&#34;属性值恰好是&#34; val&#34;。

[att~=val]

表示具有att属性的元素,该属性的值是以空格分隔的单词列表,其中一个正好是&#34; val&#34;。如果&#34; val&#34;包含空格,它永远不会代表任何东西(因为单词用空格分隔)。如果&#34; val&#34;是空字符串,它永远不会代表任何东西。

[att|=val]

表示具有att属性的元素,其值正好是&#34; val&#34;或以&#34; val&#34;开头紧随其后的是&#34; - &#34; (U + 002D)。这主要是为了允许语言子代码匹配(例如,HTML中的元素上的hreflang属性),如BCP 47([BCP47])或其后继者中所述。对于lang(或xml:lang)语言子代码匹配,请参阅:lang伪类。

答案 5 :(得分:0)

&lt; a class =“disabled”&gt;我的已停用链接&lt; / a&gt;

a.disabled {
  display:none;
}

只有5个(我认为)pseudo-class selectors for links:链接,访问,悬停,活动和焦点。

答案 6 :(得分:-1)

如果你使用JQUERY,你可以添加属性到锚

.attr("disabled","true")

并将其删除

.removeAttr("disabled")