2013-12-09 5 views
29

Кто-нибудь знает способ стилирования элемента выбора HTML, чтобы он имел определенную высоту и хорошо смотрелся в браузерах? Я пробовал просто устанавливать высоту в CSS, но текст внутри поля вертикально неактивен в Firefox.<select> HTML-элемент с высотой

<select style="height:1.8em;"> 

Это не дублирующий вопрос. Другой вопрос спрашивает о высоте раскрывающегося списка, которое появляется, когда вы нажимаете на элемент select. Мой вопрос касается высоты элемента unclicked select.

+0

использование 'линии height'. Установите значение в соответствии с установленной вами высотой. Например, 'line-height: 40px;' –

+0

Поделитесь уже имеющимся кодом. –

+0

Какой элемент вы имеете в виду (div, table, span, ...)? вы можете отправить код .... –

ответ

40

Я использовал несколько CSS хаков и целевой Chrome/Safari/Firefox/IE по отдельности, так как каждый браузер делает выбираю немного по-другому. Я тестировал все браузеры, кроме IE.

Для Safari/Chrome установите height и line-height вы хотите для вашего <select />.

Для Firefox, мы собираемся убить Firefox, отступы по умолчанию и границы, а затем установить нашу собственную. Установите прокладку на все, что вам нравится.

Для IE 8+, так же, как Chrome, мы установили height и line-height свойства. Эти два media queries могут быть объединены. Но я сохранил его отдельно для демонстрационных целей. Поэтому вы можете видеть, что я делаю.

Обратите внимание, для height/line-height свойство работать в Chrome/Safari OSX, вы должны установить background к таможенной стоимости. Я изменил цвет в моем примере.

Вот jsFiddle из ниже: http://jsfiddle.net/URgCB/4/

Для маршрута без халтуры, почему бы не использовать персонализированный выберите плагин с помощью JQuery? Проверьте это:http://codepen.io/wallaceerick/pen/ctsCz

HTML:

<select> 
    <option>Here's one option</option> 
    <option>here's another option</option> 
</select> 

CSS:

@media screen and (-webkit-min-device-pixel-ratio:0) { /*safari and chrome*/ 
    select { 
     height:30px; 
     line-height:30px; 
     background:#f4f4f4; 
    } 
} 
select::-moz-focus-inner { /*Remove button padding in FF*/ 
    border: 0; 
    padding: 0; 
} 
@-moz-document url-prefix() { /* targets Firefox only */ 
    select { 
     padding: 15px 0!important; 
    } 
}   
@media screen\0 { /* IE Hacks: targets IE 8, 9 and 10 */   
    select { 
     height:30px; 
     line-height:30px; 
    }  
} 
+3

Это, похоже, не влияет на высоту в моих тестах. – stackoverflowrocks

+0

Майк, можете ли вы загрузить пример jsfiddle в Firefox? В 24.1.1 текст прикреплен к верхней части окна выбора для меня. – stackoverflowrocks

+0

Я вижу сейчас ... позвольте мне исследовать. –

-3

Вы можете также «центр» текст с:

vertical-align: middle; 
+0

Вертикальное выравнивание работает только с элементами 'tables' и' inline'. –

+0

@MikeBarwick Элемент выбора * is * inline – cimmanon

+0

Правда, вы правы. –

Смежные вопросы