Uso hover , active y disabled para diseñar botones.
Pero el problema es que cuando el botón está desactivado, el desplazamiento y los estilos activos aún se aplican.
¿Cómo aplicar hover y activo solo en botones habilitados?
Puede usar : pseudo-class habilitada , pero el aviso IE<9
no lo admite :
button:hover:enabled{
/*your styles*/
}
button:active:enabled{
/*your styles*/
}
:not()
selector, pero, de nuevo, solo es compatible desde IE9 también. Ver: developer.mozilla.org/en-US/docs/Web/CSS/:notbutton:hover:enabled
No parece funcionar en mi caso. Usando la emulación IE9 bajo IE11.Puedes probar esto ...
fuente
¿Por qué no utilizar el atributo "deshabilitado" en CSS? Esto debe funcionar en todos los navegadores.
fuente
.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 ):
La
pointer-events: none
regla deshabilitará el desplazamiento; No necesitará aumentar la especificidad con un.btn[disabled]:hover
selector 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)
fuente
En sass (scss):
fuente
Si está utilizando
LESS
oSass
, puede probar esto:fuente
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.
fuente