MacのSafariで選択した要素の光沢を削除するにはどうすればよいですか?


111

MacおよびiOSデバイスのSafariでは<select>、背景色のある要素はそれ自体に光沢を生成します。これは、他のオペレーティングシステムでは発生しないようです。

たとえば、次のスタイルプロパティを持つselect要素があります。

select {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
padding: 3px 6px;
margin: 10px 0 7px;
width: 250px;
background-color: #BD2786;
color: white;
letter-spacing: -.04em;
font-weight: bold;
border: 0;
}

そして、私の要素には必要な背景色がありますが、光沢はまだ残っています。誰もがそれをフラットカラーにする方法を知っていますか?

回答:


193

@beanland; あなたは書く必要があります

-webkit-appearance:none;

あなたのCSSで。

これを読んでくださいhttp://trentwalton.com/2010/07/14/css-webkit-appearance/


4
私が知らなかったことがたくさんあるので、感謝の必要はありません:)
Sandeep

123
矢印を右側に保つ方法はありますか?色だけを上書きしたい。ありがとう
マルク

18
@sandeep:そして、それをクロスブラウザにするために:-moz-appearance: none; -webkit-appearance: none; appearance: none;
Dorian

6
@Marc 3年経ってもまだ興味があるなら..矢印を表示するために見つけた解決策を追加しました。
alicjasalamon

2
IEのソリューションは、select ::-ms-expand {display:none;を使用することです。}ネイティブIE selectboxドロップダウンアイコンを非表示にしてから、実際のpng画像を新しいアイコンの背景として使用します。IEでCSSを介してSVG画像が常に正しく配置されるとは限らないため、問題が発生します。
Phyllis Sutherland

106

を使用-webkit-appearance:none;すると、これがドロップダウンであることを示す矢印も削除されます。

さまざまなブラウザで機能し、画像ファイルを含めずにカスタム矢印を追加する次のスニペットをご覧ください。

select{
	background: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat 95% 50%;
	-moz-appearance: none; 
	-webkit-appearance: none; 
	appearance: none;
    /* and then whatever styles you want*/
	height: 30px; 
	width: 100px;
	padding: 5px;
}
<select>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>


16
甘い、矢印修正を感謝します!ここで透明な背景を持つバージョンです:URL:{背景を選択しなかった(データ:画像/ SVG + XML、BASE64、PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU + LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM + PHRpdGxlPmFycm93czwvdGl0bGU + PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEuNDEgNC42NyAyLjQ4IDMuMTggMy41NCA0LjY3IDEuNDEgNC42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIzLjU0IDUuMzMgMi40OCA2LjgyIDEuNDEgNS4zMyAzLjU0IDUuMzMiLz48L3N2Zz4 =)95%50%を無リピート; }
Ingo Renner

1
透明な矢印を作成しました(長さのため、ここに貼り付けることができませんでした):pastebin.com/HQ0x4Rka
mga

5
幅の広い選択要素がある場合、これは少し見た目が悪くなります。これを修正するには、CSS3の背景位置のエッジオフセットを使用して、背景をより適切に揃えます。だから置き換えno-repeat 95% 50%てくださいno-repeat right 2px center
iSWORD

3
同じ矢印が、白と透明でpastebin.com/07iS41b5
アンドレアスガスマン

2
追加された矢印に上/下矢印の両方が含まれていることに気づきました-通常の下矢印を表示するだけの簡単な修正はありますか?
ブレット

14

2019バージョン

短いインライン画像URL、下向き矢印、カスタマイズ可能な矢印の色のみを表示...

https://codepen.io/jonmircha/pen/PEvqPaから

著者はおそらくジョナサン・ミルチャです

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%238C98F2'><polygon points='0,0 100,0 50,50'/></svg>") no-repeat;
  background-size: 12px;
  background-position: calc(100% - 20px) center;
  background-repeat: no-repeat;
  background-color: #efefef;
}

1
このbackground-colorプロパティは、select要素の背景に適用されます。下矢印の色を変更するには、URLのSVG塗りつぶしプロパティを変更する必要があります。たとえば、fill='%23fc0000'
Noel Abrahams

計算なしでbackground-positionを使用することをお勧めします:background-position:right .8em top 60%; いくつかのカーソル:必要
イギー

これの二重矢印バージョンは誰かが実証できますか?
エボロス

3

古いアイテムに重ねて申し訳ありません。私はここで私の質問に対する部分的な回答を見つけましたが、いくつかの作業を行う必要があったので、次の人のために私の結果を共有したいと思いました。

