196

セレクトの矢印を自分の写真に置き換えようとしています。同じサイズのdivにselectを含め、selectの背景を透明に設定し、divの右上隅に背景として画像(矢印と同じサイズ)を含めています。

Chromeでのみ機能します。

ここに画像の説明を入力してください

これを取得しているFirefoxとIE9でどのように機能させることができますか?

ここに画像の説明を入力してください

.styled-select {
  width: 100px;
  height: 17px;
  overflow: hidden;
  overflow: -moz-hidden-unscrollable;
  background: url(images/downarrow_blue.png) no-repeat right white;
  border: 2px double red;
  display: inline-block;
  position: relative;
}

.styled-select select {
  background: transparent;
  -webkit-appearance: none;
  width: 100px;
  font-size: 11px;
  border: 0;
  height: 17px;
  position: absolute;
  left: 0;
  top: 0;
}

body {
  background-color: #333333;
  color: #FFFFFF;
}

.block label {
  color: white;
}
<HTML>

<HEAD>
</HEAD>

<BODY>
  <p/>
  <form action="/prepareUpdateCategoryList.do?forwardto=search">

    <fieldset class="block" id="searchBlock">
      <p>
        <label style="width:80px">Class</label>
        <div class="styled-select">
          <select property="voucherCategoryClass">
    		<option value="0">Select </option>
    		<option value="7382">steam </option>
    	</select>
        </div>

      </p>
    </fieldset>
  </form>
</BODY>

</HTML>

4

18 に答える 18

181

次のようなことを試しましたか:

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

テストしていませんが、動作するはずです。

編集:Firefoxはバージョン35までこの機能をサポートしていないようです(詳細はこちらをご覧ください

ここに回避策がありますjsfiddle。その投稿を見てください。

于 2013-01-08T15:32:19.910 に答える
32

これは、スパンを使用して値を表示するエレガントな修正です。

レイアウトは次のようになります。

<div class="selectDiv">
   <span class="selectDefault"></span>
   <select name="txtCountry" class="selectBox">
      <option class="defualt-text">-- Select Country --</option>
      <option value="1">Abkhazia</option>
      <option value="2">Afghanistan</option>
   </select>
</div>

Jsフィドル

于 2014-09-17T15:37:56.573 に答える
13

これを確認してください。ハッキーで、次のように簡単です。

  • スタイルを削除するには に設定-prefix-appearanceしますnone
  • text-indentコンテンツを少し右に「プッシュ」するために使用します
  • 最後にtext-overflow、空の文字列に設定します。その幅を超えるものはすべて…無になる!そして、それには矢印が含まれます。

これで、自由にスタイルを設定できます:)

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

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

JSFiddleで見る

于 2014-03-30T21:08:55.517 に答える
7

CSS でラベルのスタイルを設定し、ポインター イベントを使用します。

<label>
<select>
   <option value="0">Zero</option>
   <option value="1">One</option>
</select>
</label>

相対CSSは

label:after {
    content:'\25BC';
    display:inline-block;
    color:#000;
    background-color:#fff;
    margin-left:-17px;   /* remove the damn :after space */
    pointer-events:none; /* let the click pass trough */
}

ここでは下向き矢印を使用しましたが、背景画像付きのブロックを設定できます。これは醜いフィドルのサンプルです: https://jsfiddle.net/1rofzz89/

于 2015-09-20T11:50:01.387 に答える