HTML5shiv vs Dean Edwards IE7-js vs Modernizr-무엇을 선택할까요?


113

첫 번째 HTML5 사이트를 구축하고 IE 작업을 검토하고 있습니다.

html5shiv, Dean Edwards ie7-js 및 Modernizr가 있습니다. 이 모든 것이 대체로 동일합니까? 어느 길로 가야할지 혼란 스럽습니다.


1
멋진 질문에 대해 +10.
Snekse

답변:


124

아니요, 전혀 동일하지 않습니다. 그들은 완전히 다른 일을합니다.

  • html5shiv 를 사용하면 인식하지 못하는 IE 버전에서 새로운 HTML5 태그를 사용할 수 있습니다. 그것이 없으면 IE는 이러한 태그를 질식시킬 것이므로 태그를 사용하려면 이것이 필요합니다. 하지만 태그가 실제로 IE에서 어떤 일을하게 만들 것이라고 기대하지 마십시오! 브라우저가 그들에 대해 불평하는 것을 막을뿐입니다.

  • modernizr 는 사용 가능한 기능에 따라 HTML에 여러 클래스를 설정하며, 브라우저가 지원하는 것에 따라 레이아웃을 변경하는 데 사용할 수 있습니다. 또한 IE 에서 html5shiv와 같은 새로운 HTML5 태그를 사용할 수 있습니다 .

  • ie7.js ( ie8.js및 및 ie9.js)는 Javascript를 사용하여 일부 누락 된 기능을 IE에 추가합니다.

내가 아는 한 그들 사이에는 크로스 오버가 없기 때문에 (html5shiv / modernizr 제외) 구현해야 할 기능에 따라 이들의 조합을 사용할 수 있습니다.

내가 주제를 다루는 동안 IE를 다른 브라우저와 더 잘 호환되도록하는 도구에 대해 질문하고 있으므로 사이트에서 둥근 모서리를 사용하려는 경우 삶을 훨씬 더 행복하게 만들 CSS3Pie 도 살펴볼 것을 제안합니다. (1 개 또는 2 개의 다른 기능 추가).

이것은 또한 언급 한 다른 세 제품과 교차하지 않지만, 모두 이전 버전의 IE를 사용하기 약간 더 쉽게 만드는 것을 목표로합니다.


그게 제가 찾고 있던 답입니다. 감사합니다 :)
PaulM

64
Modernizr는 본질적으로 html5shiv 전체를 포함합니다.
Paul Irish

환상적인 개요. 확실히 나에게 방향을 주었다. 감사!
ebrandell

2
@RoyiNamir-Modernizr는 HTML에서 클래스를 설정합니다. 그 자체로는 이러한 클래스에 대해 다른 작업을 수행하지 않지만 다른 JS 라이브러리 또는 CSS를 사용하여 해당 클래스를 참조하고 HTML 코드의 다른 클래스와 동일한 방식으로 원하는 작업을 수행 할 수 있습니다. 예 : placeholder입력 태그에 를 사용하려고합니다 . 그러나 오래된 IE는 그것을 지원하지 않습니다. Modernizr는 no-placeholderIE에 클래스 를 추가합니다 . 이 클래스를 참조하는 Javascript 코드를 작성하면 필요하지 않은 브라우저에서 실행하지 않고도 자리 표시 자 기능을 모방하는 스크립트를 구현할 수 있습니다. 그것을 설명 희망
Spudley

1
IE9.jshtml5shiv가 수행하는 모든 작업을 수행합니다.

12

새로운 HTML5 프로젝트를 시작하는 가장 쉬운 방법은 initializr을 사용하는 것 입니다. HTML5 프로젝트 파일을 빌드하고 다운로드 할 수 있도록 안내합니다.


5

그것들은 다소 똑같습니다. 그리고 어느 방향 으로든 ATM은 어느 쪽이든 좋은 추측으로서 ATM입니다. 기록을 위해 놓친 것이 있습니다. http://html5boilerplate.com/ 이것은 프로토 타입을 만들 때 몇 년 전의 일종의 반복입니다. 그리고 jQuery는 같은 공간에서 싸우고있었습니다. 나는 개인적으로 jQuery가 이겼다고 위험을 무릅 쓰고 있지만 지금은이 중 어느 것이이 특별한 싸움에서 이길 지 알 수 없다. 나는 dean edwards ie7-js를 추천 할 수 없다고 생각합니다. IE7이 다른 프레임 워크만큼 전체 HTML5를 활용하는 것과는 반대로 다른 더 지능적이고 호감이가는 브라우저처럼 작동하도록하는 것입니다.


2
상용구를 언급 해 주셔서 감사합니다. 나는 이것을 내 질문에 포함하려고했지만 Modenizer가 상용구에 포함되어 있기 때문에 내 질문의 3 개 항목에 구체적으로 지정하고 싶었습니다.
PaulM 2010 년

1
html5boilerplate가 무엇인지 잘못 알고 있습니다. html5boilerplate는 이전 버전의 html5boilerplate에서 어느 시점에서 initializr과 같은 웹 프로젝트를 시작하는 데 필요한 항목을 포함하는 패키지이며 아마도 지금도 modernizr 또는 html5shiv를 사용해야한다고 설명합니다. modernizr가 필요한 작업을 수행하므로 둘 다 사용하지 마십시오. 또한 프로덕션 환경에 맞는 사용자 정의 modernizr를 다운로드하고 필요한 것만 사용해야합니다. modernizr 공급 클래스를 사용하지 않으려면 html5shiv를 고수해야합니다!
Neo

html5boilerplate는이 질문이 2010 년에 제기 된 이후로 상당히 극적으로 변경되었습니다. 그때 질문에서 원하는 것이 HTML5 프로젝트를 시작하는 데 필요한 모든 것을 번들로 제공했습니다. 원래 질문은 '첫 번째 HTML5를 구축하려고합니다'였습니다. 나는 여전히 html5boilerplate가 질문을 받았을 때 질문에 대한 수용 가능한 대안 옵션이라고 믿습니다.
FatherStorm 2014 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.