Pulsante stile disabilitato con CSS


218

Sto cercando di cambiare lo stile di un pulsante con un'immagine incorporata come mostrato nel seguente violino:

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

Nell'esempio non ci sono immagini, temo.

Sto provando a:

  1. Cambia il background-colorpulsante quando è disabilitato
  2. Cambia l'immagine nel pulsante quando è disabilitata
  3. Disabilita l'effetto hover quando disabilitato
  4. Quando si fa clic sull'immagine nel pulsante e la si trascina, l'immagine può essere vista separatamente; Voglio evitarlo
  5. È possibile selezionare il testo sul pulsante. Voglio evitare anche quello.

Ho provato a farlo button[disabled]. Ma alcuni effetti non possono essere disabilitati. mi piace top: 1px; position: relative;e immagine.

Risposte:


317

Per i pulsanti disabilitati è possibile utilizzare lo :disabledpseudo-elemento. Funziona per tutti gli elementi.

Per i browser / dispositivi che supportano solo CSS2, è possibile utilizzare il [disabled]selettore.

Come per l'immagine, non mettere un'immagine nel pulsante. Usa CSS background-imagecon background-positione background-repeat. In questo modo, il trascinamento dell'immagine non avverrà.

Problema di selezione: ecco un link alla domanda specifica:

Esempio per il selettore disabilitato:

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
Applicabile a CSS 2 o 3 (o entrambi)?
ViniciusPires,

3
Per quanto ne so, il :disabledselettore è un selettore CSS3. Il background-image, background-repeat, background-positionstanno lavorando in CSS 2.
Beerwin

3
Quindi forse fare un: disabled, [disabled] funzionerebbe in CSS2 e 3?
ViniciusPires,

3
Solo per notare, la ="true"parte di disabled="true"non è ciò che lo rende disabilitato. È possibile utilizzare disabled="false"o disabled="cat"e sarebbe comunque disabilitato. O semplicemente avere disabledsenza valore. Tale proprietà può essere presente / omessa solo in HTML o aggiunta tramite JavaScript con true / false
Drenai,

86

Penso che dovresti essere in grado di selezionare un pulsante disabilitato usando quanto segue:

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

Posso disabilitare Hover ?? e ho sentito che non funzionerà in IE6?
Krishna Thota,

Non credo, ma non ne sono sicuro al 100%. Se potessi anche aggiungere una classe di disabili su pulsanti disabilitati, probabilmente potresti farlo tramite quella classe.
Billy Moat,

35

Aggiungi il codice qui sotto nella tua pagina. Fidati di me, nessuna modifica apportata agli eventi dei pulsanti, per disabilitare / abilitare i pulsanti è sufficiente aggiungere / rimuovere la classe di pulsanti in Javascript.

Metodo 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>

Metodo 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
Esattamente quello che stavo cercando. Il pulsante è disabilitato ma sembra abilitato!
Domi,

Per sentire il pulsante disabilitato aggiungere il colore del codice CSS seguente: # c0c0c0; colore di sfondo: #ffffff;
Tamilselvan K,

9

Per applicare il pulsante grigio CSS per un pulsante disabilitato.

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

Per CSS:

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

Puoi aggiungere qualsiasi decorazione a quel pulsante. Per cambiare lo stato puoi usare jquery

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

6

Per tutti noi che usiamo bootstrap, puoi cambiare lo stile aggiungendo la classe "disabilitato" e usando quanto segue:

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

Ricorda che l'aggiunta della classe "disabilitato" non disabilita necessariamente il pulsante, ad esempio in un modulo di invio. Per disabilitare il suo comportamento usa la proprietà disabilitata:

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

Un violino funzionante con alcuni esempi è disponibile qui .


4

Quando il pulsante è disabilitato, imposta direttamente l'opacità. Quindi prima di tutto dobbiamo impostare la sua opacità come

.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

considera la seguente soluzione

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

Questa soluzione aumenterà la debolezza dell'app / servizio che è in fase di sviluppo.
Franco Gil,

1
@FrancoGil hai ragione, ma questo può essere un modo per ottenere il pulsante di disabilitazione
Sahil Ralkar

1

E se cambi a scss usa:

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

0

È necessario applicare css come belows:

button:disabled,button[disabled]{
    background-color: #cccccc;
    cursor:not-allowed !important;
  }
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.