如果一个超链接有 disabled="disabled"
属性,是否可以覆盖应用的样式?
目前它是灰色的。不关心使它成为活动链接,只想更改字体、颜色等。
更新:必须在IE6、IE7和FF中工作。
更新:
情况比我想象的还要糟糕,HTML是<A id="someId" disabled>About Your Group</A>
更新: 我真的需要看看是什么将这个“禁用”添加到链接中... 我认为这是一个jquery插件.. (ui.tabs, jquery ui.tabs)
如果一个超链接有 disabled="disabled"
属性,是否可以覆盖应用的样式?
目前它是灰色的。不关心使它成为活动链接,只想更改字体、颜色等。
更新:必须在IE6、IE7和FF中工作。
更新:
情况比我想象的还要糟糕,HTML是<A id="someId" disabled>About Your Group</A>
更新: 我真的需要看看是什么将这个“禁用”添加到链接中... 我认为这是一个jquery插件.. (ui.tabs, jquery ui.tabs)
disabled
属性不能用于a
元素。它仅适用于input
、select
和button
元素。.disabled { color: #ccc; }
The HTML
<a href="..." class="disabled">...</a>
为了完善禁用效果,使用jQuery,您可以选择所有class为“disabled”的链接并阻止它们的默认行为,如下所示:
$(function ()
{
$("a.disabled").click(function ()
{
// return false to disable the link (preventDefault = true)
return false;
});
});
<asp:HyperLink>
中将Enable
属性设置为false
时,ASP.Net会在<a>
标签上添加disabled="disabled"
。这会导致IE忽略该元素的css规则(即使是对于a[disabled="disabled]
!),非常烦人。其他浏览器不会在意,因为它们忽略了该属性。NavigationUrl
属性简单地设置为null
。我不知道超链接的disabled
属性支持到什么程度。请确保进行彻底测试。
我看到有两种方法可以在CSS中定位:
CSS 2.1
您可以尝试使用CSS 2.1属性选择器。
a[disabled=disabled] { color: blue }
我认为这个方法最适用于非表单元素。在IE <= 6中无法使用。Quirksmode兼容性表。
CSS 3
在CSS 3中,可以使用:disabled
伪类(来源)
input:disabled { background-color: yellow; }
在任何IE浏览器中都无法正常工作,包括IE8。但在Firefox、Chrome和Opera浏览器中可以正常工作。Quirksmode兼容性表
我从未见过在普通超链接上使用disabled
,所以您需要尝试是否有效。根据规范,disabled
伪类仅适用于禁用的表单元素。
a:not([href]) /* this is for ASP.NET disabled links */
{
opacity: .5; /* all but IE before 9 */
}
filter: alpha(opacity=50);
您还需要使用一些JavaScript,例如jQuery,以删除有问题的禁用属性。即:
$('#controlId').attr('disabled','')
disabled
和href
,那么您应该同时删除href
,这样样式就能够被应用而链接也不会起作用。我认为超链接没有“disabled”属性(无论如何,它不遵守w3c建议),但您可以尝试添加类来为这些元素设置样式,例如:
<a class="inactive" ...>...</a>
关于 CSS 的部分:
a.inactive {
color:#000
}