私は他の貢献者と同じアプローチを使用することになりましたが、以下を修正するためにいくつかの微調整を行いました

  1. 長いテキストが他のソリューションの矢印を覆っていた
  2. 使用されている画像は、やや古くて醜い上/下のコンボ矢印でした。

以下は、上記の問題が修正された実用的なソリューションを提供します。注:私の使用例では白い矢印を使用しましたが、矢印の色を変更する必要がある場合があります。

ここにプレビューがあります:

白い矢印で選択

select{    
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiICAgaWQ9IkxheWVyXzEiICAgZGF0YS1uYW1lPSJMYXllciAxIiAgIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIiAgIHZlcnNpb249IjEuMSIgICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkxIHIxMzcyNSIgICBzb2RpcG9kaTpkb2NuYW1lPSJkb3dubG9hZC5zdmciPiAgPG1ldGFkYXRhICAgICBpZD0ibWV0YWRhdGE0MjAyIj4gICAgPHJkZjpSREY+ICAgICAgPGNjOldvcmsgICAgICAgICByZGY6YWJvdXQ9IiI+ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4gICAgICAgIDxkYzp0eXBlICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPiAgICAgIDwvY2M6V29yaz4gICAgPC9yZGY6UkRGPiAgPC9tZXRhZGF0YT4gIDxzb2RpcG9kaTpuYW1lZHZpZXcgICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IiAgICAgYm9yZGVyb3BhY2l0eT0iMSIgICAgIG9iamVjdHRvbGVyYW5jZT0iMTAiICAgICBncmlkdG9sZXJhbmNlPSIxMCIgICAgIGd1aWRldG9sZXJhbmNlPSIxMCIgICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIgICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTkyMCIgICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMjciICAgICBpZD0ibmFtZWR2aWV3NDIwMCIgICAgIHNob3dncmlkPSJmYWxzZSIgICAgIGlua3NjYXBlOnpvb209Ijg0LjMiICAgICBpbmtzY2FwZTpjeD0iMi40NzQ5OTk5IiAgICAgaW5rc2NhcGU6Y3k9IjUiICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTkyMCIgICAgIGlua3NjYXBlOndpbmRvdy15PSIyNyIgICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJMYXllcl8xIiAvPiAgPGRlZnMgICAgIGlkPSJkZWZzNDE5MCI+ICAgIDxzdHlsZSAgICAgICBpZD0ic3R5bGU0MTkyIj4uY2xzLTJ7ZmlsbDojNDQ0O308L3N0eWxlPiAgPC9kZWZzPiAgPHRpdGxlICAgICBpZD0idGl0bGU0MTk0Ij5hcnJvd3M8L3RpdGxlPiAgPHBvbHlnb24gICAgIGNsYXNzPSJjbHMtMiIgICAgIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIiAgICAgaWQ9InBvbHlnb240MTk4IiAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MSIgLz48L3N2Zz4=) no-repeat 101% 50%;
  padding-right:20px;
}

//、光沢を取り除く方法と理由を説明していただけませんか?
Nathan Basanese

1
ソリューションには基本的に2つのコンポーネントがあります。1.ブラウザーが要素に対してスタイル/表示を行わないように要求します。2.合理的なスタイルを提供します。ひどいものではないブラウザ(サファリではなく読み取り)では、ブラウザが提供する要素のスタイルが適切です。しかし、サファリでは、ブラウザーが提供するスタイルは嫌でひどいものです。したがって、すべてのブラウザーでブラウザーが提供する表示をオーバーライドする必要があります。Appearance:noneで終わる行は、上からパート1を行いません。他の行はパート2に取り組みます。それは役に立ちますか?
ジャスティンエドワーズ

2

-webkit-appearance:noneとその派生物を確認してください。もともとはここでChris Coyerによって記述されています:https ://css-tricks.com/almanac/properties/a/appearance/


0

ここで何度か言及したように

-webkit-appearance:none;

また、矢印を削除しますが、これはほとんどの場合に必要なものではありません。

私が見つけた簡単な回避策は、selectではなくselect2を使用することです。select2要素のスタイルも変更できます。最も重要なのは、select2がWindows、Android、iOS、Macで同じように見えることです。


-8

ChomeのUser Agent StyleSheetを調べると、これが見つかります

outline: -webkit-focus-ring-color auto 5px;

つまり、outlineプロパティ-Noneにします

それは輝きを取り除くはずです


8
彼は輪郭についてではなく、光沢のある背景について尋ねています。
アポロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.