Tengo una especie de situación extraña. Estoy tratando de diseñar un botón de entrada deshabilitado porque tengo un molesto desplazamiento que convierte el texto en blanco. Esto lo hace confuso para el usuario porque actúa como un botón normal.
He probado algunas cosas, principalmente css y algunas cosas jQuery. Me gustaría mantener esto en css si es posible.
Este es mi html, lo siento, está en un asistente de forma larvel.
{{ Form::submit('Change', array_merge($design_project->is_locked ? ['disabled' => 'disabled'] : [], ['class' => 'btn btn-blue span3'])) }}
y esto es lo que genera el navegador
<input disabled="disabled" class="btn btn-blue span3" type="submit" value="Change">
y yo estaba trabajando en algo como esto
.btn:hover input[disabled], .btn:active input[disabled], .btn:focus input[disabled]{
color:green
}
¡Cualquier ayuda sería maravillosa!
ComFreek
Utilice este CSS (js Ejemplo de violín):
input:disabled.btn:hover,
input:disabled.btn:active,
input:disabled.btn:focus {
color: green
}
Tienes que escribir el elemento más exterior a la izquierda y el elemento más interior a la derecha.
.btn:hover input:disabled
seleccionaría cualquier elemento de entrada deshabilitado contenido en un elemento con una clase btn
que está actualmente sobrevolado por el usuario.
Yo preferiría :disabled
encima [disabled]
vea esta pregunta para una discusión: ¿Debo usar CSS: pseudo-clase deshabilitada o [disabled] selector de atributos o es una cuestión de opinión?
Por cierto, Laravel (PHP) genera el HTML, no el navegador.
-
Gracias, esto funcionó perfectamente para mí. ¡Yo y mis espacios tontos! 🙂
– zazvorniki
26 de agosto de 2013 a las 13:46
-
¿Hay algún motivo de preferencia entre usar
[disabled]
y:disabled
? (que también es encadenable → css-tricks.com/almanac/selectors/d/disabled )– Frank N.
14 de mayo de 2017 a las 7:38
-
@FrankNocke De hecho, :disabled parece ser más preferible, mira mi edición.
– ComFreek
14 de mayo de 2017 a las 8:42
saad arshad
Digamos que tienes 3 botones:
<input type="button" disabled="disabled" value="hello world">
<input type="button" disabled value="hello world">
<input type="button" value="hello world">
Para diseñar el botón deshabilitado, puede usar el siguiente css:
input[type="button"]:disabled{
color:#000;
}
Esto solo afectará al botón que está deshabilitado.
Para detener el cambio de color al pasar el mouse, también puede usar esto:
input[type="button"]:disabled:hover{
color:#000;
}
También puede evitar esto usando css-reset.
-
¿Por qué fue votado negativo? Es una solución perfectamente válida para los navegadores modernos.
– bandolero
26 de agosto de 2013 a las 13:50
-
gracias amigo. estaba a punto de empezar a pensar que toda mi carrera de CSS es una mentira 🙂
– saad arshad
26 de agosto de 2013 a las 13:52
-
@thesaadarshad Acabo de recibir un voto positivo en mi respuesta a esta pregunta. Por accidente también vi tu respuesta, la cual rechacé por una razón que ya no recuerdo. Hice una edición para poder revertir el voto negativo. +1!
– ComFreek
01/07/2014 a las 16:00
-
:disabled
no parece funcionar en IE9.[disabled]
obras.– Víctor Zajarov
24 de enero de 2017 a las 14:57
Un espacio en un selector de CSS selecciona elementos secundarios.
.btn input
Esto es básicamente lo que escribiste y seleccionaría <input>
elementos dentro de cualquier elemento que tenga el btn
clase.
creo que estas buscando
input[disabled].btn:hover, input[disabled].btn:active, input[disabled].btn:focus
Esto seleccionaría <input>
elementos con la disabled
atributo y el btn
clase en los tres diferentes estados de hover
, active
y focus
.
¿Puedes publicar el HTML generado, por favor?
– ComFreek
26 de agosto de 2013 a las 13:38
@Vector ¿El texto cambia de color a verde si pasa el mouse sobre el botón?
– ComFreek
26 de agosto de 2013 a las 13:43