[css] IE CSS 필터를 재설정하거나 무시하려면 어떻게합니까?

css3 text-shadow 및 box-shadow와 같은 추악하지 않은 등가물을 만들기 위해 고유 한 MS ‘filter’속성을 사용하고 있습니다.

이 문제에 부딪 힐 때까지 저는 실제로 정말 잘하고있었습니다. 필터가있는 다른 div 내부의 div에 필터를 적용하면 필터 효과가 하위 개체에 결합되는 것처럼 보입니다.

필터를 사용해 보았습니다 : 없음; 재설정을 할 수 있지만 기쁨은 없습니다. 또한 구문에 대해 다른 변형을 시도했습니다. “-ms-filter : ‘progid : … Glow ()'”, “filter : progid : … Glow ()”, “filter : Glow ()” 등 ..

IE8에서 테스트



답변

false 또는 true를 설정할 수있는 부울 속성이 활성화 되어 있습니다. http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx

예:

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";


답변

-ms-filter 속성은 비표준 브라우저 별 CSS 항목이므로 매개 변수를 따옴표로 묶어야합니다. 따라서 -ms-filter : “none”은 잘 작동합니다.


답변

이 시도:

필터 :-;


답변

나는 아이들을 절대적 또는 상대적으로 배치함으로써 약간의 성공을 거두었습니다. 이것은 일찍 작동하지 않는 것 같았으므로 더 복잡해지면 다시 깨질 수 있습니다.

부모가 필터를 적용하면 모든 자식이 본질적으로 내부적으로 directx 표면이된다고 생각합니다. 여전히 텍스트를 선택할 수 있지만 지연됩니다. 텍스트 선택은 각 문자를 별도의 표면으로 만드는 해킹이라고 생각합니다. 일반적으로 브라우저와 특히 필터가 왜 그렇게 버그가 많은지 설명하는 데 큰 도움이되는 엉망진창입니다.


답변

HTML5를 사용하는 경우 사용 경로를 따라갈 수 있습니다.

<!doctype html>
<!--[if lt IE 7 ]> <html lang="en" class="ie6 oldie"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="ie7 oldie"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="ie8 oldie"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html lang="en" class="gtie9 modern">
<!--<![endif]-->

CSS에서 다음과 같이 사용하십시오.

.ie9 .element {filter: none; }


답변

필터 를 활성화 / 비활성화 하려고 했습니까 ?


답변

가장 좋은 방법은 display : inline-block (컨테이너에 white-space : nowrap 적용)입니다. 그러나 IE7 이하에서는 잘 작동하는 것 같습니다.