Як я можу видалити блиск на виділеному елементі в Safari на Mac?


113

На пристроях Mac і iOS в Safari <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;
}

І мій елемент має колір фону, який я хочу, але блиск все ще є. Хтось знає, як зробити його рівним кольором?

Відповіді:


195

@beanland; Треба писати

-webkit-appearance:none;

у вашому css.

читайте це http://trentwalton.com/2010/07/14/css-webkit-appearance/


4
немає потреби в
подяках,

123
Чи є спосіб утримувати стрілку на правій стороні? Я хочу змінити лише колір. Дякую
Марк

19
@sandeep: І щоб зробити це крос-браузерами:-moz-appearance: none; -webkit-appearance: none; appearance: none;
Доріан

6
@Marc Якщо через 3 роки ти все ще зацікавився .. Я додав рішення, яке знайшов, щоб стрілки показували.
alicjasalamon

2
Рішення для IE полягає у використанні select :: - ms-extension {display: none; }, щоб приховати рідну піктограму вибору IE, а потім використати фактичне зображення PNG як фон для нового значка. Проблема виникає через те, що зображення SVG не завжди розташовані належним чином через CSS в IE.
Філіс Сазерленд

107

Використання -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%; }
Інго Реннер

1
зробив прозору стрілку (не могли вставити сюди з - за довжини): pastebin.com/HQ0x4Rka
MGA

5
Якщо у вас є широкі елементи вибору, це виглядатиме дещо недоліком. Щоб виправити це, ви можете скористатися зсувом крайового положення CSS3 для кращого вирівнювання фону. Тож замініть no-repeat 95% 50%наno-repeat right 2px center
iSWORD

3
Ті ж стрілки, але в білому та прозорому пастебіні.com/07iS41b5
Andreas Gassmann

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Властивість відноситься до фону вибору елемента. Щоб змінити колір стрілки вниз, вам потрібно змінити властивість заповнення SVG в URL-адресі, наприкладfill='%23fc0000'
Noel Abrahams

Краще використовувати фон-позицію без обчислення: фон-позиція: право .8ем вершиною 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;
}

// Ви б не хотіли пояснити, як і чому це видаляє блиск?
Натан Басанес

1
Рішення в основному має два компоненти: 1. Попросити, щоб браузер не робив будь-якого стилю / відображення елемента. 2. Надати розумний стиль. У веб-переглядачах, які не є богом жахливими (читайте, а не сафарі), стиль стилю елементів, який надається браузером, добре. Однак у сафарі браузер надає стиль огидним та жахливим. Отже, ми повинні перекрити дисплей, що надається у кожному браузері. Рядки, що закінчуються на вигляд: жодна частина не робить частину 1 зверху. Інші рядки стосуються частини 2. Чи допомагає це?
Джастін Едвардс


0

Як згадувалося тут кілька разів

-webkit-appearance:none;

також видаляє стрілки, що в більшості випадків не те, що потрібно.

Я знайшов просте вирішення просто використовувати select2 замість select. Можна також змінити стиль select2, а головне, що select2 виглядає однаково в Windows, Android, iOS та Mac.


-8

Якщо ви ознайомитесь з користувальницьким стилем, таблиця Chome, ви знайдете це

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

коротше, його властивість контуру - зробити його None

які повинні видалити світіння


8
Він питає не контури, а глянсовий фон.
Аполлон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.