Mac 용 Safari에서 선택한 요소의 광택을 제거하려면 어떻게해야합니까?


112

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

내 요소에는 내가 원하는 배경색이 있지만 광택은 여전히 ​​있습니다. 평면 색상으로 만드는 방법을 아는 사람이 있습니까?

답변:


194

@beanland; 당신은 작성해야

-webkit-appearance:none;

귀하의 CSS에서.

http://trentwalton.com/2010/07/14/css-webkit-appearance/ 읽기


4
감사에 대한 필요가 없습니다 내가 :) 모르는 것들이 많이 있기 때문에
하기 Sandeep

123
오른쪽에 화살표를 유지하는 방법이 있습니까? 색상 만 무시하고 싶습니다. 감사합니다
Marc

19
@sandeep : 크로스 브라우저를 만들기 위해 :-moz-appearance: none; -webkit-appearance: none; appearance: none;
Dorian

6
@Marc 3 년 후에도 여전히 관심이 있다면 .. 화살표를 표시하기 위해 찾은 해결책을 추가했습니다.
alicjasalamon

2
IE의 해결책은 select ::-ms-expand {display : none; } 네이티브 IE 선택 상자 드롭 다운 아이콘을 숨긴 다음 실제 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
달콤하고, 화살을 고쳐 주셔서 감사합니다! 여기에 투명한 배경을 가진 버전입니다 : 선택 {배경 : 홈페이지 (데이터 : 이미지 / 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
안드레아스 정보 Gassmann

2
추가 된 화살표에 위쪽 / 아래쪽 화살표가 모두 포함되어 있습니다. 일반적인 아래쪽 화살표를 표시하기위한 빠른 수정이 있습니까?
Brett

14

2019 버전

더 짧은 인라인 이미지 URL, 아래쪽 화살표 만 표시, 사용자 지정 가능한 화살표 색상 ...

에서 https://codepen.io/jonmircha/pen/PEvqPa

저자는 아마도 Jonathan MirCha 일 것입니다.

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속성은 선택 요소의 배경에 적용됩니다. 아래쪽 화살표의 색상을 변경하려면 URL에서 SVG 채우기 속성을 변경해야합니다. 예fill='%23fc0000'
Noel Abrahams

계산없이 배경 위치를 사용하는 것이 더 좋습니다. 배경 위치 : 오른쪽 .8em 상위 60 %; 커서가 필요합니다.
Iggy

누군가가 보여줄 수있는 이중 화살표 버전이 있습니까?
evolross

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
솔루션에는 기본적으로 두 가지 구성 요소가 있습니다. 1. 브라우저가 요소에 스타일 / 표시를하지 않도록 요청합니다. 2. 합리적인 스타일을 제공합니다. 끔찍하지 않은 브라우저 (사파리가 아닌 읽기)에서는 브라우저가 제공하는 요소 스타일이 좋습니다. 그러나 사파리에서는 브라우저가 제공하는 스타일이 역겹고 끔찍합니다. 따라서 모든 브라우저에서 제공되는 브라우저를 재정의해야합니다. 외관으로 끝나는 줄 : 없음 위에서부터 파트 1을 수행하지 않습니다. 다른 라인은 파트 2를 다루고 있습니다. 도움이됩니까?
Justin Edwards


0

여기에서 여러 번 언급했듯이

-webkit-appearance:none;

또한 대부분의 경우 원하는 것이 아닌 화살표를 제거합니다.

내가 찾은 쉬운 해결 방법은 단순히 select 대신 select2 를 사용하는 것입니다. select2 요소의 스타일도 다시 지정할 수 있으며 가장 중요한 것은 select2가 Windows, Android, iOS 및 Mac에서 동일하게 보인다는 것입니다.


-8

Chome의 사용자 에이전트 스타일 시트를 살펴보면 다음을 찾을 수 있습니다.

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

요컨대 개요 속성-없음

그 빛을 제거해야


8
그는 윤곽선이 아니라 광택있는 배경에 대해 묻고 있습니다.
Apollo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.