Jeśli potrzebuję tylko starszych przeglądarek, aby rozpoznać znaczniki HTML5, które powinienem używać, modernizr lub popularne HTML5 Shiv? A także, jeśli nie muszę stylować tego znaczników HTML5, czy potrzebuję przeglądarek, aby je w każdym razie ich rozpoznają? Czy jest to konieczne tylko podczas dodawania CSS do tych tagów?

Dzięki!

14
federico-t 26 listopad 2011, 05:16

3 odpowiedzi

Najlepsza odpowiedź

HTML5SHIV w zasadzie pozwala na rozpoznawanie i stylowe elementy HTML5, podczas gdy modernizr zapewnia ten sam plus wykrywanie funkcji obsługiwane przez Broswer.

Aby odpowiedzieć na pytanie HTML5 Shiv, powinien być wystarczający, aby rozpoznać znaczniki HTML5 w IE. (Uwaga mówię, tj. Tutaj, ponieważ to jest to, co cele HTML5SHIV, nie wiesz, co masz na myśli, kiedy mówisz starszych przeglądarek)

W drugiej części, nawet jeśli nie chcesz stylować tagów HTML5, poradziłbym sobie użyć Shiv, ponieważ przeglądarka może wystawić je nieprawidłowo, czy w ogóle, więc lepiej jest być bezpieczne.

16
omarello 26 listopad 2011, 01:49

HTML5 Shiv jest mniejszy, a chyba że potrzebujesz niektórych funkcji wykrywania modernizr, idź na Shiv.

Rozmiar pliku jest bardzo ważny, ponieważ zawsze jest w głowie dokumentu HTML i blokuje pobieranie dodatkowych zasobów, aż do pełnego wykonania.

Ponieważ jest to potrzebne tylko dla starszych przeglądarek, używam następującego kodu:

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Możesz usunąć znaczniki HTML, których nie używasz, ale nie będzie można użyć pliku hostowanego w Google.

11
Emil 26 listopad 2011, 02:11

Możesz alternatywnie korzystać z modernizr, aby załadować określony plik, jeśli przeglądarka obsługuje określone funkcje CSS lub HTML5.

Puść, jeśli przeglądarka nie obsługuje "płótna" jako elementu HTML5 i "Fontface" jako właściwość CSS3

Modernizr.load({
test: Modernizr.fontface && Modernizr.canvas, // Test if the browser supports it or not
yep : '/path-to/html5-css3-attributes.css',  // If browser supports it, load this file
nope: '/path-to/old-css-attributes.css' // If NOT, load this instead
});

Możesz użyć .js także w stanie ścieżki pliku.

1
ElvinD 7 wrzesień 2013, 03:31