В форме у меня есть одно поле выбора и два поля ввода. Эти элементы выровнены по вертикали. К сожалению, у меня не получается добиться одинаковой ширины этих элементов.
Вот мой код:
<select name="name1" style="width:198px">
<option>value1</option>
<option>value2</option>
</select><br/>
<input type="text" name="id1" style="width:193px"><br/>
<input type="text" name="id2" style="width:193px">
В приведенном выше примере лучшая ширина для элемента выбора составляет 198 или 199 пикселей (конечно, я пробовал 193 пикселей, но разница существенная). Я думаю, это зависит от разрешения, на разных компьютерах и браузерах, поскольку эти элементы не имеют одинаковой ширины (иногда мне кажется, что разница составляет около 1 или 2 пикселей). Я пробовал установить эти элементы в строки div или таблицы, но это не помогает.
Q: Как я могу получить точно одинаковую ширину этих элементов?
html
css
html-select
border-box
luk4443
источник
источник
Ответы:
Обновленный ответ
Вот как изменить блочную модель, используемую элементами input / textarea / select, чтобы все они вели себя одинаково. Вам необходимо использовать
box-sizing
свойство, которое реализовано с префиксом для каждого браузера.Это означает, что разница в 2 пикселя, о которой мы упоминали ранее, не существует.
пример на http://www.jsfiddle.net/gaby/WaxTS/5/
примечание: в IE он работает с версии 8 и выше.
Оригинал
если вы сбросите их границы, то
select
элемент всегда будет на 2 пикселя меньшеinput
элементов ..пример: http://www.jsfiddle.net/gaby/WaxTS/2/
источник
Я попробовал ответ Габи (+1) выше, но он только частично решил мою проблему. Вместо этого я использовал следующий CSS, в котором поле содержимого было изменено на поле границы:
источник
box-sizing: border-box
. Для хорошей универсальной реализации рассмотрите возможность установки на верхнем уровне элемента html, а затем наследования вниз, чтобы его можно было легко переопределить.Добавьте этот код в css:
источник
создайте еще один класс и увеличьте размер с помощью примера 2px
источник