2017-12-08 12 views
0

選択ボックスの右隅にあるボタン(矢印を下に)を変更したいとします。 CSSよりFirefoxでCSSが動作しないカスタム選択

<div class="buscaSelect"> 
    <select name="oper"> 
     <option value="value1">Value 1</option> 
     <option value="value2">Value 2</option> 
    </select> 
</div> 

:私のHTMLは、このようなものです

サファリで
.buscaSelect { 
    display: inline-block; 
    margin: 18px 0px 0px 0px; 
    width: 120px; 
    height: 27px; 
    border-radius: 0px; 
    overflow: hidden; 
    background: white url("btnSelect.png") no-repeat right center; 
} 

.buscaSelect select { 
    padding: 4px; 
    width: 100%; 
    border: none; 
    box-shadow: none; 
    background: transparent; 
    background-image: none; 
    -webkit-appearance: none; 
} 

、結果は完璧で、デフォルトボタンが "btnSelect.png" によって変更されていますが、Firefoxで(58.0b9 )、デフォルトのボタンはまだボタンの上に重なっています。デフォルトのボタンの幅が狭くなると、ボタンのコーナーが後ろに現れます...結果はひどいです!

Firefoxのデフォルトボタンを無効にして、自分だけを表示するにはどうすればよいですか?

+1

ヒント: '-webkit-appearance'はWebKitベースのブラウザ(Chrome、Safari)にのみ適用されます。 Firefox用にGecko/Mozillaを使用する必要があります。https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance – Dai

+0

@Dai Firefoxの場合、-moz-appearanceも提供されています。私の解決策を見ることができます。 –

答えて

1

私はあなたがこれを探していると思います。私はside.Theのwebkitの登場により、ドロップダウンで、ドロップダウン矢印側なしの両方の比較を与えている:どれもFirefoxとChromeでうまく動作しませんが、IEのためにあなたがこれを使用する必要があるかもしれません:

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

.buscaSelect { 
 
    display: inline-block; 
 
    margin: 18px 0px 0px 0px; 
 
    width: 120px; 
 
    height: 27px; 
 
    border-radius: 0px; 
 
    overflow: hidden; 
 
    background: white url("btnSelect.png") no-repeat right center; 
 
} 
 

 
.buscaSelect select { 
 
    padding: 4px; 
 
    width: 100%; 
 
    border: none; 
 
    box-shadow: none; 
 
    background: transparent; 
 
    background-image: none; 
 
    -webkit-appearance: none; 
 
} 
 

 
#noarrow { 
 
    -webkit-appearance: none; 
 
    -moz-appearance: none; 
 
    text-indent: 1px; 
 
    text-overflow: ''; 
 
} 
 
select::-ms-expand { 
 
    display: none; 
 
}
<div class="buscaSelect"> 
 
    <select name="oper" id="noarrow"> 
 
     <option value="value1">Value 1</option> 
 
     <option value="value2">Value 2</option> 
 
    </select> 
 
</div> 
 
<div class="buscaSelect"> 
 
    <select name="oper"> 
 
     <option value="value1">Value 1</option> 
 
     <option value="value2">Value 2</option> 
 
    </select> 
 
</div>

+0

ウェブキットのmozillaに相当するコードが見つかりませんでした。しかし、その#noarrowの必要はありません、さらに、ポイントは、特定のIDで行うことができない選択のクラスを作成することです。また、私は、私は同等のものを含めるべきだと思う、私はそこに1つあると確信している... – Gustavo

+0

それはあなたを実証するための例だった。必要はありませんが、レンダリング方法のブラウザごとに異なる点を示したかったのです。 –

+0

あなたが気づいていれば、私は一番上にそれを含めました:select :: - ms-expand { display:none; } –

関連する問題