2015-07-21 63 views
9

我用这样的定制我的<select>CSS - 改变下拉箭头为unicode三角形

background-color:#ececec; 
border:0; 
border:1px solid #e3e3e3; 
border-radius:3px; 
width:100%; 
font-family:'FuturaStdLightOblique', sans-serif; 
font-size:16px; 
color:#616263; 
outline:none; 
height: 40px; 

但我也想改变我的下拉箭头,进去一看适合这种设计。我想用Unicode的三角形▼(&#9660;)作为替代的向下箭头,如果可能的话,将其设置为相同的颜色在我的选择标签的文本。

我如何能做到这一点,而无需使用任何除了CSS/HTML的任何想法?提前致谢。

+0

请创建一个小提琴,这样我可以帮你 – Ajey

回答

19

也许这样的吗?

*, *:before, *:after { 
 
    box-sizing: border-box; 
 
} 
 

 
* { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
body { 
 
    padding: 1rem; 
 
} 
 

 
.b-select-wrap { 
 
    height: 40px; 
 
    width: 240px; 
 
    border: 1px solid #e3e3e3; 
 
    color: #616263; 
 
    overflow: hidden; 
 
    position: relative; 
 
    border-radius: 3px; 
 
} 
 

 
.b-select-wrap:after { 
 
    content: "▼"; 
 
    padding: 12px 8px; 
 
    position: absolute; 
 
    right: 10px; 
 
    top: 0; 
 
    z-index: 1; 
 
    text-align: center; 
 
    width: 10%; 
 
    height: 100%; 
 
    pointer-events: none;  
 
} 
 

 
.b-select { 
 
    height: 40px; 
 
    width: 100%; 
 
    padding: 5px 15px; 
 
    background-color: #ececec; 
 
    border: 0; 
 
    outline: none; 
 
    font-size: 16px; 
 
    -webkit-appearance: none; /* for webkit browsers */ 
 
    -moz-appearance: none; /* for firefox */ 
 
    appearance: none; /* for modern browsers */ 
 
} 
 

 
/* remove default caret for ie */ 
 
.b-select::-ms-expand { 
 
    display:none; 
 
}
<div class="b-select-wrap"> 
 
    <select name="nameValueSelect" class="b-select"> 
 
     <option value="-1" selected>Choose option ...</option> 
 
     <option>Option 1</option> 
 
     <option>Option 2</option> 
 
     <option>Option 3</option> 
 
     <option>Option 4</option> 
 
     <option>Option 5</option> 
 
     <option>Option 6</option> 
 
    </select> 
 
</div>

+1

尼斯。 +1使用':after'和所有'外观'声明。 –

+0

正是我在找的东西。谢谢! – Suika

+0

伟大的方法。 – neonScarecrow