Подозреваю, что баг не у кнопок, а у браузера. Проверил в Опере, Хроме, Фаерфоксе — не дергаются. Правда ведут себя по-разному. В Фаерфоксе остаются нажатыми, когда уводишь курсор за границу, в Опере не поймешь (градиент не меняется, текст меняет положение), в Хроме состояние меняется полностью
С частотой от 1 Гц до 10 Гц переходит из положения «нажато» в положение «отжато». Если указатель двигать ооочень медленно (по пикселю), то не дергается.
Если просто нажать и водить вверх-вниз (хоть быстро, хоть медленно), ничего такого нет. Если водить по верхней кромке толщиной 2-3 пиксели влево-вправо, тогда такой эффект есть.
Стоило бы добавить блокировку выделения текста. Хотя, конечно, это вопрос спорный. Я достаточно часто в таких (и не только) кнопках вместо нажатия — случайно выделяю текст. Полагаю, что я не 1 такой :)
НЛО прилетело и опубликовало эту надпись здесьНЛО прилетело и опубликовало эту надпись здесь
Это конечно хорошо, что автор освоил часть HTML5 и CSS3, но почему бы ему еще не заглянуть в HTML4.01 и посмотреть, каким тегом делаются кнопки.
Хотя возможно, конечно, автор хотел сделать именно ссылку. Странно, правда, что в виде кнопки.
Еще. Уважаемые верстальщики! Если вы пишете (a href="#") или (a onclick=«return false») или (a href=«javascript:void(0)»), то вы неграмотные верстальщики.
Если в форме — это должна быть кнопка. Если это ссылка — то в идеале, если у пользователя отключены скрипты, должна вести на нужную страницу где эта функциональность доступна. А если скрипты работают — блокируем переход в обработчике события и производим нужные действия.
Input (type: button/submit), Button. Но тут есть подвох: некоторые браузеры, во-первых, добавляют неубиваемые рамки, во-вторых, все браузеры по-разному выравнивают кнопку с соседним текстом (при разных значениях vertical-align).
Поэтому, в силу кривизны рук и несогласованности производителей браузера и спецификации, допустимо делать кнопки с помощью тегов span или div. НО! В этом случае вы должны предотвращать выделение текста, например при клике или двойном клике (если использовать input/button, такой проблемы нет). Если вы думаете «ну кто же будет дважды кликать по кнопке» — поверьте, вы плохо знаете пользвоателей. Будут, еще как.
Если же вы ставите тег a, это знаичт, вы хотите сделать ссылку, и она должна куда-то вести, а не ссылаться на несуществующую (и не прописанную никакими стандартами) на страницу javascript:void.
У button есть еще одна проблема, это vertical-align, который одну и ту же кнопку в разных браузерах выравнивает по-разному. У меня вообще такое ощущение, что в итоге получился неюзабельный тег.
Потому я сам предпочитаю input:submit, завернутый в спан с display:inline-block и кучей ins для декораций.
в ff наблюдаю интересный эффект:
1. Нажимаю на кнопку, в нажатом состоянии увожу курсор
2. Переключаюсь на другую вкладку в браузере
3. Переключаюсь на вкладку обратно и нажимаю на ту же кнопку
Здается мне, что основная проблема этих кнопок — фиксированная ширина. Именно по этому на них можно долго смотреть, но использовать почему-то не хочется.
Я решал эту проблему с красотами, но решение свелось к кнопке в двух обертках: в первой была ее «трехмерная часть», во второй — «навершие». Я пытался использовать :before и :after, но не смог привязать ширину псевдоэлемента к ширине кнопки, не укладывая их в один контейнер. Может, мало пытался.
Может мне какой-нибудь гуру помочь с css кнопками? Я установил их на свою простенькую страничку, подредактировал цвета. Немного поигрался с тенями и элементами active, hover. Короче сейчас они работают не всегда — бывает нажимаешь на кнопку, а она кроме анимации нажатия/отжатия ничего не делает. a href не срабатывает :( После 3-4 клика опять начинает работать…
3D кнопки с помощью CSS3