2011-10-06 3 views
-2

여기에있는 모든 전문가를위한 질문입니다.IE5.5 필터 - 필터 : 왜 그라디언트 (속성)를 사용할 수없는 반면 필터 : 알파 (속성)는?

filter: alpha(opacity = 50); 

:

는 IE의
filter:progid:DXImageTransform.Microsoft.Gradient(sProperties). 

이후 버전이 가능 알파 투명성에 대한 짧은 방법을 지원합니다 IE5.5가 시작

, 그것은 같은 새 필터의 범위와 함께 누구나 IE가 그라디언트에 대한 더 짧은 방법을 지원하지 않는 이유에 대한 좋은 설명이 있습니까? filter: gradient(startcolor, endcolor)?

+0

IE8은'-ms-filter'로'filter'를 대체하고 긴 형식을 가져 왔습니다. IE9는 CSS3 표준에 찬성하여'필터'를 완전히 버렸다. – Spudley

답변

1

전체 filter 스타일은 Microsoft 및 IE의 독점권이며 외부 표준화 프로세스의 적용을받지 않습니다.

따라서 구문 선택과 지원 여부는 전적으로 Microsoft의 변덕에 달려 있습니다.

filter:progid:.... 구문에 대해 알아야 할 한 가지 점은 progid 다음의 콜론 때문에 유효하지 않은 CSS라는 것입니다. 이 구문이 실제로 다른 브라우저에서 심각한 구문 분석 오류를 일으킨 경우를 보았습니다. (한 경우 Firefox 2.3에서는 회전이 발생하여 스타일 시트를 더 이상 구문 분석하지 않음)

이러한 종류의 문제는 구문 적으로 유효하기 때문에 짧은 대체 구문을 제공하려는 동기의 일부일 수 있습니다 CSS를 사용하는 이유는 무엇인지 설명하지는 않지만 일부 필터에 대해서는 그 이유가 무엇인지 설명하지는 못합니다.

그 외에도 내가 왜 filter 스타일 중 일부의 지름길 변형을 제공했는지 알 수있는 좋은 이유가 없습니다. 아마도 그들은 대중적인 용도로만 사용하기로 결정했을 것입니다. 그러나 결정이 내려진 이유가 무엇이든,이 짧은 스타일은 IE6과 IE7에만 적용됩니다. 그리고 그들은 먼 과거에 있으며 정말로 역사적인 관심사입니다.

IE8을 사용하여 을 -ms-filter으로 바꾼 다음 스타일의 긴 버전으로 돌아가서 값을 따옴표로 묶어야합니다 (위에서 설명한 잘못된 CSS 문제 해결).

IE9를 사용하면 filter 스타일을 완전히 삭제하고 표준 CSS3 대안을 구현했기 때문에 전체적인 질문은 논평이되지 않습니다.

당신은 내가 강하게 IE6-8 등 그라디언트를위한 CSS3 표준 스타일을 지원 할 수 있도록 설계된 자바 스크립트 래퍼입니다 CSS3Pie, 같은 도구로보고 추천의 filter 스타일, 특히 그라디언트를 작동하려는 경우 이렇게하면 비표준 IE 전용 필터를 사용하지 않고도 CSS 코드를 작성할 수 있습니다. 다른 필터 스타일에도 유사한 도구가 있습니다.