Nu orice caracteristică HTML5 sau CSS3 are suport browser extins, firește. Pentru a compensa acest lucru, dezvoltatorii întreprinzători au creat o serie de instrumente care vă permit să utilizați aceste tehnologii astăzi, fără a lăsa în urmă utilizatorii care trăiesc încă în epoca de piatră.
Vestea bună este că, cu excepția Internet Explorer, puteți crea mai multă marcă semantică utilizând noile elemente HTML5 - chiar și în browserele care nu le suportă oficial. Nu uitați să setați modul de afișare corect: bloc
. Următorul fragment ar trebui să facă referire la toate elementele necesare:
articol, deoparte, detalii, figcaption, figura, subsol, header, hgroup, meniu, nav, secțiune display: block;
Implementarea multor soluții din acest tutorial implică includerea unor JavaScript pentru anumite versiuni de Internet Explorer. Iată o prezentare generală rapidă: expresia test este inclusă în paranteze pătrate. Putem verifica versiuni sau versiuni specifice deasupra sau sub o versiune declarată. lt
și gt
însemna mai putin decat și mai mare ca, respectiv, în timp ce lte
și GTE
însemna mai mică sau egală cu și mai mare sau egal cu.
Iată câteva exemple rapide:
[dacă IE 6]
Verifică dacă browserul este Internet Explorer 6.
[dacă GT IE 6]
Verifică o versiune a Internet Explorer mai mare decât 6.
În orice IE, cu excepția celei mai recente versiuni (IE9), nu puteți aplica stiluri elementelor pe care browserul nu le recunoaște. Elementele HTML5 spiffice noi, în toată gloria lor, sunt imperceptibile de regulile CSS în acel mediu. Acesta este locul în care html5shiv (numit uneori html5 shim) al lui Remy Sharp vine la salvare. Pur și simplu includeți-l în pagina dvs. și veți putea să stylizați perfect noile elemente HTML5.
Observați cum comentariile condiționale încarcă doar codul html5shiv cu condiția ca versiunea Internet Explorer să fie mai mică de 9. Alte browsere, cum ar fi Firefox și Chrome, vor ignora și această etichetă și nu vor executa scriptul, salvând astfel lățimea de bandă.
html5 shiv se bazează pe o soluție simplă: direcționează IE să creeze elementele cu JavaScript (acestea nu trebuie nici măcar să fie introduse în DOM).
document.createElement ( 'header');
În acest moment, ele pot fi personalizate în mod normal. În plus, cele mai recente versiuni integrează IE Print Protector, care stabilește o eroare în cazul în care elementele HTML5 dispar la imprimarea paginii ...
Modernizr vă permite să furnizați stil de "backup" în browsere care nu acceptă anumite caracteristici HTML5 și CSS3.
Modernizr este probabil cel mai cunoscut dintre aceste instrumente, dar este, de asemenea, destul de greșit înțeles (numele nu ajută). Luați o respirație profundă: spre deosebire de concepția greșită a populației, Modernizr face acest lucru nu activați funcționalitățile HTML5 și CSS3 în browserele care nu le suportă (deși face includeți html5shiv pentru a vă permite să utilizați elemente HTML5 în IE < 9).
În afară de funcționalitatea html5shiv, Modernizr face doar un lucru și un singur lucru: rulează o serie de teste de detectare a funcțiilor când este încărcat și apoi inserează rezultatele în
clasă
atributuletichetă.
Scopul principal al lui Modernizr este să vă permită să oferiți stil de "backup" în browsere care nu acceptă anumite caracteristici HTML5 și CSS3. Acest lucru este oarecum diferit de degradarea grațioasă tradițională, unde folosim același stil CSS în toate browserele și apoi proiectăm astfel încât, atunci când lipsesc anumite capacități, rezultatul este încă acceptabil.
Acum pentru un exemplu de funcționare a Modernizr: dacă un browser acceptă border-radius
si coloană-count
proprietate, vor fi aplicate următoarele clase:
Pe de altă parte, dacă aceleași proprietăți nu sunt acceptate - de exemplu, în IE7 - veți găsi:
În acest moment, puteți utiliza aceste clase pentru a aplica un stil unic în browsere cu diferite capabilități. De exemplu, dacă doriți să aplicați un alt stil unui paragraf, în funcție de faptul dacă sunt acceptate coloanele CSS, puteți face următoarele:
.csscolumns p / * Stil când coloanele sunt disponibile * / .no-csscolumns p / * Stil când coloanele nu sunt disponibile * /
Dacă un browser nu acceptă coloane, .csscolumns
clasa nu va fi prezentă în organism și browserul nu va avea niciodată șansa de a aplica regula care o folosește.
Unii ar putea obiecta că acest lucru ne aduce înapoi la vechile vremuri de construire a unui site diferit pentru fiecare browser. Este adevărat că nimic nu vă oprește să scrieți atât de multe declarații de stil care utilizează funcții CSS3 avansate, că foaia de stil devine practic goală atunci când aceste reguli nu pot fi aplicate.
Dacă doriți să utilizați Modernizr într-un mod care are sens, trebuie să vă bazați pe talentul dvs. de design pentru a concepe stiluri alternative care nu rupe designul și nu necesită aruncarea restului foii de stil. De exemplu, este posibil să încercați să înlocuiți umbrele picăturilor cu litere, atunci când acestea nu sunt disponibile, cu o caractere aldine sau cu o culoare diferită.
Pentru a utiliza Modernizr, includeți fișierul minificat și aplicați o clasă de no-js
la element. Această ultimă măsură de precauție vă permite să furnizați stiluri atunci când JavaScript este dezactivat complet; evident, în aceste cazuri, Modernizr nu vă poate ajuta deloc. Dacă JavaScript este activat, Modernizr va lansa și va înlocui
no-js
cu rezultatele operațiunilor sale de detectare a caracteristicilor.
...
Dacă sunteți dispus să acceptați că toate site-urile web nu trebuie să fie afișate în mod identic în toate browserele, veți descoperi că Modernizr este un instrument esențial în centura dvs. dev dev!
Pe aceeași notă, designerul Andy Clarke a conceput o soluție elegantă pentru rezolvarea lipsei de respectare standard a IE6. Numit "Universal IE6", această foaie de stil se concentrează exclusiv pe tipografie. Cheia este de a folosi comentarii condiționate pentru a ascunde toate celelalte foi de stil de la IE 6.
/ * Foile de stil pentru alte browsere decât Internet Explorer 6 * /
Notă importantă: Nu uitați să includeți cea mai recentă versiune, deoarece instrucțiunile pentru cele vechi plutesc încă în jurul web-ului. Rezultatele finale arată astfel:
Aveți de lucru la zero pentru a sprijini IE 6 pe un nou site.
Această abordare are un avantaj destul de evident în comparație cu foile de stil clasice alternative: aveți de lucru la zero pentru a sprijini IE 6 pe un nou site. Dezavantajul, desigur, este că site-ul afișează foarte puțin din designul dvs. Mai mult, fundațiile HTML trebuie, de asemenea, să fie solide, pentru ca pagina să poată fi utilizată chiar și cu cele mai multe stiluri dezactivate.
Rețineți că CSS universal IE6 nu include niciun stil pentru elementele care utilizează numai HTML5, cum ar fi sau
. Nu este o problemă dacă nu vă bazați exclusiv pe acele elemente pentru a obține afișarea nivelului de bloc pentru anumite părți ale paginii. În general, întotdeauna vă întindeți textul cel puțin într-un element de paragraf sau listă.
Această soluție nu este în mod evident pentru toată lumea și puteți găsi clienți care nu sunt de acord cu site-ul lor în căutarea spartcând este privit în IE6.
S-ar putea argumenta, de asemenea, că, în acest moment, puteți la fel de bine să renunțe la suportul IE6 în întregime. Andy Clarke și-a rezumat răspunsurile la aceste obiecții aici.
Această abordare funcționează cel mai bine pentru site-uri centrate pe conținut și catastrofale pentru aplicațiile web; dar din nou, construirea unei aplicații web moderne care să funcționeze bine pe IE 6 reprezintă o provocare în sine.
Următorul nostru campion este un utilitar JavaScript care are ca scop introducerea de noi capabilități în browserele mai vechi (bine, de fapt doar IE 6-8): Selectivizr funcționează în tandem cu alte biblioteci JavaScript cum ar fi jQuery, Dojo sau MooTools pentru a adăuga suport pentru o gamă mai mare de avansate selectori CSS.
Am enumerat câteva exemple de mai jos, deși rețineți că lista completă a capabilităților va depinde de biblioteca JavaScript preferată.
:planare
: focus
:primul copil
:ultimul copil
:prima linie
:prima literă
Pentru a utiliza Selectivizr, descărcați-l din pagina de pornire și includeți-l în pagina dvs. de pornire , împreună cu una dintre bibliotecile de sprijin. Iată un exemplu cu jQuery:
Selectivizr funcționează în tandem cu alte biblioteci JavaScript pentru a oferi suport CSS3 pentru IE 6-8.
Acest punct este foarte important: selectivizatorul nu poate lucra singur; cere ca biblioteca preferată să fie prezentă. Din fericire, este compatibil cu marea majoritate a bibliotecilor JavaScript populare. Există șanse, dacă utilizați JavaScript pe site-ul dvs., probabil că aveți deja o bibliotecă adecvată.
Pe de altă parte, dacă nu veți folosi și o bibliotecă, o soluție alternativă este să utilizați DOMAssistant cu greutate redusă, deși ați putea prefera în continuare biblioteca dvs. JavaScript obișnuită pentru o mai mare ușurință în gestionarea fișierelor.
Fiți atenți, totuși, deoarece selectorii precisi pe care Selectivizr le pune la dispoziție depind de ce bibliotecă de suport este aleasă. Potrivit paginii de pornire, acum cea mai mare gamă de selectori este disponibilă cu MooTools, în timp ce, din păcate, jQuery face cel mai mic număr de selectori disponibili. Trebuie de asemenea să spunem că unii dintre selectorii care nu sunt disponibili cu jQuery sunt destul de exotici și rareori utilizați în lumea reală. Consultați articolul nostru "30 CSS Selectorii pe care trebuie să-l memorați" pentru o listă completă a selectorilor.
Așa cum se întâmplă, cu majoritatea soluțiilor JavaScript pentru problemele CSS, se aplică anumite restricții.
element pentru a include foile de stil (spre deosebire de
).CSS3Pie îmbunătățește, de asemenea, capabilitățile [6-8] ale Internet Explorer, dar într-un mod mult mai nativ, deoarece permite efectiv utilizarea unui număr de proprietăți CSS3 spiffice, cum ar fi raza de graniță, gradientul liniar, umbra în cutie, imaginea de frontieră
precum și adaugă suport pentru fundaluri multiple. Utilizați CSS3Pie și spuneți la revedere în colțuri rotunjite și poziționate manual.
CSS3Pie: spuneți la revedere în colțuri rotunjite și așezate manual.
Modul în care funcționează este prin utilizarea unor extensii majore cunoscute de Microsoft: CSS comportament
proprietățile și fișierele HTML (documentația oficială). Această extensie vă permite să atașați JavaScript la anumite elemente HTML folosind CSS. JavaScript este inclus împreună cu unele etichete de proprietate Microsoft, în .htc
fișiere care sunt menționate în cadrul regulilor de stil.
Din acest motiv, mulți dezvoltatori ar putea susține că nu ar trebui să utilizați CSS3Pie. Etichetele proprietare ale Internet Explorer sunt performante grele și produc ieșire mai puțin atractivă.
De ce CSS3Pie nu utilizează JavaScript simplu? Ei bine, există o versiune specifică JS, deși echipa sfătuiește împotriva utilizării sale, datorită faptului că JavaScript blochează parsarea paginii.
Cu curentul .htc
soluția, implementarea este destul de simplă: trebuie doar să încărcați un singur fișier din distribuția CSS3Pie, PIE.htc
, la serverul dvs. Ulterior, de fiecare dată când utilizați una dintre proprietățile CSS3 acceptate, adăugați codul de mai jos:
comportament: url (cale / către / PIE.htc);
De mai sus, calea / catre / PIE.htc
este calea, în raport cu fișierul HTML care este difuzat; nu foaia de stil.
Desigur, CSS3Pie își poate face numai magia în Internet Explorer. De asemenea, are nevoie de un pic de îngrijire și hrănire pe partea serverului:
PIE.htc
fișierul este difuzat cu text / x-component
tipul de conținut. Distribuția include un script PHP care poate avea grijă de acest lucru dacă nu aveți permisiunea de a modifica configurația serverului dvs., de exemplu pe o gazdă comună. PIE.htc
poate de asemenea să declanșeze avertismente ActiveX, de obicei atunci când îl testați pe localhost. Această ultimă problemă necesită rezolvarea soluției Mark of the Web.CSS3Pie este încă, în momentul acestei scrieri, în modul beta - deoarece există încă niște clipsuri care trebuie eliminate.
Șablonul HTML5 Boilerplate merge mult mai departe decât șabloanele de pornire standard.
Șablonul HTML5 Boilerplate poate fi descris ca un set de șabloane pentru a vă ajuta să începeți să construiți site-uri HTML5 moderne cât mai repede posibil. Butonul HTML5 Boilerplate merge mult mai departe decât șabloanele dvs. de pornire standard.
De exemplu, acesta îmbină ultima versiune a Modernizr (același creator) și linkurile HTML chiar și cu cele mai recente script-uri jQuery găzduite de Google, profiler Yahoo și Google Analytics. CSS conține regulile obișnuite de resetare, dar și o multitudine de interogări @media pentru a vă face să începeți cu un design web receptiv care vizează dispozitive mobile.
Caracteristica cea mai unica este ca, in partea de sus a configuratiei clientului, veti obtine si serverul: fisiere de configurare pentru Apache si Nginx. Acest lucru vă permite să maximizați vitezele de descărcare și să optimizați livrarea video HTML5. În special, .htaccess fișierele pentru Apache ar putea fi foarte convenabil să scadă într-un cont de găzduire partajat, de multe ori lucruri similare gzip
compresie și expiră
nu sunt activate în mod implicit.
Unii oameni ar putea argumenta faptul că HTML5 Boilerplate ia prea multe decizii pentru ele (iad, configurația Apache rulează chiar în mod automat pe www în fața numelui de domeniu!) Sau că este oarecum centrată pe Google, totuși, este întotdeauna interesantă pentru a studia fișierele și pentru a găsi ce probleme au anticipat autorii.
Mai mult, cu siguranță sunteți încurajați să o descompuneți pentru nevoile dvs. personale. Aceasta este pur și simplu o boilerplate pentru a începe.
Dacă doriți o detaliere detaliată a ceea ce include HTML5 Boilerplate, Paul Irish a înregistrat un ecran exclusiv pentru Nettuts+.
O versiune complet comentată este disponibilă la html5boilerplate.com.
Adesea, teama de a implementa caracteristici care nu beneficiază de suport complet de la browser îi descurajează pe designeri să adopte cele mai noi tehnologii. Deși demografia publicului dvs. trebuie luată în considerare cu atenție, precum și dorințele clientului dvs., dacă acceptați faptul că site-urile nu trebuie să arate la fel în toate browserele, este posibil să utilizați pe deplin astăzi codurile HTML5 și CSS3.
Gândiți-vă la acest lucru: dacă așteptați până când CSS3 "va fi complet", veți aștepta pentru totdeauna. CSS2 nu este suportat chiar pe toate browserele încă! Principiul călăuzitor aici este că fiecare utilizator ar trebui să primească cel mai mult bang pentru buck-ul său: dacă folosește un browser de sânge margine, de ce să nu profite de toate caracteristicile oferite de browser?
Spuneți-ne ce părere aveți despre aceste probleme în comentariile dvs. Vă mulțumesc foarte mult pentru lectură!