program tip

IE10 요소 선택 화살표 제거

radiobox 2020. 10. 20. 07:29
반응형

IE10 요소 선택 화살표 제거


따라서 Mozilla 및 WebKit을 select사용 appearance: none;하면 상위 요소를 사용 하고 갖는 상자 의 화살표를 대체하는 반 괜찮은 솔루션이 있습니다.

IE에서는 대부분이 기능을 비활성화했습니다. IE10의 경우 조건부 주석이 실제로 작동하지 않기 때문에 실제로 비활성화 할 수 없습니다.

내 마크 업은 다음과 같습니다.

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]-->
<!--[if IE 7 ]>    <html class="ie7"> <![endif]-->
<!--[if IE 8 ]>    <html class="ie8"> <![endif]-->
<!--[if IE 9 ]>    <html class="ie9"> <![endif]-->
<!--[if (gt IE 9)]>    <html class="ie10plus"> <![endif]-->
<!--[if !(IE)]><!--> <html> <!--<![endif]-->

클래스 ie10plus는 실제로 마크 업에 도달하지 않습니다.

또한 IE에서 화살표를 대체하는 합법적 인 방법이있을 수 있다고 생각합니다. 나는 실제로 문제를 해결하는 것에 반대하지 않습니다. appearance: none;그러나 작동하지 않습니다. 그래서 여기서 무엇을 할 수 있습니까?


브라우저 스니핑 및 조건부 주석 (Internet Explorer 10에서 지원되지 않음)을 피하고 대신 더 표준적인 접근 방식을 취하십시오. 이 특정 문제에서 ::-ms-expand유사 요소를 대상으로해야합니다 .

select::-ms-expand {
    display: none;
}

그러나!, 너비를 추가하려면 다음과 같이 할 수 없습니다.

display:none

그래서

select::-ms-expand {
 /* IE 8 */
 -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
 /* IE 5-7 */
 filter: alpha(opacity=0);
 /* Good browsers :) */
 opacity:0;
}

Internet Explorer 10은 조건부 주석을 지원하지 않으므로 다른 작업을 수행해야합니다. 한 가지 해결책은 JavaScript로 사용자 에이전트를 스니핑하고 직접 클래스를 추가하는 것입니다.

<script>
if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) {
    document.documentElement.className += " ie10";
}
</script>

<head>스타일이 지정되지 않은 콘텐츠의 플래시가 발생하지 않도록에 추가해야 하지만 문제가되지 않을 수 있습니다.

또한 jQuery를 사용하는 경우 다음과 같이 할 수 있습니다.

if (navigator.userAgent.indexOf("MSIE 10.0") !== -1) {
    $("html").addClass("ie10");
}

IE10 이상을 확인하려면 이 Microsoft 페이지에서getInternetExplorerVersion 함수 복사하여 붙여 넣은 다음을 다음과 같이 변경하십시오 if.

if (getInternetExplorerVersion() >= 10) {
    // whatever implementation you choose
}

Zurb Foundation 을 사용하는 IE 10 및 11 사이트의 숨겨진 드롭 다운 화살표에 문제가 있습니다. _form.scss에

select::-ms-expand {
    display: none;
}

나는 그것을 제거 하고 드롭 다운 화살표가 모든 브라우저에서 정상적으로 표시되기 시작했습니다. 여기에 답변 해 주신 Jonathan에게 감사드립니다. 이것은 해결책을 많이 찾고 나서 도움이되었습니다.


여전히 수행하려는 작업이 확실하지 않지만 ie10에 대한 클래스를 감지하고 추가합니다.
<!--[if !IE]><!--<script> if (/*@cc_on!@*/false) { document.documentElement.className+=' ie10plus'; } </script>!--<![endif]-->

참고 URL : https://stackoverflow.com/questions/15351949/removing-the-ie10-select-element-arrow

반응형