How to change the style of a Select box' optgroup label

对着背影说爱祢 提交于 2019-12-17 07:40:02

问题


I have a simple select box with an optiongroup in my application.

<select>
   <optgroup label="Swedish Cars">
     <option value="volvo">Volvo</option>
     <option value="saab">Saab</option>
 </optgroup>
  ----
  ----
  ----
</select>

When it gets displayed in browser, the option group label is displayed with bold and italic; I want it to be displayed without any of those styles.


回答1:


Unfortunately select boxes are one of the few things that you can add very little style to with CSS. You are usually limited to how the browser renders it.

For example, it looks like this in chrome:

And this in Firefox:




回答2:


On most browsers (tested on latest IE and FF), you can easily change the optgroup's label with CSS only:

    select optgroup{
    background:#000;
    color:#fff;
    font-style:normal;
    font-weight:normal;
    }

Obviously, you can set any classname instead of the select html tag.

By the way, as other answers said, there are still few CSS options to use with select boxes and many webmasters override them using the method given by user949847. But this code above should be sufficient to match your needs.




回答3:


Firefox style the label using this rule :

optgroup:before {
    content: attr(label);
    display: block;
}

You can override it.




回答4:


You can style a select box using only css, it requires a sort of work around:

First, you surround it with a div and give that a class:

<div class="selectStyle">
    <select>
        <option>First Option</option>
        <option>Second Option</option>
    </select>
</div>

Then you make sure the select elements are styled a certain way using css:

.selectStyle select {
   background: transparent;
   width: 250px;
   padding: 4px;
   font-size: 1em;
   border: 1px solid #ddd;
   height: 25px;
}

And you style the div:

.selectStyle {
   width: 235px;
   height: 25px;
   overflow: hidden;
   background: url(yourArrow.png) no-repeat right #ccc;
}



回答5:


For a different approach to circumvent the problems with styling optgroups i suggest using disabled options.

<option disabled>[group label]</option>

you can have a shot on styling it via eg.

<style> [disabled] { color:#000; background-color:#CCC } </style>



回答6:


<style>
.select2-container--bootstrap .select2-results__group {
    color: inherit;
    font-size: inherit;
    font-weight:bold;
    padding: 6px 4px;
}



来源:https://stackoverflow.com/questions/7452479/how-to-change-the-style-of-a-select-box-optgroup-label

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!