Mac'teki Safari'de belirli bir öğedeki parlaklığı nasıl kaldırabilirim?


113

Mac'lerde ve iOS cihazlarda, Safari'de <select>arka plan rengine sahip bir öğe kendi üzerinde bir parlaklık oluşturur. Bu, diğer işletim sistemlerinde görülmemektedir.

Örneğin, şu stil özelliklerine sahip bir seçme öğem var:

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;
}

Öğemde istediğim arka plan rengi var, ancak parlaklık hala orada. Onu düz renk yapmayı bilen var mı?

Yanıtlar:


196

@beanland; Yazmak zorundasın

-webkit-appearance:none;

css'inizde.

bunu okuyun http://trentwalton.com/2010/07/14/css-webkit-appearance/


4
teşekkür
etmeye

123
Oku sağ tarafta tutmanın bir yolu var mı? Yalnızca rengi geçersiz kılmak istiyorum. Teşekkürler
Marc

19
@sandeep: Ve tarayıcılar arasında dolaşmak için:-moz-appearance: none; -webkit-appearance: none; appearance: none;
Dorian

6
@Marc 3 yıldan sonra hala ilgileniyorsanız .. Okları göstermesi için bulduğum bir çözüm ekledim.
alicjasalamon

2
IE için çözüm, select :: - ms-expand {display: none; } yerel IE seçme kutusu açılır simgesini gizlemek için, ardından yeni simge için arka plan olarak gerçek bir png resmi kullanın. Sorun, SVG görüntülerinin IE'de CSS aracılığıyla her zaman doğru şekilde konumlandırılmaması nedeniyle oluşur.
Phyllis Sutherland

107

Kullanımı -webkit-appearance:none;, bunun bir açılır menü olduğunu belirten okları da kaldırır.

Farklı tarayıcılarda çalışmasını sağlayan ve herhangi bir görüntü dosyası eklemeden özel oklar ekleyen bu parçacığa bakın:

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
tatlı, okların düzeltilmesini takdir et! Burada şeffaf arka plan ile bir sürümü: seçmek {background: url (data: image / svg + xml; base64, PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU + LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM + PHRpdGxlPmFycm93czwvdGl0bGU + PHBvbHlnb24gY2xhc3M9ImNscy0yIiBwb2ludHM9IjEuNDEgNC42NyAyLjQ4IDMuMTggMy41NCA0LjY3IDEuNDEgNC42NyIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIzLjU0IDUuMzMgMi40OCA2LjgyIDEuNDEgNS4zMyAzLjU0IDUuMzMiLz48L3N2Zz4 =) yineleme yok% 95% 50; }
Ingo Renner

1
şeffaf bir ok yaptı (uzunluk nedeniyle buraya yapıştırılamadı): pastebin.com/HQ0x4Rka
mga

5
Geniş seçim öğelerine sahipseniz, bu biraz yanlış görünecektir. Düzeltmek için, arka planı daha iyi hizalamak için CSS3'ün arka plan konumu kenar ofsetlerini kullanabilirsiniz. Öyleyseno-repeat 95% 50%no-repeat right 2px center
iSWORD

3
Aynı oklar ama beyaz ve şeffaf pastebin.com/07iS41b5
Andreas Gassmann

2
Eklenen okların hem yukarı / aşağı ok içerdiğini fark ettim - her zamanki aşağı oku göstermek için herhangi bir hızlı düzeltme var mı?
Brett

14

2019 Sürümü

Daha kısa satır içi resim URL'si, yalnızca aşağı ok gösterir, özelleştirilebilir ok rengi ...

Gönderen https://codepen.io/jonmircha/pen/PEvqPa

Yazar muhtemelen Jonathan MirCha'dır

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-colorMülkiyet seçme elemanının arka için de geçerlidir. Aşağı okun rengini değiştirmek için URL’deki SVG doldurma özelliğini değiştirmeniz gerekir, örneğinfill='%23fc0000'
Noel Abrahams

Arka plan konumunu hesaplamadan kullanmak daha iyidir: arka plan konumu: sağ .8em üst% 60; ve biraz imleç: gerekli
Iggy

Bunun birisinin gösterebileceği çift oklu bir versiyonu var mı?
evrim

3

Eski bir eşyayı aldığım için üzgünüm. Sorularıma burada kısmi cevaplar buldum, ancak biraz çalışmam gerekti, bu yüzden sonuçlarımı bir sonraki kişi için paylaşmak istedim.

Diğer katkıda bulunanlarla aynı yaklaşımı kullandım, ancak aşağıdakileri düzeltmek için birkaç ince ayar yaptım

  1. Uzun metin diğer çözümlerde okları kapatıyordu
  2. Kullanılan görüntü biraz eski ve çirkin bir yukarı / aşağı birleşik oktu.

Aşağıdakiler, yukarıdaki sorunların giderildiği bir çalışma çözümü verecektir. Not: Kullanım durumum için beyaz bir ok kullandım, sizinki için okun rengini değiştirmeniz gerekebilir.

işte bir önizleme:

beyaz okla seçin

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;
}

//, Bunun parlaklığı nasıl ve neden ortadan kaldırdığını açıklar mısınız?
Nathan Basanese

1
Çözümün temelde iki bileşeni vardır: 1. Tarayıcının öğe üzerinde herhangi bir stil / gösterim yapmamasını isteyin. 2. Makul bir tarz sağlayın. Korkunç olmayan tarayıcılarda (safari değil okuyun), tarayıcı tarafından sağlanan öğe stili iyidir. Safari'de, ancak tarayıcının sunduğu stil iğrenç ve korkunçtur. Sonuç olarak, her tarayıcıda sağlanan tarayıcı ekranını geçersiz kılmalıyız. Görünüşle biten çizgiler: hiçbiri yukarıdan bölüm 1 yapmaz. Diğer çizgiler 2. bölümü ele alıyor. Bu yardımcı olur mu?
Justin Edwards


0

Burada birkaç kez bahsedildiği gibi

-webkit-appearance:none;

çoğu durumda istediğiniz şey olmayan okları da kaldırır.

Bulduğum kolay bir çözüm, select yerine select2'yi kullanmaktır. Bir select2 öğesini de yeniden biçimlendirebilirsiniz ve en önemlisi, select2 Windows, Android, iOS ve Mac'te aynı görünür.


-8

Chome Kullanıcı Aracısı Stil Sayfasını incelerseniz, bunu bulacaksınız

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

kısacası onun anahat özelliği - yok yapmak

bu parlamayı kaldırmalı


8
Taslağı değil, parlak arka planı soruyor.
Apollo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.