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

Как изменить цвет фона опции выбора окна?

У меня есть поле выбора, и я пытаюсь изменить цвет фона в параметрах, когда был выбран щелчок и отобразились все параметры.

Смотрите Fiddle

HTML

<select>
    <option val="">Please choose</option>
    <option val="1">Option 1</option>
    <option val="2">Option 2</option>
    <option val="3">Option 3</option>
    <option val="4">Option 4</option>
</select>

CSS

select{
    margin:40px;
    background: rgba(0,0,0,0.3);
    color:#fff;
    text-shadow:0 1px 0 rgba(0,0,0,0.4);
}
4b9b3361

Ответ 1

Вам нужно поместить background-color в тег option, а не тег select...

select option {
    margin: 40px;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}

Если вы хотите стилизовать каждый из тегов option. Используйте селектор css attribute:

select option {
    margin: 40px;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4);
}

select option[value="1"] { /* value not val */
    background: rgba(100, 100, 100, 0.3);
}

select option[value="2"] { /* value not val */
    background: rgba(200, 200, 200, 0.3);
}

/* ... */

Ответ 2

Я не знаю, считали ли вы это или нет, но если ваше приложение основано на раскраске различных группировок элементов, вы, вероятно, должны использовать тег <optgroup> в сочетании с классом для дальнейших ссылок. Например:

<select>
    <optgroup label="Numbers" class="green">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </optgroup>

    <optgroup label="Letters" class="blue">
        <option value="a">A</option>
        <option value="b">B</option>
        <option value="c">C</option>
    </optgroup>
</select>

а затем в заголовке вашего документа напишите css следующим образом:

<style type="text/css">
    .green option{
        background-color:#0F0;
    }

    .blue option{
        background-color:#00F;
    }
</style>

Ответ 3

Да, вы можете установить это с помощью oppisite, используя это,

option:not(:checked) { }

проверьте этот demo jsFiddle

HTML

<select>
    <option val="">Please choose</option>
    <option val="1">Option 1</option>
    <option val="2">Option 2</option>
    <option val="3">Option 3</option>
    <option val="4">Option 4</option>
</select>

CSS

select{
    margin:40px;
    background: rgba(0,0,0,0.3);
    color:#FFF;
    text-shadow:0 1px 0 rgba(0,0,0,0.4);
}
option:not(:checked) { 
    background-color: white; 
    color:#000;
}

Ответ 4

enter image description here

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

<select id="reviewAction">
<option class="greenColor">Accept and Advance Status</option>
<option class="redColor">Return for Modifications</option>
</select>

CSS

.greenColor{
    background-color: #33CC33;
}
.redColor{
    background-color: #E60000;
}

Ответ 5

Если вы действительно хотите создать стиль внутри a, подумайте о переходе на раскрывающийся список на основе Javascript/CSS, например http://getbootstrap.com/2.3.2/components.html#dropdowns или https://silviomoreto.github.io/bootstrap-select/examples/. Это потому, что браузеры, такие как IE не позволяют создавать варианты элементов внутри элементов. У Chrome/OSX также есть эта проблема - вы не можете настроить стиль.

Однако к этому подходу прилагается предупреждение. Эти типы меню работают по-разному на мобильных платформах, потому что собственные элементы не используются. У них могут быть и раздражающие причуды на рабочем столе. Мой совет: 1) не писать свои собственные и 2) найти библиотеку, которая была действительно хорошо протестирована.

Ответ 6

$htmlIngressCss='<style>';
$multiOptions = array("" => "All");
$resIn = $this->commonDB->getIngressTrunk();
while ($row = $resIn->fetch()) {
    if($row['IsActive']==0){
        $htmlIngressCss .= '.ingressClass select, option[value="'.$row['TrunkInfoID'].'"] {color:red;font-weight:bold;}';
    }
    $multiOptions[$row['TrunkInfoID']] = $row['IngressTrunkName'];
}
$htmlIngressCss.='</style>';

добавьте $htmlIngressCss в свою часть html:)

Ответ 7

Просто измените цвет bg

select { background: #6ac17a; color:#fff; }

Ответ 8

Другой вариант - использовать Javascript:

if (document.getElementById('selectID').value == '1') {
       document.getElementById('optionID').style.color = '#000';

(Не так чисто, как селектор атрибутов CSS, но более мощный)

Ответ 9

Мои выделения не будут окрашивать фон до тех пор, пока я не добавлю! важно для стиля.

    input, select, select option{background-color:#FFE !important}

Ответ 10

Здесь идет то, что я узнал о предмете!

В спецификации CSS 2 не рассматривается проблема того, как элементы формы должны быть представлены пользователю.

Читайте здесь: smashing magazine

В конце концов, вы никогда не найдете техническую статью из w3c или другой, адресованной этой теме. Элементы формы стилей, в частности, боксы выбора, не полностью поддерживаются, но вы можете двигаться... с некоторыми усилиями!

Стилирование элементов HTML-формы

Создание пользовательских виджетов

Не тратьте время на взломы, так что прочитайте ссылки и узнайте, как профи получают работу!

Ответ 11

ТОЛЬКО МАЛЕНЬКИЙ ВКЛАД В СЛУЧАЕ, НЕОБХОДИМЫЙ СМОТРЕТЬ ДЛЯ ЭТОГО.

http://jsfiddle.net/luiscastillo/sFx7f/

$(function(){   
$('#tipo').focusin(function(){
         $(this).css('color','red')
       });  

      $('#tipo').focusout(function(){         
        if(this.value === '') $(this).css('color','#ccc'); else $(this).css('color','red');         
       });
 });