powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / CSS и кнопка
8 сообщений из 8, страница 1 из 1
CSS и кнопка
    #37892619
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В кои то веки решил сделать для проекта "правильную" кнопку, которая ведет себя "правильно" не только с мышкой, но и с клавиатурой.
Нормальных вариантов реализации, очевидно, 2 - на ссылках и, собственно, сама кнопка (очевидней, конечно, второй вариант, но он не лишен недостатков, поэтому упомянул именно о двух). Да, кстати, рассматривается использование в "нормальных" браузерах, исключается применение ИЕ6-7 и Оперы.

Ссылки (c атрибутом tabindex):

то есть просто кнопка, кнопка с наведением, кнопка с фокусом (или наведение с фокусом) и активная кнопка.

Очевиные минусы:
- необходимость использования, собственно, ссылки (со всеми "прелестями" - наличие href, невозможность делать дефолтный сабмит, небольшая погрешность центрирования по вертикали в разных браузерах - в пределах пиксела, но вылазит);
- обработка нажатия только через Enter, пробел не работает (без дополнительных скриптов);
- клавишное нажатие никак не отмечается (Enter срабатывает по keydown, а не keypress);
- при наличии в форме кнопки submit и наведенном фокусе на нашу кнопку при нажатии на Enter форма не отправляется.


Кнопки (скрины из Хрома):

тоже простая кнопка, кнопка с фокусом, кнопка с наведением мыши и активная кнопка. Привожу скрины двух кнопок, чтобы показать, что разницы между <button>Button</button> и <input type="button" value="Button"/> нет (правда, ее нет для Хрома и ФФ - на пиксель ниже, а в ИЕ9 <button> по центру, а <input> на пиксель ниже).

Надо использовать такую реализацию, но есть одно "но", относящееся к Хрому:
- если на кнопке фокус, то клик по ней (состояние :active) визуально приводит кнопку в состояние :hover, в остальных нормально;
- при клике на кнопку (или нажатию на пробел) кнопка теряет фокус, чего не наблюдалось с ссылкой.
Такое поведение в Хроме мне крайне удивительно и непонятно - почему уходит фокус? Понятно, в Сафари такая же ерунда.

Для объективности прилагаю стиль кнопки:

Код: css
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
.custom-button {
	background-color:#e3e3e3;
	background-image:url(../images/button-background.png);
	background-position:0 top;
	background-repeat:repeat-x;
	border:solid 1px #ccc;
	border-radius:4px;
	color:#777;
	cursor:pointer;
	display:inline-block;
	font-family:inherit;
	font-size:100%;
	height:24px;
	margin:0;
	outline:0;
	padding:0 12px 0;
	text-align:center;
	text-decoration:none;
	vertical-align:middle;
	-moz-border-radius:4px;
	-webkit-appearance:none;
	-webkit-border-radius:4px;
}
.custom-button:hover {
	background-position:0 bottom;
}
.custom-button:focus, .custom-button:hover:focus {
	background-position:0 top;
	border-color:#aaa;
	box-shadow:0 0 3px 0 #777;
	color:#777;
	-webkit-box-shadow:0 0 3px 0 #777;
}
.custom-button:active, .custom-button:focus:active {
	background-position:0 bottom;
	border-color:#aaa;
	box-shadow:0 0 3px 0 #777;
	color:#777;
	-webkit-box-shadow:0 0 3px 0 #777;
}



Ну, и заодно - как простым и доступным способом "поднять" на пиксель надпись (отцентрировать по вертикали) в ФФ и то же по отношению к <input type="button"> в ИЕ9.

Тоже, первая кнопка - <input type="button">, вторая - <button>. Как видно, ФФ еще и удлинил кнопки.

Допускаю, что решение простое и просто прошло мимо незамеченным. Спасибо.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897099
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занимался другого рода кнопками (для соцсетей) и снова столкнулся с различиями в отображении. Решил. Надо руководствоваться правилами:

1. Использовать всегда <input type="button"> и <input type="submit">. Так уходим от различий для ИЕ.
2. Не знал, что ФФ при отображении всегда оставляет место для фокусной рамки, даже если принудительно стоит outline:none или outline:0. Использование стиля
Код: css
1.
2.
3.
4.
input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner {
	border:0;
	padding:0;
}


полностью решает данную проблему.
3. При использовании фокуса всегда использовать не только :active, но и :focus:active, иначе ФФ использует приоритетный :focus.

Большое спасибо за оказанную помощь.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897249
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тратить долгие дни на выдрачивание одинаковости до пикселя (если этот пиксель не является дефектом )?
Сферический посетитель использует один браузер, свой любимый, он не заметит и не оценит потраченных усилий.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897615
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упаси боже! Если бы я тратил "долгие дни", то не спрашивал бы тут. Попробовал - не получилось, решил спросить, чтобы не терять время. Правда, ответа не получил. А вчера снова вернулся к вопросу. А так как в процессе формирования вопроса у меня появилась конкретика задавания этого самого вопроса, то гугл мне помог значительно сильнее: введение запроса "css button firefox надпись нижу" в первых же ссылках дало решение, о чем я тут и поделился.

В большинстве своем не занимаюсь "вдосконаленістю", но когда кнопка 22 пикселя в высоту, то сдвиг вниз очень уж бросается и раздражает. Тем более, что я привык, что решаю любой вопрос. Кстати, именно для того, чтобы не задумываться о различиях в разных браузерах, я взял KendoUI - в принципе, немало скрипта, но результат налицо - шустро и одинаково (только ИЕ8 без "завитков", но это непринципиально).
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897645
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто я сейчас начал осиливать адаптивный дизайн, и понял, что вариантов внешнего вида может быть не меньше вариантов разрешений и браузеров. Тут важно, насколько удобным является дизайн на данном конкретном экране, а не в сравнении с другими экранами. Значительные расхождения внешнего вида в угоду удобства при этом не только допустимы, но и всячески приветствуются.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897656
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyесли этот пиксель не является дефектом
Вот для чего я и взял внешний фреймворк ... Только добавил свои стили и подложку:

До пикселя не сходится - в пределах одного-двух, но на общую картинку это не влияет, так как все плавающее. Да и ИЕ8 не так чтобы сильно выпадал и функциональность не страдает.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897670
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IE 6-8 — паршивцы.)
Для них нужен отдельный дизайн, заточенный под 6.
...
Рейтинг: 0 / 0
CSS и кнопка
    #37897757
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пошел натоптанной дорогой - отказался от 6 и 7.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / CSS и кнопка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]