web-dev-qa-db-ja.com

IE&Firefox-カスタムドロップダウンでネイティブ矢印を削除できませんでした

カスタムドロップダウンコントロールを作成しようとしていますが、ネイティブコントロールから矢印を非表示にする必要があります。私は次のCSSを使用しています。これはChromeとSafariで動作しますが、MozillaとIEでは動作しません。

select.desktopDropDown
{
    appearance: none;
    -moz-appearance:none; /* Firefox */
    -webkit-appearance:none; /* Safari and Chrome */
}

これが[jsfiddle] [1]です。

31
Anton Belev

これを使用すると動作しますが、IE10 +およびFFの場合:

Cssは次のようになります。

select.desktopDropDown::-ms-expand {
    display: none;
}

::ms-expand

それから残りのために:

select.desktopDropDown {
    outline : none;
    overflow : hidden;
    text-indent : 0.01px;
    text-overflow : '';
    background : url("../img/assets/arrow.png") no-repeat right #666;

    -webkit-appearance: none;
       -moz-appearance: none;
        -ms-appearance: none;
         -o-appearance: none;
            appearance: none;
}

:パスをハードコーディングしました"../img/assets/arrow.png"背景として。

これは、IE、Firefox、およびOperaでうまく機能するはずです。

72
Ahmed Na.

ベアボーンの例:

I.Eの場合:

select::-ms-expand {
    display: none;
}  

Firefoxの場合:

select {
    -moz-appearance: none;
    appearance: none;

    text-overflow: ''; /* this is important! */
}
19
Jarrod

Fxには、-moz-appearance: checkbox-containerを使用します。

したがって、すべてをまとめると次のようになります。

select.desktopDropDown {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: checkbox-container;
    border-style: none;
}
select.desktopDropDown::-ms-expand {
    display: none;
}
3
Brett Ryan

実際、このトリックは主に、矢印がWindows 7であってもWindows 8のMetroスタイルであるIE10 +で必要です。Windows8ユーザーはOSで使用されるスタイルの原因に慣れる必要があります。とにかく、私は代わりに使用することをお勧めします:

display: none;

使用するには:

visibility: hidden;

少なくともIEでは、前者は選択にフォーカスがあるときに選択項目の青い線がドロップダウン矢印に重なるのに対して、後者は重ならないためです。

2
KS74

cssを使用してカスタムを作成できます。 IE10、Mozilla、chrome borwserでテスト済み...
以下の作業例:

.customSelect {
  position: relative;
}

/* IE11 hide hacks*/
select::-ms-expand {
display: none;
}

.customSelect:after {
  content: '<>';
  font: 17px "Consolas", monospace;
  color: #333;
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  transform: rotate(90deg);
  right: 11px;
  /*Adjust for position however you want*/
  
  top: 18px;
  padding: 0 0 2px;
  border-bottom: 1px solid #999;
  /*left line */
  
  position: absolute;
  pointer-events: none;
}

.customSelect select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /* Add some styling */
  display: block;
  width: 100%;
  height: 50px;
  float: none;
  margin: 5px 0px;
  padding: 0px 24px;
  font-size: 16px;
  line-height: 1.75;
  color: #333;
  background-color: #ffffff;
  background-image: none;
  border: 1px solid #cccccc;
  -ms-Word-break: normal;
  Word-break: normal;
}
<div class="customSelect">
  <label>
      <select>
          <option selected> Select Box </option>
          <option>Option 1</option>
          <option>Option 2</option>
          <option>Last long option</option>
      </select>
  </label>
</div>
0
SantoshK