iOS는 입력에 둥근 모서리와 눈부심을 강제합니다.


94

iOS 장치는 양식 입력, 특히 입력 [type = submit]에 많은 성가신 스타일을 추가합니다. 아래는 데스크톱 브라우저와 iPad의 동일한 단순 검색 양식입니다.

데스크탑 :

데스크탑

iPad :

아이 패드

input [type = text]은 CSS box shadow inset을 사용하며 심지어 -webkit-border-radius : none을 지정했습니다. 분명히 무시됩니다. 입력 [type = submit] 버튼의 색상과 모양이 iPad에서 완전히 멍청 해집니다. 이 문제를 해결하기 위해 내가 무엇을 할 수 있는지 아는 사람이 있습니까? 미리 감사드립니다.


4
-웹킷 외관 : 없음; 대부분의 문제를 제거하는 데 도움이되지만 여전히 두 요소 또는 둥근 모서리 사이의 간격을 제거하지는 못합니다. 그래서 그것에 대한 어떤 도움이라도 감사하겠습니다. 감사.
inorganik

2
지정 -webkit-border-radius:none;border-radius:none;습니까?
Rigel Glen 2011 년

7
나를 위해 iOS에서 트릭을 지정 -webkit-appearance:none하고 -webkit-border-radius:0수행했습니다!
Primus202 2012-06-12

답변:


183

내가 일했던 버전은 다음과 같습니다.

input {
    -webkit-appearance: none;
}

일부 웹킷 브라우저 버전에서는 border-radius여전히 존재하는 문제에 직면 할 수도 있습니다 . 다음으로 재설정하십시오.

input {
    -webkit-border-radius:0; 
    border-radius:0;
}

이 모든 웹킷 스타일에 적용하도록 확장 할 수 있습니다 form와 같은 구성 요소 input, select, button또는 textarea.

원래 질문과 관련하여 단위 기반 css 요소를 지울 때 'none'값을 사용하지 않습니다. 또한 이것은 Chrome에서 확인란을 숨기므로 input[type=text]또는 같은 것을 사용 input[type=submit], input[type=text]하십시오 ( input:not([type=checkbox]), input:not([type=radio])모든 입력이 두 조건 중 하나를 충족하므로 모든 입력 유형에 적용됩니다).


5
-웹킷 외관 : 없음; Chrome에서 확인란을 숨 깁니다. 유효한 솔루션이 아닙니다!
Nico Westerdale

2
-웹킷 외관 : 없음; 트릭을 수행합니다! (-webkit-border-radius 필요 없음)
OZZIE

좋은 점은 브라우저 버전에 따라 다르기 때문에 안전 장치를 위해 거기에 있습니다. 관련성을 위해 게시물을 편집하겠습니다.
marksyzm

3
input : not ([type = "checkbox"])이 Chrome에서 문제를 피하는 더 좋은 방법일까요? IE <= 8에서는 작동하지 않지만 다시 말하지만 그것은 당신이 고치려는 것이 아닙니다.
Robin French

사용 input:not([type=checkbox]), input:not([type=radio])은 모든 버튼이이 두 가지 조건 중 하나를 충족하기 때문에 스타일이 Safari의 모든 버튼에 적용됨을 의미합니다. 대신 input[type=submit], input[type=text].
miguelmorin

17

다음과 같이 더 많은 웹킷 양식, 입력 등 스타일을 제거 할 수 있습니다.

input, textarea, select {
   -webkit-appearance: none;
}

여전히 border-radius: 0;완전히 재설정 해야 하며 테두리 반경을 원하지 않습니다. 그렇지 않으면 border-radius.
Refilon

3

제출 버튼의 경우 다음을 사용하지 마십시오.

<input type="submit" class="yourstylehere" value="submit" />

대신 버튼 태그를 사용하세요.

<button type="submit" class="yourstylehere">Submit</button>

이것은 나를 위해 일했습니다.


1
FWIW, 방금 프로젝트에서이 문제가 발생했으며 테스트 중이던 iPad 1도 <button>태그 에 스타일을 추가했습니다 . 따라서 CSS로 직접 해결하는 것이 좋습니다.
neemzy

1

normalize.css 살펴보기

양식 요소를 테스트하고 iOS에서 어떻게 보이는지 확인할 수있는 데모가 있습니다. 웹킷 지향 특성이 여러 개 있습니다.


1

이것이 내 프로젝트에서 사용하는 것입니다.

* { 
    -webkit-tap-highlight-color: transparent; 
}
a, article, div, h1, h2, h3, h4, h5, h6, img, section, span {
    -moz-user-select: none; 
    -webkit-user-select: none; 
}
input, select, textarea { 
    -webkit-appearance: none; 
    -webkit-border-radius:0; 
    border-radius: 0; 
}

0

다음과 같은 경우 일부 브라우저에서도이 문제가 발생합니다.

<a class="btn btn-primary" href="#" type="button">Link</a>

대신에:

<a class="btn btn-primary" href="#" role="button">Link</a>

이는 anker 요소에 대한 입력 요소를 변경 type하고 으로 변경하는 것을 잊은 경우 발생할 수 있습니다 role.

내 iPad의 Chrome과 Safari 모두 에서이 문제가 발생했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.