Html CSS 选择框箭头样式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12668404/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 03:07:19  来源:igfitidea点击:

CSS Select box arrow style

htmlcss

提问by user1251698

I want to remove the default arrow from the select box and want to use custom icon. From the previous answers on SO, I have found out that it is not possible (to make it work with major browsers). Only possibility is to wrap the select inside a div, and set its width more than the div width and setting overflow: hidden. I am trying following, but it does not work. What I'm doing wrong?

我想从选择框中删除默认箭头并想使用自定义图标。从之前关于 SO 的答案中,我发现这是不可能的(使其适用于主要浏览器)。唯一的可能性是将选择包装在一个 div 中,并将其宽度设置为大于 div 宽度并设置溢出:隐藏。我正在尝试关注,但它不起作用。我做错了什么?

.selectParent {
  width: 80px;
  overflow: hidden;
}

.selectParent select {
  width: 100px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  padding: 2px 30px 2px 2px;
  border: none;
  background: transparent url("http://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/16x16/br_down.png") no-repeat right center;
}
<div class="selectParent">
  <select>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>           
   </select>
</div>

JSFiddle:http://jsfiddle.net/gcPmC/

JSFiddle:http : //jsfiddle.net/gcPmC/

回答by Hanif

Please follow the way like below:

请按照以下方式操作:

.selectParent {
 width:120px;
 overflow:hidden;   
}
.selectParent select { 
 display: block;
 width: 100%;
 padding: 2px 25px 2px 2px; 
 border: none; 
 background: url("http://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/16x16/br_down.png") right center no-repeat; 
 appearance: none; 
 -webkit-appearance: none;
 -moz-appearance: none; 
}
.selectParent.left select {
 direction: rtl;
 padding: 2px 2px 2px 25px;
 background-position: left center;
}
/* for IE and Edge */ 
select::-ms-expand { 
 display: none; 
}
<div class="selectParent">
  <select>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>           
   </select>
</div>
<br />
<div class="selectParent left">
  <select>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>           
   </select>
</div>

回答by Thierry J.

Try to replace the

尝试更换

padding: 2px 30px 2px 2px;

with

padding: 2px 2px 2px 2px;

It should work.

它应该工作。