Подтвердить что ты не робот

В поле выбора HTML не отображается стрелка раскрывающегося списка на Android версии 4.0 при установке цвета фона

Мне нужно установить цвет фона для окна выбора как желтый. Когда я тестировал, он показывает коробку с желтым цветом и стрелкой на Android 2.3 и Android 3.0.

Но на android 4.0 он показывает, что выбрать полный желтый цвет без стрелки раскрывающегося списка.

Любая идея, как решить проблему?

Я проектирую это с телефонным зазором.

Это мой код, где я устанавливаю background-color для выбора html.

<select style="background-color:#FFFF00;border:#FFFF00;height:25px;font-family:Arial, Helvetica, sans-serif; color:#000000; font-size:14px; font-weight:bold; text-align:center;">
          <option></option>
          <option>1</option>
          <option>2</option>
          <option>3</option>
          <option>4</option>
          <option>5</option>

        </select>
4b9b3361

Ответ 1

Отслеживание Android-браузера <select> является ошибкой и удалит нормальный стиль, если применяется фон или рамка.

Так как <select>, не похожий на <select>, является довольно большой проблемой юзабилити, лучше всего не создавать стиль для этого браузера.

К сожалению, нет чистого CSS-способа для выбора/исключения Android-браузера, поэтому я рекомендую использовать Layout Engine (https://github.com/stowball/Layout-Engine), который добавит класс .browser-android в тег <html>.

Затем вы можете создать стиль <select>, за исключением Android-браузера, например:

html:not(.browser-android) select {
    background: #0f0;
    border: 1px solid #ff0;
}

Ответ 2

У меня была такая же проблема, и я до сих пор задавался вопросом, почему это происходит, поскольку этого не происходит в некоторых других проектах.

При попытке узнать больше о Bootstrap и Foundation Framework я нашел решение на начальной загрузке, поскольку они подняли эту проблему на каком-либо мобильном устройстве, если мы указали границу или фон для выпадающих списков.

Я не беру кредит от кого-либо, но хотел бы поделиться ссылками на страницу, где он упоминается, и решение также предоставляется

Bootstrap: http://getbootstrap.com/getting-started/

JS Bin: http://jsbin.com/OyaqoDO/2

Я надеюсь, что это будет полезно другим, кто может столкнуться с этой проблемой, это решение связано с загрузкой. и может ли я изменить ваши потребности в проекте.

<script>
var nua = navigator.userAgent;
var is_android = ((nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android ') > -1 && nua.indexOf('AppleWebKit') > -1) && !(nua.indexOf('Chrome') > -1));
if(is_android) {
        $('select.form-control').removeClass('form-control').css('width', '100%');

}
</script>

Ответ 3

что-то вроде этого может работать, чтобы пересчитать мгновение после того, как наружный вес детей был неправильным в андроиде в то время (как я упоминал ранее).

window.setTimeout(function() {$(window).trigger('resize');}, 1500);

... может работать? Да, это помогает.

Очевидно, вы просто хотите, чтобы это срабатывало один раз после того, как начальная фаза загрузки успела пройти (при очевидной ошибке спецификации, которую все остальные в настоящее время выполняют).

Ответ 4

Как указал Мэтт, если вы применяете какой-либо тип границы или фона к меню, вы будете испарять стрелку вниз.

Простое решение, просто удалите любой пограничный или пользовательский цвет фона. Это оставит вас с красивой белой и серой "современной" стрелкой вниз на устройствах Android. Я не думаю, что есть какие-то сайты, на которые он не подходит.

Ответ 5

Если вы не хотите использовать JavaScript для этого и/или просто плохо себя чувствуете в том, что обнюхиваете UA (как и должно быть), но все в порядке с меньшим таргетингом на несколько браузеров:

select
{
    /* common, "safe" styles */
}
@supports (appearance: none)
{
    select
    {
        /* borders and backgrounds */
    }
}

Заметные отсутствующие - это все IE (Edge получит полные стили): http://caniuse.com/#feat=css-featurequeries