Styl wyłączony za pomocą CSS

218

Próbuję zmienić styl przycisku z osadzonym obrazem, jak widać w następującym skrzypce:

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

Obawiam się, że w tym przykładzie nie ma zdjęć.

Staram się:

  1. Zmień background-colorprzycisk, gdy jest wyłączony
  2. Zmień obraz w przycisku, gdy jest on wyłączony
  3. Wyłącz efekt aktywowania, gdy jest wyłączony
  4. Po kliknięciu obrazu w przycisku i przeciągnięciu go obraz można zobaczyć osobno; Chcę tego uniknąć
  5. Tekst na przycisku można wybrać. Też chcę tego uniknąć.

Próbowałem zrobić button[disabled]. Ale niektórych efektów nie można wyłączyć. jak top: 1px; position: relative;i obraz.

Krishna Thota
źródło

Odpowiedzi:

317

W przypadku wyłączonych przycisków możesz użyć :disabledpseudoelementu. Działa dla wszystkich elementów.

W przypadku przeglądarek / urządzeń obsługujących tylko CSS2 można użyć [disabled]selektora.

Podobnie jak w przypadku obrazu, nie umieszczaj obrazu w przycisku. Użyj CSS background-imagez background-positioni background-repeat. W ten sposób przeciąganie obrazu nie nastąpi.

Problem z wyborem: oto link do konkretnego pytania:

Przykład dla wyłączonego selektora:

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>

beerwin
źródło
1
Zastosowanie do CSS 2 lub 3 (lub obu)?
ViniciusPires
3
O ile mi wiadomo, :disabledselektor to selektor CSS3. background-image, background-repeat, background-positionPracuje w CSS 2.
beerwin
3
Więc może zrobienie: wyłączone, [wyłączone] działałoby w CSS2 i 3?
ViniciusPires,
3
Należy zauważyć, że ="true"część disabled="true"nie jest tym, co czyni ją wyłączoną. Możesz użyć disabled="false"lub, disabled="cat"a nadal będzie wyłączone. Lub po prostu mieć disabledbez wartości. Ta właściwość może być obecna / pominięta w HTML lub dodana przez JavaScript z true / false
Drenai
86

Myślę, że powinieneś być w stanie wybrać wyłączony przycisk, używając następujących opcji:

button[disabled=disabled], button:disabled {
    // your css rules
}
Billy Fosa
źródło
Czy mogę wyłączyć Hover? i słyszałem, że nie będzie działać w IE6?
Krishna Thota
Nie sądzę, że możesz, ale nie jestem w 100% pewien. Jeśli możesz również dodać klasę wyłączonych do wyłączonych przycisków, prawdopodobnie możesz to zrobić za pośrednictwem tej klasy.
Billy Moat
35

Dodaj poniższy kod na swojej stronie. Zaufaj mi, nie wprowadzono żadnych zmian w zdarzeniach przycisków, aby wyłączyć / włączyć przycisk wystarczy dodać / usunąć klasę przycisku w JavaScript.

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

Metoda 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>
Tamilselvan K
źródło
2
Dokładnie tego szukałem. Przycisk jest wyłączony, ale wygląda na włączony!
Domi
Aby wyłączyć przycisk, dodaj poniższy kolor kodu CSS: # c0c0c0; kolor tła: #ffffff;
Tamilselvan K,
9

Aby zastosować szary przycisk CSS dla przycisku wyłączonego.

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;
}
Nishanthi Grashia
źródło
7

Według CSS:

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

Możesz dodać dowolną dekorację do tego przycisku. Aby zmienić status, możesz użyć jquery

$("#id").toggleClass('disable');
Alvargon
źródło
6

Dla nas wszystkich korzystających z bootstrap, możesz zmienić styl, dodając klasę „disabled” i wykonując następujące czynności:

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

Pamiętaj, że dodanie klasy „wyłączone” niekoniecznie wyłącza przycisk, na przykład w formularzu przesyłania. Aby wyłączyć jego zachowanie, użyj właściwości disabled:

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

Działające skrzypce z kilkoma przykładami jest dostępne tutaj .

c-chavez
źródło
4

Gdy przycisk jest wyłączony, bezpośrednio ustawia krycie. Przede wszystkim musimy ustawić jego krycie na

.v-button{
    opacity:1;    
}
kushal Baldev
źródło
2
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled,
{
  //  apply css here what u like it will definitely work...
}
Chetan
źródło
2

rozważ następujące rozwiązanie

.disable-button{ 
  pointer-events: none; 
  background-color: #edf1f2;
}
Sahil Ralkar
źródło
To rozwiązanie zwiększy słabość tworzonej aplikacji / usługi.
Franco Gil
1
@FrancoGil masz rację, ale może to być sposób na osiągnięcie przycisku wyłączenia
Sahil Ralkar
1

A jeśli zmienisz na scss użyj:

button {
  backgroud-color: #007700
  &:disabled {
    backgroud-color: #cccccc
  }
}
Akostha
źródło
0

Musisz zastosować css jako poniżej:

button:disabled,button[disabled]{
    background-color: #cccccc;
    cursor:not-allowed !important;
  }
Nagnath Mungade
źródło