Я работаю над той же проблемой некоторое время. Придумали довольно простое решение с использованием держателя div, который короче, чем сам выпадающий список. Я также использую фоновое изображение, чтобы стрелка раскрывающихся списков выглядела так, как мне нравится. Проверьте это http://www.danielneumann.com/blog/how-to-style-dropdown-with-css-only/
Все, что вам нужно, это div вокруг тега select и 2 CSS-класса.
HTML:
<div class="mainselection">
<select name="State" id="input7">
<option></option>
<option value="Alabama">Alabama</option>
...
<option value="Wisconsin">Wisconsin</option>
<option value="Wyoming">Wyoming</option>
</select>
</div>
CSS:
.mainselection {
overflow:hidden;
width:350px;
margin-left:35px;
background: url("images/dropdown_arrow.png") no-repeat #fff 319px 2px;
/* dropdown_arrow.png is a 31x28 image */
}
select {
border:0;
background:transparent;
height:32px;
border:1px solid #d8d8d8;
width:350px;
-webkit-appearance: none;
}
Затем, после небольшой проверки Javascript, я также могу переключить класс в div на .dropdownbad
, чтобы дать ему красную рамку.
.dropdownbad {
border:2px solid #c13339;
}
Здесь показаны состояния по умолчанию и ошибки:
