Atunci când se utilizează aspectul semantic, fiecare dezvoltator va întâlni în mod inevitabil probleme de browser încrucișat, a căror soluționare în majoritatea cazurilor este necesară utilizarea așa-numitelor "hacks". De obicei, acest termen înseamnă o modalitate specială de scriere a selectorilor sau a regulilor, înțeleasă numai de un anumit browser. Cu toate acestea, compatibilitatea cu CSS în majoritatea browserelor a atins deja un nivel în care ar trebui să limitați utilizarea "hacks".
De obicei, principala sursă de probleme este Internet Explorer. Varietatea erorilor în implementarea CSS în browserele Microsoft surprinde chiar și cei mai experimentați designeri de layout. În acest context, există situații în care este necesar să se utilizeze reguli suplimentare sau alternative pentru IE. În astfel de cazuri, se recomandă utilizarea "hacks". Dacă aveți nevoie brusc de alte reguli, să spuneți, numai pentru Firefox, atunci este recomandat să vă revizuiți codul și în 99% din cazuri veți găsi o soluție mai elegantă.
Cea mai populară hack pentru astăzi este așa-numitul "html hack":
În documente valabile HTML și XHMTL, selectorul HTML joacă întotdeauna rolul unui element rădăcină, iar BODY este un descendent al primului nivel, dar nu al unui nivel secund sau superior. Astfel, teoretic, selectorul "* HTML" nu ar trebui să fie aplicat nici unui element. Dar, în practică, versiunile IE a cincea și a șasea, din cauza unei erori în propriul motor, interpretează acest selector ca HTML și aplică regulile specificate. Din moment ce alte browsere moderne selectorul "* HTML" ignoră, această tehnică poate fi utilizată în scopuri egoiste. Acest lucru este util, dar nu?
Cum se face un antet al site-ului
În ciuda faptului că acest hack este corectă din punct de vedere al CSS standardului, există un număr de nuanțe negative.
În primul rând, cuvântul "hack" sună ciudat, iar dezvoltatorul nu-i place deja.
În al doilea rând, astfel de hacks pentru browser-ul Internet Explorer înfundă codul, încărcat și toate celelalte browsere.
Cum pot bloca Internet Explorer fără a folosi hacks?
Producție alternativă
Astfel, toate hack-urile noastre pot fi redate într-un fișier separat:
Vă recomandăm să citiți Yandex.School of webmasters
Materiale pentru studiu:
Taming Internet Explorer sau "reguli minunate"
După cum sa menționat deja mai sus, majoritatea problemelor sunt aduse în browserul web de browserele Microsoft. Cum se adaugă reguli separate numai pentru Internet Explorer, știți deja. Acum, ia în considerare ce reguli ne pot ajuta cu descurajarea IE.
- Lista IE / Win Disapare List-Bug de fundal
- IE6 Chaos de frontieră
Această regulă este adesea folosită și pentru blocurile spontane lipsă. Nu se încadrează sau funcționează defectuos, și anume dispariția. Mai ales păcatele din Internet Explorer 5.0.
- IE6 Trei Pixel Text-Jog
- IE Escaping Floats Bug
- IE și italice (fiți atent cu 5.0, utilizați ecranare)
- IE / Win Bug de conținut nedeclarat
- IE / Win Ghilotină Bug
- Proporții ciudate în modelul de formatare vizuală al IE6
Este de asemenea utilizat pentru tăierea elementelor. Setați-l la un container care conține flotoare.
- Plute, Margini și IE
- IE a dublat flota-margina bug
Vă recomandăm să citiți Cum se schimbă culoarea marcajului listei html
- Proporții ciudate în modelul de formatare vizuală al IE6
- Înălțimea analogică: 1% pentru IE 7.
Și câteva sfaturi:
În primul rând, folosiți aceste reguli ca posibil numai pentru IE. Și pentru versiuni diferite ale soluției pot fi diferite (mai des se referă la înălțimea: 1% și zoom: 1).
În al doilea rând, se confruntă cu comportamentul nedorit al Explorer, care nu are nici o explicație documentată (sau pur si simplu prea leneș să-l caute) - să încerce să se aplice în mod succesiv la elementul problematic al tuturor normelor care afectează proprietatea hasLayout. O metodă atentă de căutare este adesea folosită în profesia noastră.
Materiale pentru studiu: