Кнопка стиля отключена с помощью CSS


219

Я пытаюсь изменить стиль кнопки со встроенным изображением, как показано в следующей скрипте:

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

В примере нет изображений, я боюсь.

Я пытаюсь:

  1. Изменить background-colorкнопку, когда она отключена
  2. Измените изображение в кнопке, когда она отключена
  3. Отключить эффект наведения при отключении
  4. Когда вы нажимаете на изображение в кнопке и перетаскиваете его, изображение можно увидеть отдельно; Я хочу избежать этого
  5. Текст на кнопке может быть выбран. Я тоже хочу этого избежать.

Я пытался делать в button[disabled]. Но некоторые эффекты нельзя было отключить. как top: 1px; position: relative;и изображение.

Ответы:


317

Для отключенных кнопок вы можете использовать :disabledпсевдоэлемент. Это работает для всех элементов.

Для браузеров / устройств, поддерживающих только CSS2, вы можете использовать [disabled]селектор.

Как с изображением, не помещайте изображение в кнопку. Используйте CSS background-imageс background-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

3
Насколько я знаю, :disabledселектор является селектором CSS3. background-image, background-repeat, background-positionРаботают в CSS 2.
beerwin

3
Так что, возможно, сделать: disabled, [disabled] будет работать в CSS2 & 3?
ViniciusPires

3
Просто к сведению, то ="true"часть disabled="true"не то , что делает его выключенным. Вы можете использовать disabled="false"или, disabled="cat"и он все равно будет отключен. Или просто не имеют disabledзначения. Это свойство может присутствовать / опускаться только в Html или добавляться через JavaScript с true / false
Drenai

86

Я думаю, что вы должны быть в состоянии выбрать отключенную кнопку, используя следующее:

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

Могу ли я отключить Hover? а я слышал что не будет работать в 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>

Способ 2

<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
Именно то, что я искал. Кнопка отключена, но выглядит включена!
Доми

Чтобы кнопка была отключена, добавьте следующий цвет кода CSS: # c0c0c0; цвет фона: #ffffff;
Тамилсельван К

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;
}

8

По CSS:

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

Их вы можете добавить любое украшение к этой кнопке. Для изменения статуса вы можете использовать jquery

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

6

Для всех нас, использующих bootstrap, вы можете изменить стиль, добавив класс «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:

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

Рабочая скрипка с некоторыми примерами доступна здесь .


4

Когда ваша кнопка отключена, она напрямую устанавливает прозрачность. Итак, прежде всего мы должны установить его непрозрачность как

.v-button{
    opacity:1;    
}

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

2

рассмотрим следующее решение

.disable-button{ 
  pointer-events: none; 
  background-color: #edf1f2;
}

Это решение увеличит слабость приложения / службы, которое находится в процессе разработки.
Франко Хиль

1
@FrancoGil вы правы, но это может быть способом добиться отключения кнопки
Сахиль Ралкар

1

И если вы переходите на использование scss:

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

0

Необходимо применить CSS, как показано ниже:

button:disabled,button[disabled]{
    background-color: #cccccc;
    cursor:not-allowed !important;
  }
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.