Я не могу удалить нажатый эффект кнопок в Internet Explorer 9

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

Пожалуйста, взгляните на код

HTML

<button class="fancy">howdy!</button>

CSS

.fancy {
    width: 60px;
    height: 30px;    
    position: relative;
    top: 0px;
    margin: 0;
    padding: 0px;
    display: block;
    border: none;
    padding: 0;
    color: #FFF;
    font-size: 11px;
    background: green;
    outline: none;
    overflow: hidden;
    line-height: 11px;
}

.fancy:active,.fancy:focus
{
    padding:0px;
    margin:0px;
    border: none;
    outline:none;
    text-indent: 0;
    line-height: 11px;
}

Рабочая демонстрация http://jsfiddle.net/MDfvE/

Как вы можете видеть, при нажатии кнопки на IE9 вы увидите, что текст перемещается вправо и снизу. Я хочу удалить это.

Любая подсказка? Спасибо!

Ответы

Ответ 1

IE распознает только: активный псевдокласс, когда элемент является якорем.

http://msdn.microsoft.com/en-us/library/cc848864%28v=VS.85%29.aspx

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

Ответ 2

Это поведение браузера, простое решение - использовать тег ссылки вместо кнопки (если запускается функция javascript).

<a href="#" onclick="myfunction()" role="button"><img src="myimg"/></a>

Если вы все еще хотите использовать <button>, я обнаружил, что в каждом браузере есть некоторые характеристики (в простой отладке):

  • Chrome добавляет outline и padding
  • Firefox добавляет множество вещей с рамкой стандартной кнопки
  • IE беспорядок с внутренним текстом position

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

<button type="button" class="button"><span>Buttom or Image</span></button>

<style>
    button,
    button:focus,
    button:active{
        border:1px solid black;
        background:none;
        outline:none;
        padding:0;
    }
    button span{
        position: relative;
    }
</style>

Pen