用于asp.net的CSS禁用按钮

时间:2016-07-13 06:48:51

标签: c# css asp.net

我有一个asp.net按钮,它根据一些c#代码条件被禁用。按钮,调用它btnPrevious设置为使用以下css类:

.btnBlue{
background: rgb(40, 108, 244); /* Old browsers */
background:linear-gradient(to bottom, rgb(40, 108, 244) 0%, rgb(0, 68, 204) 50%, rgb(40, 108, 244) 100%) repeat scroll 0% 0% transparent; /* W3C */
background: -moz-linear-gradient(top,  rgb(40, 108, 244) 0%, rgb(0, 68, 204) 50%, rgb(40, 108, 244) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(40, 108, 244)), color-stop(50%,rgb(0, 68, 204)), color-stop(100%,rgb(40, 108, 244))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* IE10+ */
-ms-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=rgb(40, 108, 244), endColorstr=rgb(40, 108, 244),GradientType=0 ); /* IE6-9 */}

当按钮处于禁用状态时,即btnPrevious.disabled = true; css属性不起作用。 我哪里错了。感谢。

编辑:只是提出更多关于主题的问题:

我的CSS为什么或如何被默认框架覆盖?

2 个答案:

答案 0 :(得分:0)

您可以将:disabled用于应该工作的按钮。试试下面的css

.btnBlue:disabled{
background: rgb(40, 108, 244); /* Old browsers */
background:linear-gradient(to bottom, rgb(40, 108, 244) 0%, rgb(0, 68, 204) 50%, rgb(40, 108, 244) 100%) repeat scroll 0% 0% transparent; /* W3C */
background: -moz-linear-gradient(top,  rgb(40, 108, 244) 0%, rgb(0, 68, 204) 50%, rgb(40, 108, 244) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(40, 108, 244)), color-stop(50%,rgb(0, 68, 204)), color-stop(100%,rgb(40, 108, 244))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  rgb(40, 108, 244) 0%,rgb(0, 68, 204) 50%,rgb(40, 108, 244) 100%); /* IE10+ */
-ms-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=rgb(40, 108, 244), endColorstr=rgb(40, 108, 244),GradientType=0 ); /* IE6-9 */}

答案 1 :(得分:0)

听起来像Specificity的情况。一些规则可以适用于相同的元素。您的规则不是非常具体,会尽早应用(因此很容易被覆盖)。

在良好的浏览器中打开网页(我使用Chrome),然后打开开发标签(F12)。 Inspect按钮并查看Styles标签。您应该能够看到不需要的样式来自哪里(它将显示文件和应用不需要的样式的选择器/规则)。

如果您不想(或可以)追踪(并删除)负责搞乱禁用状态的样式,您可以尝试让您的规则更重要。检查特定性的链接,但提示是尝试通过定位按钮(不仅仅是类)以及可能是这样的容器来使规则更具体:

#container button.btnBlue  {
  ...
}

您也可以选择使用反叛标志!important将您的规则置于其他未使用!important标志的规则之前:

#container button.btnBlue  {
  background: rgb(40, 108, 244) !important; 
  ...
}

一般情况下 - 如链接中所述 - 您应该尽量不要使用!important,因为它有点打破了CSS的美感。除非asp.net按钮也使用!important(或内联样式属性),否则应该很容易制定比asp.net规则更具体的规则,因为只有您知道按钮的位置在文件中。您始终可以使您的规则比asp.net规则更具体。

我不知道如何应用不需要的样式 - 我只希望它不是带有style标志的内联(!important属性);)