Respuestas:
Puede usar : pseudo-class habilitada , pero el aviso IE<9no lo admite :
button:hover:enabled{
/*your styles*/
}
button:active:enabled{
/*your styles*/
}
button:hover:enabledNo parece funcionar en mi caso. Usando la emulación IE9 bajo IE11.
.button:active:hover:not([disabled]) {
/*your styles*/
}
Puedes probar esto ...
¿Por qué no utilizar el atributo "deshabilitado" en CSS? Esto debe funcionar en todos los navegadores.
button[disabled]:hover {
background: red;
}
button:hover {
background: lime;
}
.button[disabled], .button[disabled]:hover, .button[disabled]:focus, .button[disabled]:active {}
Un enfoque de menor especificidad que funciona en la mayoría de los navegadores modernos (IE11 +, y excluyendo algunos navegadores móviles Opera e IE - http://caniuse.com/#feat=pointer-events ):
.btn {
/* base styles */
}
.btn[disabled]
opacity: 0.4;
cursor: default;
pointer-events: none;
}
.btn:hover {
color: red;
}
La pointer-events: noneregla deshabilitará el desplazamiento; No necesitará aumentar la especificidad con un .btn[disabled]:hoverselector para anular el estilo de desplazamiento.
(Para su información, estos son los simples eventos de puntero HTML, no los polémicos eventos de puntero de dispositivos de entrada de abstracción)
En 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;
}
}
Si está utilizando LESSo Sass, puede probar esto:
.btn {
&[disabled] {
opacity: 0.6;
}
&:hover, &:active {
&:not([disabled]) {
background-color: darken($orange, 15);
}
}
}
Una forma es agregar una clase particular mientras deshabilita los botones y anula el desplazamiento y los estados activos para esa clase en css. O eliminar una clase al deshabilitar y especificar el desplazamiento y las pseudo propiedades activas en esa clase solo en css. De cualquier manera, es probable que no se pueda hacer únicamente con css, deberá usar un poco de js.
:not()selector, pero, de nuevo, solo es compatible desde IE9 también. Ver: developer.mozilla.org/en-US/docs/Web/CSS/:not