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.

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>


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
}

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>

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

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');

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 .


4

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

.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

rozważ następujące rozwiązanie

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

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

0

Musisz zastosować css jako poniżej:

button:disabled,button[disabled]{
    background-color: #cccccc;
    cursor:not-allowed !important;
  }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.