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<9no 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:enabledNo 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: 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)
fuente
En sass (scss):
fuente
Si está utilizando
LESSoSass, 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