为什么当我在按钮上设置enabled = false时,它在Firefox中无法正确呈现?它没有变灰,而是变蓝了。
[UPDATE]
ASP.net已经在链接上删除了这样的标签,因此唯一需要的是将链接变灰。换句话说,CSS样式更改不是功能更改。
以下内容有效地解决了在Firefox和Google Chrome中未显示为灰显的禁用按钮。我将它放入我的样式表中,现在所有链接按钮都能正确呈现。
一个[无效] {
颜色:灰色!重要;
text-decoration:none!important;
}
答案 0 :(得分:11)
a[disabled]
{
color:Grey; text-decoration:none;
}
为我工作,谢谢...
答案 1 :(得分:2)
从W3Scholl开始,“已启用”属性不是XHTML 4的标准属性(它是Microsoft标准。)。您应该从超链接中删除href属性或使用以下代码
// cancel click event.
LinkButton1.Attributes["OnClick"] = "return false;";
// set css to display same disabled link in all browser
LinkButton1.CssClass = "LinkButton_Disabled";
答案 2 :(得分:2)
当您禁用按钮时,它会向按钮添加“aspNetDisabled”类。所以你可以随心所欲地设置“aspNetDisabled”类。
.aspNetDisabled {
color: black;
background-color: #e3e3e3;
text-decoration: none;
}
答案 3 :(得分:1)
在C#中,我发现扩展对于创建跨浏览器解决方案最有帮助。
public static class Extensions
{
public static void Disable(this HtmlAnchor obj)
{
obj.Attributes.Remove("href");
obj.Attributes.Add("disabled", "true");
obj.Style.Add("color", "gray");
}
}
答案 4 :(得分:0)
下面的解决方案是按钮没有链接,但也可以为链接完成。
var obj = document.getElementById('buttonId'');
getLabel = function(elem){
if (elem.id && elem.id=="label") {
elem.id = "disabledLabel";
}
};
Dom.getElementsBy(getLabel ,'td', obj);
这会将按钮显示为禁用或灰显。