Сведения о вопросе

Математик

14:34, 4th August, 2020

Теги

Opera   CSS   Google   Chrome    

Кастомные выпадающие списки (select box) в Chrome и Opera

Просмотров: 381   Ответов: 5

Моя задача — сделать кастомные селекты для сайта. Решение должно быть максимаьно универсальным, так как движек довольно громоздкий (moodle), и проверить работоспособность решения на всех возможных страницах проекта просто нереально. Большинство готовых решений сильно меняют изначальную верстку элемента и в большинстве своем подходят только для одного селекта на странице, а в moodle их может быть до 5.
Сходу написал такой вариант:
//jquery
$("select").wrap('<span class="sel_wrap"></span>').wrap('<span class="sel_wrap_inner"></span>');

/*Стили*/
.sel_wrap {
    background: url(images/bg_buttonwrap.png) left top no-repeat;
    height: 24px;
    display: inline-block;
    overflow: hidden;
}
.sel_wrap_inner {
    background: url(images/bg_button_drop.png) right top no-repeat;
    display: inline-block;
    height: 24px;
    overflow: hidden;
}
select {
    background: none;
    border: none;
    margin: 3px -24px 0 5px;
}

В итоге вышло вот что:
image
Мне даже понравилось, правда сам выпадающий список налезает частично на фон, но это не существенно в данном случае. Но такое отображение было только в fierfox и ie. В хроме и опере показывает так:
image
Вот этот белый фон убрать не могу никак. Есть идеи?



  Сведения об ответе

baggs

19:30, 1st August, 2020

я делал так, рисовал спан, под селектом. А сам селект скрывал через opacity. При изменение селекта, в спан писалось выбранное значение.


  Сведения об ответе

repe

16:43, 17th August, 2020

select { -webkit-appearance:none; } для Хрома


  Сведения об ответе

dump

17:20, 17th August, 2020

«background-color: transparent» не пробовали?


  Сведения об ответе

DO__IT

10:52, 18th August, 2020

Есть jQuery-плагин cuSel. Он хорош, если не нужно вешать события на onchange и динамически изменять их. А лучше напишите свой безглючный плагин (а если у вас нет jQuery, то напишите без него), сообщество будет вам благодарно.


  Сведения об ответе

qwerty101

06:15, 13th August, 2020

т.е. такое в хроме и опера работать не будет?
<select id="selectbox" class='ui-state-error' style="-webkit-appearance: none">
    <option style="background:url(http://artworks.arkanar.ru/upload/icons/facebook_32.png) repeat-x 0 0;">123</option>
    <option>456</option>
    <option>789</option>
</select>


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться