如何从下拉列表中删除默认箭头图标(选择元素)?

use*_*515 261 html css html-select drop-down-menu

我想从HTML <select>元素中删除下拉箭头.例如:

<select style="width:30px;-webkit-appearance: none;">
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    ...
</select>
Run Code Online (Sandbox Code Playgroud)

如何在Opera,Firefox和Internet Explorer中完成?

在此输入图像描述

nru*_*tas 354

不需要黑客或溢出.IE上的下拉箭头有一个伪元素:

select::-ms-expand {
    display: none;
}
Run Code Online (Sandbox Code Playgroud)

  • 因为问题是如何删除IE中的下拉箭头.IE9没有此功能,但这适用于IE10.因此,除非你使用的是Windows XP,否则你应该使用IE10.IE11差不多了.其他选项是一个丑陋的CSS黑客隐藏实际的下拉按钮,并使自己的. (22认同)
  • 当它不在ie9中工作时,为什么这个被投票 (13认同)
  • 我觉得它不适用于IE9吗? (10认同)
  • [link](http://stackoverflow.com/a/19224129/2009533) 这是隐藏溢出的丑陋黑客 (2认同)
  • 这在 Firefox 中不起作用。使用下面的 Varun Rathore 针对 Firefox 的解决方案。 (2认同)
  • 这仅适用于 IE。当然它不会在 Firefox 中工作。 (2认同)

Var*_*ore 258

前面提到的解决方案适用于Chrome,但不适用于Firefox.

我找到了一个适用于Chrome和Firefox(不适用于IE)的解决方案.将以下属性添加到SELECTelement的CSS中,并调整margin-top以满足您的需要.

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    text-indent: 1px;
    text-overflow: '';
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 :)

  • 从版本31开始,此技巧在Firefox上停止工作(截至2014年5月的夜间版本).让我们看看同时可以做些什么.我写的这个要点有完整的低点:https://gist.github.com/joaocunha/6273016/ (8认同)

San*_*hah 153

从select中删除下拉箭头的简单方法

select {
  /* for Firefox */
  -moz-appearance: none;
  /* for Chrome */
  -webkit-appearance: none;
}

/* For IE10 */
select::-ms-expand {
  display: none;
}
Run Code Online (Sandbox Code Playgroud)
<select>
  <option>2000</option>
  <option>2001</option>
  <option>2002</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • @CPHPython 你需要在你的项目上安装 [Autoprefixer](https://github.com/postcss/autoprefixer) 才能让无前缀的`appearance: none` 工作。大多数浏览器仍然需要前缀。 (4认同)
  • 我只使用了Chrome和Firefox Quantum的"外观:无"(v59及以上版本).即**不再需要[供应商前缀**](https://caniuse.com/#search=appearance). (3认同)
  • @CPHPython 截至此评论时,大多数浏览器仍然带有“部分支持前缀”标签...... (3认同)

Epo*_*okK 55

试试这个 :

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 2px 30px 2px 2px;
    border: none;
}
Run Code Online (Sandbox Code Playgroud)

JS Bin:http://jsbin.com/aniyu4/2/edit

如果您使用Internet Explorer:

select {
    overflow:hidden;
    width: 120%;
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用选择:http://harvesthq.github.io/chosen/


小智 17

试试这个:

HTML:

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.customselect {
    width: 70px;
    overflow: hidden;
}

.customselect select {
   width: 100px;
   -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}
Run Code Online (Sandbox Code Playgroud)


小智 15

试试这个对我有用,

<style>
    select{
        border: 0 !important;  /*Removes border*/
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        text-overflow:'';
        text-indent: 0.01px; /* Removes default arrow from firefox*/
        text-overflow: "";  /*Removes default arrow from firefox*/
    }
    select::-ms-expand {
        display: none;
    }
    .select-wrapper
    {
        padding-left:0px;
        overflow:hidden;
    }
</style>
    
<div class="select-wrapper">
     <select> ... </select>
</div>
Run Code Online (Sandbox Code Playgroud)

你无法隐藏但是使用溢出隐藏你实际上可以让它消失.


Adr*_*nga 13

就我而言(在最新的 Mozilla 版本 94.0.2 上),

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}
Run Code Online (Sandbox Code Playgroud)

不起作用,但在检查 css 之后我找到了解决方案:

  • 箭头包含在background-image所以我通过添加来解决它background-image: none;

我建议使用所有规则

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-image: none;
} 
Run Code Online (Sandbox Code Playgroud)


sun*_*un2 6

只是想完成这个主题.要非常清楚这在IE9中不起作用,但是我们可以通过小css技巧来实现.

<div class="customselect">
    <select>
    <option>2000</option>
    <option>2001</option>
    <option>2002</option>
    </select>
</div>

.customselect {
    width: 80px;
    overflow: hidden;
   border:1px solid;
}

.customselect select {
   width: 100px;
   border:none;
  -moz-appearance: none;
   -webkit-appearance: none;
   appearance: none;
}
Run Code Online (Sandbox Code Playgroud)


Fel*_*Dev 6

如果您使用TailwindCSS 您可以利用该类appearance-none

<select class="appearance-none">
  <option>Yes</option>
  <option>No</option>
  <option>Maybe</option>
</select>
Run Code Online (Sandbox Code Playgroud)


Tej*_*gde 5

正如我在IE上的删除选择箭头中所述

如果你想使用类和伪类:

.simple-control 是你的css课

:disabled 是伪类

select.simple-control:disabled{
         /*For FireFox*/
        -webkit-appearance: none;
        /*For Chrome*/
        -moz-appearance: none;
}

/*For IE10+*/
select:disabled.simple-control::-ms-expand {
        display: none;
}
Run Code Online (Sandbox Code Playgroud)