CSS样式禁用按钮


216

我正在尝试更改带有嵌入式图像的按钮的样式,如下面的小提琴所示:

http://jsfiddle.net/krishnathota/xzBaZ/1/

恐怕示例中没有图像。

我试图:

  1. background-color禁用时更改按钮的
  2. 禁用按钮时更改按钮中的图像
  3. 禁用时禁用悬停效果
  4. 当您单击按钮中的图像并将其拖动时,可以分别看到该图像。我想避免那个
  5. 可以选择按钮上的文本。我也想避免这种情况。

我试过了button[disabled]。但是无法禁用某些效果。喜欢 top: 1px; position: relative;和形象。

Answers:


315

对于禁用的按钮,您可以使用:disabled伪元素。它适用于所有元素。

仅对于支持CSS2的浏览器/设备,可以使用[disabled]选择器。

与图像一样,不要在按钮中放置图像。将CSS background-imagebackground-position和一起使用background-repeat。这样,就不会发生图像拖动。

选择问题:这是特定问题的链接:

禁用选择器的示例:

button {
  border: 1px solid #0066cc;
  background-color: #0099cc;
  color: #ffffff;
  padding: 5px 10px;
}

button:hover {
  border: 1px solid #0099cc;
  background-color: #00aacc;
  color: #ffffff;
  padding: 5px 10px;
}

button:disabled,
button[disabled]{
  border: 1px solid #999999;
  background-color: #cccccc;
  color: #666666;
}

div {
  padding: 5px 10px;
}
<div>
  <button> This is a working button </button>
</div>

<div>
  <button disabled> This is a disabled button </button>
</div>


1
适用于CSS 2或3(或两者)?
ViniciusPires 2013年

3
据我所知,:disabled选择器是CSS3选择器。的background-imagebackground-repeatbackground-position在CSS 2的工作
beerwin

3
因此,也许在CSS2和3中执行:disabled [disabled]可行?
ViniciusPires 2013年

3
只是要注意,="true"部分disabled="true"不是使它禁用的原因。您可以使用disabled="false"disabled="cat",但仍将其禁用。或只是disabled毫无价值。该属性只能在HTML中显示/忽略,或通过带有true / false的JavaScript添加
Drenai

86

我认为您应该可以使用以下命令选择一个禁用的按钮:

button[disabled=disabled], button:disabled {
    // your css rules
}

我可以禁用悬停吗?并且听说在IE6中不起作用?
克里希纳·索塔

我不认为可以,但是我不确定100%。如果您还可以在禁用按钮上添加一个禁用类,则可以通过该类来实现。
比利·护城河

35

在页面中添加以下代码。相信我,无需对按钮事件进行任何更改,只需在Javascript中添加/删除按钮类即可禁用/启用按钮。

方法1

 <asp Button ID="btnSave" CssClass="disabledContent" runat="server" />

<style type="text/css">
    .disabledContent 
    {
        cursor: not-allowed;
        background-color: rgb(229, 229, 229) !important;
    }

    .disabledContent > * 
    {
        pointer-events:none;
    }
</style>

方法二

<asp Button ID="btnSubmit" CssClass="btn-disable" runat="server" />

<style type="text/css">
    .btn-disable
        {
        cursor: not-allowed;
        pointer-events: none;

        /*Button disabled - CSS color class*/
        color: #c0c0c0;
        background-color: #ffffff;

        }
</style>

2
正是我想要的。按钮已禁用,但看起来已启用!
米(Domi)2015年

要感到按钮已禁用,请添加以下CSS代码颜色:#c0c0c0; 背景颜色:#ffffff;
Tamilselvan K,

9

将灰色按钮CSS应用于禁用的按钮。

button[disabled]:active, button[disabled],
input[type="button"][disabled]:active,
input[type="button"][disabled],
input[type="submit"][disabled]:active,
input[type="submit"][disabled] ,
button[disabled]:hover,
input[type="button"][disabled]:hover,
input[type="submit"][disabled]:hover
{
  border: 2px outset ButtonFace;
  color: GrayText;
  cursor: inherit;
  background-color: #ddd;
  background: #ddd;
}

7

通过CSS:

.disable{
   cursor: not-allowed;
   pointer-events: none;
}

您可以为该按钮添加任何装饰。要更改状态,您可以使用jquery

$("#id").toggleClass('disable');

6

对于使用引导程序的所有人,您可以通过添加“ disabled”类并使用以下命令来更改样式:

的HTML

<button type="button"class="btn disabled">Text</button>

的CSS

.btn:disabled,
.btn.disabled{
  color:#fff;
  border-color: #a0a0a0;
  background-color: #a0a0a0;
}
.btn:disabled:hover,
.btn:disabled:focus,
.btn.disabled:hover,
.btn.disabled:focus {
  color:#fff;
  border-color: #a0a0a0;
  background-color: #a0a0a0;
}

请记住,添加“ disabled”类并不一定会禁用按钮,例如在提交表单中。要禁用其行为,请使用disabled属性:

<button type="button"class="btn disabled" disabled="disabled">Text</button>

此处提供一些示例的实用小提琴。



2
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
{
  //  apply css here what u like it will definitely work...
}


1

如果您更改为scss,请使用:

button {
  backgroud-color: #007700
  &:disabled {
    backgroud-color: #cccccc
  }
}

0

需要如下应用css:

button:disabled,button[disabled]{
    background-color: #cccccc;
    cursor:not-allowed !important;
  }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.