Ответ 1
Для этого нет необходимости в обслуживании, кроме того, чтобы отбросить элемент select
.
IE, кажется, игнорирует высоту, установленную в CSS при рендеринге HTML SELECT. Есть ли какая-нибудь работа для этого или мы должны просто принять IE, не будет выглядеть так хорошо, как другие браузеры?
Для этого нет необходимости в обслуживании, кроме того, чтобы отбросить элемент select
.
Правильно, что для этого нет необходимости в работе, кроме отвлечения элемента select, но если вам нужно показать больше элементов в списке выбора, вы можете просто использовать атрибут size:
<select multiple="multiple" size="15">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
При этом у вас будут дополнительные пустые строки, если длина вашей коллекции элементов меньше размера.
вы можете использовать комбинацию размера шрифта и высоты строки, чтобы заставить его увеличиваться, но, очевидно, только в ситуациях, когда вам нужен шрифт слишком большой
изменить:
Пример → http://www.bse.co.nz EDIT: (эта ссылка больше не актуальна)
для выбора рядом с большим полем поиска применяются следующие правила css:
#navigation #search .locationDrop {
font-size:2em;
line-height:27px;
display:block;
float:left;
height:27px;
width:200px;
}
Да, вы можете.
Мне удалось установить высоту моего SELECT
точно, что я хотел в IE8 и 9. Трюк заключается в том, чтобы установить свойство box-sizing
на content-box
. Это позволит установить область содержимого SELECT
на высоту, но имейте в виду, что значения margin
, border
и padding
не будут вычисляться по ширине/высоте SELECT
, поэтому отрегулируйте эти значения соответственно.
select {
display: block;
padding: 6px 4px;
-moz-box-sizing: content-box;
-webkit-box-sizing:content-box;
box-sizing:content-box;
height: 15px;
}
Вот рабочий jsFiddle. Не могли бы вы подтвердить и отметить соответствующий ответ?
Используйте библиотеку пользовательского интерфейса, например jquery или yui, который предоставляет альтернативу встроенному элементу SELECT, как правило, как часть реализации комбинированного блока.
Даже если установка значения высота CSS select не работает, атрибут дополняющий работает нормально. Настройка верхнего и нижнего отступов сделает ваш элемент select более высоким.
Наконец, найдено в http://viralpatel.net/blogs/2009/09/setting-height-selectbox-combobox-ie.html простое решение (по крайней мере для IE8):
font-size: 1.0em;
BTW, для Google Chrome, нашел это решение в Как стандартизировать высоту окна выбора между Chrome и Firefox? */
-webkit-appearance: menulist-button;
Для этого есть обход (по крайней мере, для множественного выбора):
Вы можете использовать замену: jQuery Chosen. Это выглядит потрясающе.
select{
*zoom: 1.6;
*font-size: 9px;
}
Если вы измените свойства, размер select
изменится и в IE7.
См. также несогласованная модель окна между вводом, выбором,...
вы могли бы сделать то же самое, что и в facebook, просто добавьте дополнение. Это не так хорошо, как хотелось бы, но выглядит достаточно хорошо.
Не уверен, но я думаю, что это был вопрос не о высоте элемента "множественного" типа select, а о выпадающем типе элемента select. Я сталкивался с временами, когда раскрывающийся взгляд раздавлен и явно не отображает выбранное значение. Несомненно, это связано с использованием информации стиля CSS, используемой на странице. Единственный способ остановить это - либо изменить CSS (который, вероятно, повлияет на всю страницу или ее части таким образом, чтобы вы не нуждались в ней), либо использовать информацию стиля в самом элементе select, чтобы переопределить CSS, который сбивает его. Пример:
<select name="myselect" id="myselect" style="font-size:15px; height:30px">
<option value="someval">somedescr</option>
...
</select>
Надеюсь, что это поможет.
Мне нужно было установить высоту поля выбора меньше, чем значение по умолчанию. я использовал
select {
position: relative;
height: 10px !important;
display: inline-block;
}
это работает на ie7 и ie8. вам может понадобиться только свойство height
, я просто добавил position
и display
, чтобы переопределить свойства, унаследованные выше от dom.