HTML-якорь и кнопки ввода с одинаковым стилем CSS, но разные размеры
Итак, у меня есть базовый класс кнопок, который применяет один и тот же стиль к различным кнопкам на сайте.
Мне пришлось закончить ввод формы и привязку рядом друг с другом, а их высота и ширина разные. Я сделал текст внутренней кнопки одним и тем же на каждом из них, чтобы показать различия, как для подобных (очевидно, мне не нужны кнопки "Добавить" рядом друг с другом: P)
Я не хочу указывать ширину или высоту в CSS при изменении содержимого. Даже шрифт выглядит немного по-разному, и из модели коробки это похоже на заполнение в порядке.
http://jsfiddle.net/aeD4Z/2/
Разметка
<form id="" method="POST" action="">
<input class="button" type="submit" name="submit" value="Add">
</form>
<a class="button" href="">Add</a>
CSS
.button {
font-family: Arial;
background: linear-gradient(to bottom, #FCB97E 0%, #F07605 100%) repeat scroll 0 0 transparent;
border: 1px solid #F07605;
border-radius: 0.5em 0.5em 0.5em 0.5em;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
color: #FFFFFF;
cursor: pointer;
display: inline-block;
font-size: 13px;
font-weight: bold;
line-height: 13px;
outline: medium none;
padding: 5px 8px !important;
text-align: center;
text-decoration: none;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
vertical-align: baseline;
}
РЕДАКТИРОВАТЬ: Как вы можете видеть ниже, это не дополнение, так как модели ящиков в firebug показывают, что отступы одинаковы для каждого, поэтому его что-то делать с самим фактическим элементом
![Box model for input and anchor]()
Как мне заставить оба быть одинаковыми измерениями из одного класса CSS в моей js скрипке выше?
Ответы
Ответ 1
Чтобы полностью выровнять привязки "button-ish" <a>
, input
и совсем недавно button
, это хорошая идея, чтобы синхронизировать их полевые значения:
input
и button
по историческим причинам все еще находятся в режиме quirks (соответственно уже в современном режиме box-sizing: border-box
) rest находится в box-sizing: content-box
mode (в любом случае: нужно поставить один и тот же режим или компенсировать равные высоты с помощью differenciating padding)
![enter image description here]()
Это мой стандартный "тест", когда я начинаю стиль для сайта:
__AA__
<button id='button'>plain Button</button>
<a class='button' href='#'>plain Anchor</a>
<a class='button'>linkless Anchor</a>
<input class='button' type='submit' value='Input Button' />
__BB__
этот CSS (в stylus обозначение) является хорошим шаблоном:
button, a.button, input.button
display inline-block
font-size 12px
font-weight bold
color white
font-family sans-serif
text-decoration none
background #24B345
cursor pointer // also linkless (i.e. js) anchors/buttons should have that
// important to equalize input/button vs. anchor:
box-sizing content-box
border 4px solid green
padding 8px 10px
margin 5px 4px 10px 0
// some of this is default,
// but since input often gets styled elsewhere...
vertical-align middle // a bit subject to taste
min-height 0
&:hover, &:focus // slight hover effect, resp. keyboard use (:focus)
background: #44D365
Live on Codefork
Ответ 2
Прокладка применяется по-разному к кнопке и привязке. Я не знаю, что это факт, но я думаю, что кнопка резервирует немного больше пространства вокруг этого значения, чтобы больше походить на кнопку, где ссылка отображается как текст.
Вы можете попробовать следующее:
a {
padding-top:5px !important;
padding-bottom:5px !important;
padding-left:0px !important;
padding-right:0px !important;
}
Что не будет точно такого же размера, но довольно близко.