FireFox и вертикальное выравнивание текста в input[submit]

30 ноября 2009 г.

Либо я плохо искал, либо проблема только у меня и я чего-то не знаю (в чем сомневаюсь), но в Интернете по сабжу ничего не нашел. Поэтому данный пост - это вопрос к читателям.

При верстке форм я давно наблюдаю следующую проблемную ситуацию: независимо от версии браузера FireFox, в которой смотрится страница, вертикальное выравнивание текста в кнопке, созданной с помощью тега <input type=”submit” />, отличается от всех других популярных браузеров на 1-2 пикселя (в зависимости от высоты кнопки и размера шрифта).

Для сравнения проведем элементарный тест:

  1. Создаем страницу с единственным элементом содержимого - HTML-кнопкой:

    1
    2
    3
    4
    5
    <html>
    <body>
      <input type="submit" value="Submit" class="submit" />
    </body>
    </html>
  2. Для кроссбраузерности оформляем эту кнопку с помощью CSS следующим образом:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    input.submit {
      width: 80px;
      height: 25px;
      border: 1px solid #BBB;
      border-top-color: #DDD;
      border-left-color: #DDD;
      background: #EEE;
      font: 12px Arial, Tahoma, sans-serif;
    }
  3. Делаем скриншоты этой кнопки в браузерах: Opera, FireFox, Internet Explorer, Safari, Chrome, и для наглядности в фотошопе рисуем специальные линии (кликните на изображение для просмотра его с увеличенным масштабом):

    FireFox и вертикальное выравнивание текста в input[submit]

Как видим, текст кнопки в FireFox’e на 1 пиксель ниже по сравнению со всеми остальными браузерами.

Применение свойств vertical-align: middle или line-height, равный высоте кнопки, проблему не решают.

Так вот, господа веб-мастера, хотелось бы узнать - если вы сталкивались с подобной ситуаций, то каким образом вы устраняете эту недоделку FireFox?

Мне пока что приходится использовать для него CSS-хак, который не валиден, что, естественно, не есть хорошо.

Теги: , , , автор: Dimox | рубрика CSS-верстка

Комментарии (63): »

  1. input[type=’submit’]::-moz-focus-inner{padding:0;border:0}

    добавить в строках где обнуляете цсс, и можно забыть сразу о баге

  2. Alex уже 3 раза ответили подобным способом, Вы не читали предыдущие комменты?

    @
  3. Решил проблему использованием

    1
    <a href="" rel="nofollow">Отправить</a>$(document).ready(function(){$("#submit").click(function(event){event.preventDefault();$('#form_id').submit();});});

    Как-то так.

    @

Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге dimox.name:

  1. Первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "URL блога" можно указывать только ссылку на главную страницу вашего блога. Ссылки на прочие веб-ресурсы (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Запрещается использовать в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия имя изменяется по усмотрению владельца блога. Просьба указывать нормальное имя или ник.
  4. Весьма вероятно, что короткий и неинформативный кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.
  5. Комментарии не по теме удаляются.

Подписаться, не комментируя
  • Похожие статьи
  • Предыдущие из рубрики