Jawaban:
Anda dapat menggunakan : mengaktifkan pseudo-class, tetapi pemberitahuan IE<9
tidak mendukungnya :
button:hover:enabled{
/*your styles*/
}
button:active:enabled{
/*your styles*/
}
button:hover:enabled
sepertinya tidak berhasil dalam kasus saya. Menggunakan emulasi IE9 di bawah IE11.
.button:active:hover:not([disabled]) {
/*your styles*/
}
Anda bisa coba ini ..
Mengapa tidak menggunakan atribut "dinonaktifkan" di css. Ini harus bekerja di semua browser.
button[disabled]:hover {
background: red;
}
button:hover {
background: lime;
}
.button[disabled], .button[disabled]:hover, .button[disabled]:focus, .button[disabled]:active {}
Pendekatan dengan spesifisitas rendah yang berfungsi di sebagian besar browser modern (IE11 +, dan mengecualikan beberapa browser Opera & IE mobile - http://caniuse.com/#feat=pointer-events ):
.btn {
/* base styles */
}
.btn[disabled]
opacity: 0.4;
cursor: default;
pointer-events: none;
}
.btn:hover {
color: red;
}
The pointer-events: none
Aturan akan menonaktifkan melayang; Anda tidak perlu meningkatkan spesifisitas dengan .btn[disabled]:hover
pemilih untuk membatalkan gaya hover.
(FYI, ini adalah peristiwa-pointer HTML sederhana, bukan abstrak-input-perangkat pointer-peristiwa)
Dalam sass (scss):
button {
color: white;
cursor: pointer;
border-radius: 4px;
&:disabled{
opacity: 0.4;
&:hover{
opacity: 0.4; //this is what you want
}
}
&:hover{
opacity: 0.9;
}
}
Jika Anda menggunakan LESS
atau Sass
, Anda dapat mencoba ini:
.btn {
&[disabled] {
opacity: 0.6;
}
&:hover, &:active {
&:not([disabled]) {
background-color: darken($orange, 15);
}
}
}
Salah satu caranya adalah dengan menambahkan kelas partcular sambil menonaktifkan tombol dan mengesampingkan hover dan status aktif untuk kelas itu di css. Atau menghapus kelas saat menonaktifkan dan menentukan hover dan properti pseudo aktif pada kelas itu hanya dalam css. Either way, kemungkinan tidak dapat dilakukan sepenuhnya dengan css, Anda harus menggunakan sedikit js.
:not()
pemilih, tetapi sekali lagi, itu hanya didukung sejak IE9 juga. Lihat: developer.mozilla.org/en-US/docs/Web/CSS/:not