См. Этот пример кода: http://jsfiddle.net/Z2BMK/
Chrome / IE8 выглядят так
Firefox выглядит так
Мой CSS
button {
padding:0;
background:#080;
color:white;
border:solid 2px;
border-color: #0c0 #030 #030 #0c0;
margin:0;
}
Как изменить образец кода, чтобы кнопка была одинаковой в обоих браузерах? Я не хочу использовать гиперссылки на основе JavaScript, потому что они не работают с пробелом на клавиатуре, и у него должен быть href
URL-адрес, который не является чистым способом обработки вещей.
Мое решение, начиная с Firefox 13
button::-moz-focus-inner { margin: -1px; padding: 0; border-width: 1px; }
margin: -1px
? Это как-то связаноborder: 2px
?border-width
Из-moz-focus-inner
был1px
по умолчанию, так что письменностьborder-width
в код избыточен, но это делает его более ясно , что происходит. Возможно, это поможет и в будущем. Чтобы ответить на ваш вопрос,border-width
причиной разницы был Firefox, а добавлениеmargin: -1px
- это решение, которое более совместимо, чем мое предыдущее решение.margin: -1px
. Это слишком сложно. Он ломается, если: 1) появляется ошибка в механизме рендеринга (что происходит), 2) границы становятся другого цвета, 3) вы увеличиваете масштаб. Чтобы продемонстрировать потенциальные проблемы с вашим решением, я подготовил скрипку: jsfiddle.net/Z2BMK / 455 . Увеличьте масштаб и обратите внимание на появившуюся красную рамку.Ответы:
Добавь это:
button::-moz-focus-inner { padding: 0; border: 0 }
http://jsfiddle.net/thirtydot/Z2BMK/1/
Включение приведенного
border
выше правила необходимо для того, чтобы кнопки выглядели одинаково в обоих браузерах, но оно также удаляет пунктирный контур, когда кнопка находитсяactive
в Firefox. Многие разработчики избавляются от этого пунктирного контура, при желании заменяя его чем-то более визуально понятным.источник
button{background:/*Something here*/} button:focus{-moz-box-shadow:0 0px 3px #C80;}
. Это компенсирует отсутствие пунктирной линии и обеспечивает согласованность в браузере, которую я искал.input[type="reset"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="file"] > input[type="button"]::-moz-focus-inner
file
css). Извините, на странице, на которой я пытался это сделать, должен быть конфликт css. Благодарю.Чтобы исправить это на элементах ввода, также добавьте
input[type="reset"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner, input[type="submit"]::-moz-focus-inner, input[type="file"] > input[type="button"]::-moz-focus-inner
просто отлично!
источник
input[type="file"] > input[type="button"]::-moz-focus-inner
лишний раз, поскольку вы уже добавилиinput[type="button"]::-moz-focus-inner
, или это не ваш опыт? Ты знаешь?