CSS: удаление теней на отключенных кнопках HTML

При отключении кнопок HTML в текст кнопки добавляется тень. Я сам моделирую кнопки, и я хотел бы иметь только один цвет (белый) без тени, но я не знаю, как это сделать эффективно.

Мой предыдущий метод состоял в том, чтобы оставить его включенным и повторно нарисовать кнопку hover + active state и игнорировать javascript click vai. Сказал вам, не очень эффективно!

http://jsfiddle.net/gLfMX/

EDIT: изображение, отображающее тень (просматривается в IE9) + увеличенная версия.

enter image description here

Ответы

Ответ 1

После нескольких часов работы я пришел к выводу, что это невозможно сделать с IE.

Так как я обрабатываю все нажатия кнопок с помощью jQuery, я просто игнорирую любую кнопку, у которой есть свойство выбранного CSS. Конечно, это, вероятно, не самое изящное решение, но это кросс-браузерная панель просмотра.

Спасибо Николь и Данферт за помощь.

Ответ 2

Вы уже разместили свой собственный ответ, но здесь немного больше информации.

Из моих экспериментов я пришел к такому же выводу: в IE вы не можете изменить его из CSS. Вот почему.

Цвета отключенных кнопок зависят от того, что Windows настроено для отображения для элемента "3D-объекты" в "Цвет и внешний вид окна" ( в настройках дисплея).

По умолчанию цвета отключенных кнопок: text = A0A0A0, shadow = white. Они могут отличаться, если пользователь изменил настройки по умолчанию (в Windows 7 вы должны перейти в "дополнительные настройки", чтобы сделать это), но почти у всех это будет. Они были спроектированы так, чтобы соответствовать цвету системы по умолчанию для отключенной кнопки, которая F4F4F4.

enter image description here

Мое решение этой проблемы состоит в том, чтобы создать CSS так, чтобы, по крайней мере, для настроек по умолчанию, в IE отключенная кнопка будет выглядеть нормально - лучший подход - установить фон при отключении до F4F4F4:

button[disabled], a[disabled] {
    background-color: #f4f4f4;
}

Если вы используете Bootstrap, как я, вы должны сделать это вместо:

.btn[disabled], .btn.disabled[disabled] {
    background-color: #f4f4f4;
}

Вы также можете добавить некоторый условный селектор, чтобы включить это только для IE.

Ответ 3

добавить border:none;, чтобы избавиться от тени jsfiddle

Ответ 4

Вот пример того, как удалить затенение текста внутри кнопки. Я пытался избавиться от моего затенения на моих кнопках меню.

После того, как мой стиль меню стилизовал в CSS, я искал свое обычное меню. Где бы вы ни увидели стиль "text-shadow", в первую очередь ваша проблема. Я нашел здесь:

#menu a{display:block;line-height:35px;padding:0 14px;text-decoration:none;color:
    #77778b;font-family:'Oswald', Arial, sans-serif;text-shadow:none;}

Моя тень текста была установлена ​​на #FFFFFF с примененным позиционированием. Я просто удалил этот стиль и бам, больше не следил за моими кнопками.

Просто найдите везде, где "text-shadow" применяется сначала в вашем меню CSS и установите его в "text-shadow: none"

Ответ 5

Это также работает:

input[disabled] {
   border: none;
}

http://jsfiddle.net/gLfMX/2/

Таким образом, вы можете специально настроить таргетинг на отключенный вход, не беспокоясь о вмешательстве в другие.