Scopul acestui articol nu este un cititor de alimentare 100% exhaustivă fapte, reguli, definiții, cauze și modalități de a elimina bug-uri legate de proprietatea hasLayout, ca astfel de informații a existat mult timp, și trimiterile la aceasta sunt la sfârșitul postului.
Dimpotrivă, în acest articol ne vom uita la hasLayout proprietate din partea practică, uita-te la ochii lui bulbucați codificator înmărmurit după, a pus pe site-ul pe baza plutitoare (float) model pentru Gecko și alte browsere normale, el a descoperit în IE6)).
Deci, merită să începem cu faptul că proprietatea hasLayout este o proprietate nativă (programatori puțin amuzanți, eroarea experimentelor lor genetice) ale browserului Internet Explorer!
Adică, dacă tu, ca respectând pe deplin codificator, și a decis că o astfel de browser-ul ca IE nu merită atenția prețioase și nervi care sub ea impune - puteți închide fila și căutare pe Internet pentru articole cu privire la modul de a alinia conținutul celulelor de masă pe verticală.
Dacă se întâmplă să fie o minoritate, care a apărut, cred eu, cu prima versiune a IE și numit „inteligente codor» ( «html-coder erectus» sau ceva de genul asta într-o traducere din limba latină) - va continua.
Conform traducerii oficiale a unui articol pe această proprietate: hasLayout - «poziționare“ de proprietate, care este o caracteristică prioritate a IE / câștige și determină modul în care elementele de pe o pagină interacționează unele cu altele (calculat), răspunde la evenimente, trase.
Ce ne interesează această proprietate? Da, deoarece datorită aplicației sale corecte, puteți repara majoritatea absolută a bug-urilor Internet Explorer! În plus, ajută adesea la rezolvarea problemelor legate de utilizarea modelului float pentru IE6 (în IE7, de asemenea, nu este totul neted, dar este destul de tolerabil), dar fiecare coder nu visa despre asta?
Proprietatea hasLayout este atribuită în mod implicit anumitor elemente ale documentului:
- ,
,
, , - ,
pe celelalte este absent și poate fi stabilit cu ajutorul unor recepții.
Lista tehnicilor care cel mai adesea ajută în practica mea (lista completă în documentația off-line):
- setați elementul la o lățime sau înălțime fixă (lățime / înălțime: valoare), în funcție de situație (lățime / înălțime: 1% - adesea ajută la recepție).
- încă nu a ajutat? Încercați primul în combinație cu supraîncărcare: ascuns. Această combinație poate remedia situația numai pentru IE7, deoarece numai în această versiune a motorului IE proprietatea de depășire a fost setată pe elementul hasLayout. Ajută nu mai puțin.
- încercați zoom: 1! important property. În general, zoom-ul proprietății (scară) este creat pentru browsere, în scopul, respectiv, de a scala elemente, mai degrabă decât de a instala hasLayout. Dar, din moment ce în vârstă de browsere, care ei scară orice nimic, iar valorile sunt treptat schimbat la scris în px în loc de em, această proprietate nu a găsit nici o aplicație practică, atunci este folosit pentru fixarea IE.
Notă: se întâmplă de multe ori că IE atrage incorect elemente din cauza cuiburilor lor mari. Pur și simplu puneți, într-o anumită etapă, dimensiunile potrivite pentru unul dintre elementele închise pot fi pierdute și apoi, firește, totul se încurcă. În astfel de cazuri, este necesar să se determine în mod experimental la ce pas are loc un calcul incorect al elementelor și să se atribuie elementului-culprit la zoom: 1! care, apropo, este echivalentă cu înregistrarea zoom: 100%! important
- min / max-height / width: valoarea va funcționa, desigur, numai pentru IE7, dar aceasta este cel puțin jumătate din probleme
- pozitie: fixa, pozitie: absoluta. În IE, există un bug mai amuzant pe care îl voi descrie într-unul dintre posturi și pe care am reușit să-l corectez datorită utilizării poziționării absolute. Adevărul aici va trebui totuși să transpire, să se gândească la ce să stea un relativ, dar, în orice caz, situația este rezolvabilă.
Se crede că proprietatea inerentă elementului hasLayout dacă parametrul său, care poate fi verificată folosind expresia: „(element_id„hasLayout = document.getElementById)“adevărat« și invers, în cazul în care acest parametru este setat.»Fals“.
Este ușor să resetați proprietatea hasLayout dacă atribuiți valori implicite (implicite) la proprietățile css de mai sus: position: static, width / height: auto, de exemplu.
Cel mai bun, dar, din păcate, nu cel mai adevărat instrument în lupta împotriva aspectului spart în browser-ul IE este Bara de instrumente IE Developer. descărcând asta. site-ul.
Și acum, așa cum am promis, există puțină practică. Să presupunem că ați făcut o pagină care apare perfect în FF, Opera, Safari, Chrome, dar IE nu renunță la repetarea tuturor lucrurilor pentru semeni. În acest caz, dacă sunteți absolut sigură că problema nu este în eticheta banală neclarată și setarea incorectă a valorilor, la care primele 4 browsere își pot închide ochii, atunci încercați să experimentați cu hasLayout.
Notă: În cazul în care ceva nu este atât în IE7, te sfătuiesc să nu tărăgăneze verifica aceeași „distracție“ în IE6, deoarece atât browser-ul într-o mare (dar nu toate!) Numărul de cazuri repeta aceleași greșeli.
Apoi, asigurându-vă că săgeata este activă, vom selecta elementul de interes prin aceasta și în câmpul pentru introducerea valorilor putem atribui orice proprietate interesantă pentru acest element sau vom modifica valorile proprietăților deja existente. Trecem prin punctele din lista modurilor de instalare a hasLayout în 'true'. experiment, în general. Și dacă în acest stadiu ați făcut totul corect și eroarea a fost în poziționarea greșită în IE, atunci veți fi fericiți!
Programul are, în general, multe oportunități, cu care vă recomand să vă înțelegeți.
În sfârșit, legăturile care mi-au ajutat să scriu acest material și pentru care puteți găsi mai multe informații detaliate (care nu înseamnă mai accesibile) despre proprietatea hasLayout:
- nikolas_ sharp. @ În regulă, este corect. Timp de 4 ani, cred că, oricum doream, au dormit ochelari de culoarea trandafirului. Ideea pentru cei ignoranți (mă pocăiesc, sa.
- Vasile. Tot așa cum suckers suge și apoi spune și să facem o limită pentru mai mult și mai mult și pentru a obține un dolar virtuale. Și acum nici nu pot fi tipărite.
- Vasile. Nu vă faceți griji, acest Bitcoin nu are niciun preț în viitor. Cel puțin, ce reprezintă el? Da, la fel ca și Dolarul, nimic. Acest bitcoin este doar o conversie.
- nikolas_ sharp. Actualizați postul cu o revizuire a scaunului după 6 ani.
- Mikhail. Sunt de acord că tot ce se face pe internet: dacă este vorba despre un blog, o resursă cognitivă, știri. în 99% este redus la monetizare. Dacă un site este creat pentru int.
Articole similare