2011-08-25 2 views
0

나는 CSS Shapes을 포함하는 jQuery 플러그인을 작업 해왔다. 내가 건너 왔던 문제는 선언 된 DOCTYPE이 없으면 IE8에서 CSS 모양이 작동하지 않는다는 것입니다. 이것은 첫 번째 jQuery 플러그인이 될 것이다.CSS 도형 및 IE Doctype 다루기

내 질문 : jQuery 개발자는 어떻게이 문제를 해결합니까? 문서에서이 플러그인이 작동하려면 DOCTYPE이 필요하다는 것을 설명해야합니까? 아니면 Quirks 모드에서 작동하는 별도의 CSS를 작성해야합니까?

+4

doctype이 필요하다고 설명합니다. 어쨌든 그들은 doctype을 사용해야합니다. – Jrod

답변

5

아무도 의도적으로은 유효한 Doctype을 요즘 생략합니다. 그 결과는 Quirks Mode입니다. 아니 문서 타입 -

http://hsivonen.iki.fi/doctype/

당신은 고의로 쿼크 모드를 원한다.

제발하지 마세요. Quirks 모드를 의도적으로 설계하는 것은 이 앞으로는 에있는 동료 나 동료 또는 Windows IE 6에 대해 신경 쓰지 않을 것입니다 (이미 은 Netscape 4.x와 IE 5를 신경 쓰지 않습니다). Quirks 모드 에 대한 설계는 좋지 않습니다. 날 믿어.

사이트가 doctype을 가질 수없는 유일한 가능한 이유는 표준 모드에서 작동하도록 너무 많은 노력을 기울일 기존 사이트 인 경우입니다.

플러그인은 Quirks 모드에서 작동하지 않아도됩니다.

문서에 언급 할 필요조차 없습니다. 일이 깨질 것으로 예상됩니다. 예를 들어, 페이지가 Quirks 모드 인 경우 new CSS3 stuff in IE9이 작동하지 않습니다.

1

Doctype은 모든 웹 사이트에서 필수로 간주되어야합니다. 하나도 갖지 않으면 IE가 단조 모드로 전환됩니다. 이것은 나쁜 것입니다.

IE6이 출시 된 이래로 지금까지 매우 오랜 시간이 걸렸으므로 여전히 Doctype을 사용하지 않는 사람은 자신의 안전을 위해 HTML을 쓸 수 없어야합니다! ;-) 따라서 doctype없이 코드가 어떻게 보이는지 걱정하지 않아도된다고 생각합니다.

그러나 나는 분명히 똑똑한 반면 드로잉하는 CSS 모양은 해킹으로 간주되어야한다고 지적하고 싶습니다. 브라우저에서 임의의 모양을 얻는 방법은 여러 가지가 있습니다.

또한 링크 된 페이지의 대부분의 모양은 IE8 이하에서는 작동하지 않습니다. (원과 타원형을 사용하는 CSS border-radius과 다른 많은 사람들은 transform을 사용합니다. 어느 쪽도 IE8에서 지원되지 않으며 상당수는 :before:after CSS 셀렉터를 사용하지만 IE7은 사용하지 않습니다. HTML + CSS가 이러한 결과를 얻을 수있는 곳이라 할지라도, 이런 종류의 것을 위해 설계된 것은 아닙니다. 사실 Firefox 3.6에서도 링크 된 페이지에서 렌더링 오류가 발생합니다.

코드를 사용하여 페이지에 도형을 그리려면 HTML + CSS를 해킹하려고 시도하는 대신 적절한 그리기 라이브러리를 사용하는 것이 좋습니다.

Raphael과 같은 라이브러리를 권하고 싶습니다.이 라이브러리는 벡터 그래픽 언어 SVG를 사용하여 브라우저에 임의의 모양을 그릴 수 있습니다. 이전 버전의 IE에서도 작동합니다 (VML과 비슷한 언어로 되돌아갑니다). 따라서 브라우저 간 지원을 거의 완료했습니다. 또한 현재 사용중인 CSS 도형으로는 전혀 불가능한 애니메이션 및 기타 효과를 지원합니다.