www.romver.ru
/ / Internet Explorer 8



( )

Eti zametki napisani s to4ki zrenia veb-razrabot4ika i budut interesni prejde vsego verstal'6ikam HTML i CSS, programmistam JavaScript i pro4im texnologam klientskoy storoni.
V na4ale marta 2008, kak grom sredi asnogo neba, poavilas' pervaa beta-versia Internet Explorer 8. Razrabot4iki e6 v dekabre soob6ili v bloge, 4to noviy brauzer budet viderjivat' test Acid2, no vse prinali eto za rojdestvenskuu 6utku.
Daje teper', vida znamenituu rojicu Acid2 v okne brauzera, a ne mogu do konca v eto poverit'. Gde-to doljen bit' podvox.
Internet Explorer vsegda otli4alsa prenebrejeniem k veb-standartam. Eto bilo ego fundamental'noy osobennost'u i grajdanskoy poziciey. Bolee desati let Konsorcium W3C v pote lica koval specifikacii HTML, CSS i DOM. Al'ternativnie brauzeri, riskua zdorov'em i doley na rinke, vnedrali eti standarti do mel'4ay6ix detaley. A IE gromko 4ixal na tex i drugix, ostavaas' pri etom samim popularnim brauzerom.
I vot 4to-to u nix tam podvinulos'. IE 8 pretenduet na polnuu podderjku CSS 2.1. Re4' ne pro kakie-to otdel'nie svoystva i zna4enia, a pro ves' standart celikom. Eto potrasenie osnov i kul'turniy 6ok mirovogo mas6taba. 4to imenno takogo stra6nogo v CSS 2.1? Prejde vsego, tabli4nie zna4enia svoystva display table, table-cell, inline-table i drugie. Eto nastoa6aa al'ternativa tradicionnoy tabli4noy vrstke. V poslednie godi e bilo modno rugat', odnako v ka4estve zameni predlagalis' re6enia s obtekaemimi elementami (floats), kotorie bili e6 xuje. V samom dele, vse eti floati prednazna4eni imenno dla obtekania, i primenat' ix dla imitacii tabli4noy vrstki glupo i neeffektivno.
A vot tabli4nie zna4enia display po svoey prirode prednazna4eni rovno dla togo, dla 4ego ponine primenautsa oformitel'skie tablici HTML. Kogda brauzeri, ne podderjivau6ie vse eti table-cell, uydut v istoriu, togda i nastanet pora okon4atel'no otkazivat'sa ot tabli4noy vrstki v pol'zu CSS.
4tobi okon4atel'no zakrit' temu display, IE 8 podderjivaet e6 zna4enia run-in i inline-block. Pervoe iz nix ran'6e ne podderjivalos' nikak, a vtoroe rabotalo tak koravo, 4to lu46e bi ne rabotalo.
Vtoroy udar po CSS posle tabli4nix layoutov generiruemoe soderjanie. Eto psevdoelementi :before i :after, a takje svazannoe s nimi svoystvo content. Oni pozvolaut vstavit' soderjanie na veb-stranicu pramo iz tablici stiley. Razumnee vsego ispol'zovat' ix dla avtomati4eskoy numeracii i podobnix effektov. Kstati, dla numeracii IE 8 e6 podderjivaet svoystva counter-reset i counter-increment.
Voob6e govora, tablic CSS i generiruemogo soderjania vpolne xvatilo bi, 4tobi opravdat' vixod novoy versii brauzera. No eto tol'ko samoe na4alo.
Iz CSS 2.1 podderjivaetsa psevdoklass :focus, polezniy dla poley vvoda i pro4ix elementov upravlenia. Realizovano svoystvo outline, kotoroe sozdat ramku, no, v otli4ie ot border, ne vme6ivaetsa v model' oblastey. Dla tablic dobavilis' svoystva caption-side (razme6enie zagolovka nad tablicey ili pod ney) i border-spacing. Eto svoystvo pozvolaet uveli4it' zazor mejdu a4eykami tablici, dla 4ego ran'6e primenali atribut cellspacing. 4tobi ubrat' etot zazor, gramotnie ludi davnim-davno pi6ut border-collapse, a vot, naoborot, uveli4it' ego 4erez CSS bilo nevozmojno v prejnix versiax IE.
V tablicax stiley dla pe4ati teper' podderjivautsa svoystva page-break-inside (v dopolnenie k ranee vnedrnnim page-break-before i page-break-after), a takje widows i orphans. Poslednie svoystva pozvolaut ukazat', skol'ko strok dopustimo ostavit' na predidu6ey stranice ili perenesti na sleduu6uu.
V IE 8 ispravleni mnogie svoystva CSS, kotorie v prejnix versiax podderjivalis' 4erez pen'-kolodu. Likvidirovani izvestnie problemi s vne6nimi otstupami (margin) i obtekaemimi elementami. Popravleni svoystva z-index i text-decoration, dobavleni zna4enia white-space i list-style. V 4astnosti, teper' mojno numerovat' punkti spiska po-armanski ili po-gruzinski. Priznaytes', vi ved' davno etogo jdali?
Predidu6ee radikal'noe izmenenie podderjki CSS slu4ilos' v IE 6, xota teper' ono vigladit su6ey melo4'u po sravneniu s tem, 4to tvoritsa v vos'moy versii. Togda, 4tobi ne isportit' otobrajenie uje su6estvuu6ix saytov, v brauzere poavilos' pereklu4enie rejimov: starie sayti bez DOCTYPE otobrajalis' v rejime obratnoy sovmestimosti (kak v IE 5), a novie sayti s pravil'nim DOCTYPE otobrajalis' v rejime, priblijennom k standartam.
V IE 8 eta idea polu4ila neojidannoe prodoljenie. Teper' v brauzere ne dva, a tri rejima. Stranici s DOCTYPE otobrajautsa v super-standartnom rejime, gde dostupni srazu vse prelesti CSS 2.1. Stranici bez DOCTYPE otkrivautsa v tom je rejime obratnoy sovmestimosti, 4to vo vsex predidu6ix versiax. No est' i tretiy rejim, imitiruu6iy IE 7. Doljno bit', eto special'no dla takix saytov, kotorie pererosli peso4nicu IE 5, no e6 ne dostigli nirvani IE 8. Vpro4em, sozdatelam saytov pridtsa potrudit'sa, 4tobi zastavit' brauzer otobrajat' stranici v etom promejuto4nom rejime dla etogo nado podat' s veb-servera zagolovok X-UA-Compatible: IE=7 ili vstavit' v HTML element meta s analogi4nim nazna4eniem.
Brosiv vse sili na bor'bu s CSS, razrabot4iki IE 8 ne sil'no koncentrirovalis' na HTML i JavaScript, poetomu izmenenia v etix texnologiax ne vpe4atlaut. V HTML nov6estva kasautsa v osnovnom elementa object skladivaetsa vpe4atlenie, 4to ego povedenie special'no podgonali ne stol'ko pod standarti W3C, skol'ko pod test Acid2. Pobo4niy effekt etogo v tom, 4to teper' object mojno primenat' kak polnocennuu zamenu elementu img. Vpro4em, neasno, za4em eto mojet prigodit'sa.
V DOM slegka popravleni metodi getElementById(), getAttribute() i nekotorie drugie iz etoy je oboymi. Podderjivautsa novie svoystva contentDocument, ownerElement i metod hasAttribute(). Podrixtovana obrabotka otnositel'nix URL v zna4eniax atributov i svoystv. V ob6em, mnogo melkix texni4eskix popravok, iz-za kotorix nemalo skriptov na deystvuu6ix saytax perestanut korrektno rabotat' v IE 8.
E6 odin reverans v storonu Acid2 tak nazivaemie data URI, pozvolau6ie vstavit' izobrajenie v osobom formate pramo v kod HTML ili CSS. 4estno govora, a ne viju v etom nikakoy radosti. A ubejdn, 4to dannie raznoy prirodi lu46e xranit' v raznix faylax otdel'no HTML, otdel'no CSS, otdel'no izobrajenia, i tak dalee. Ot sme6ivania formatov v odnom kode tol'ko li6naa golovnaa bol' razrabot4ikov, osobenno esli formati takie raznie, kak HTML i, skajem, PNG. 4tobi u nas golova okon4atel'no po6la krugom, IE 8 predlagaet kompleks vstroennix sredstv razrabotki naslednikov koravovatogo Developer Toolbar. Eti sredstva pozvolat prosmatrivat' derevo dokumenta, otslejivat' polojenie i povedenie oblastey, issledovat' stili, a takje redaktirovat' vs eto pramo na jivoy stranice. Prilagaetsa otlad4ik JavaScript, o kotorom veb-razrabot4iki me4tali dolgie godi. Esli ran'6e stranici krivo otobrajalis' v IE, bilo nevozmojno razobrat'sa v pri4inax nepriatnostey. Teper', skoree vsego, stranici ne stanut lu46e otobrajat'sa, zato mi smojem to4no viasnit', po4emu eto proisxodit.
I eto e6 ne vse surprizi, kotorie prepodnosit IE 8. V pred6estvuu6ey versii brauzera nakonec-to vveli ob&ekt XMLHttpRequest, blagodara kotoromu stal vozmojen nastoa6iy, ko6erniy AJAX. Teper' tema AJAX razvivaetsa i oboga6aetsa novimi fioriturami. Popravleno povedenie knopki Nazad, kotoraa daje v ekstremal'no vebdvanol'nix prilojeniax rabotaet tak, kak ojidaut prostie pol'zovateli. Ulu46ena obrabotka zavis6ix ili oborvav6ixsa soedineniy. Usileni meri bezopasnosti, no vmeste s tem vvedeni sredstva obmena dannimi mejdu razli4nimi domenami.
Nakonec, poavilas' termoadernaa 6tukovina DOM Storage. Govora prostim azikom, eto vozmojnost' dla veb-prilojeniy soxranat' dannie na jstkom diske komp'utera. Ran'6e lubie popolznovenia v etom napravlenii jstko podavlalis' iz soobrajeniy bezopasnosti. V na6em rasporajenii bili tol'ko kucie cookies, metodi raboti s kotorimi napominali virezanie epi4eskix poem na risovom zerne.
A teper' privalilo s4ast'e. Mojno brat' neskol'ko megabayt na diske i pisat' tuda 4to ugodno, a potom kak ugodno 4itat' eto obratno. Ot neojidannosti daje ne o4en' ponatno, kak rasporadit'sa takoy mannoy nebesnoy. V ob6em, nov6estv v IE 8 vi6e kri6i. Ostatsa udivlat'sa, po4emu za celix pat' let posle vixoda IE 6 avtori brauzera sumeli vsego li6' napixat' v nego neskol'ko melkix zaplatok, a vsego za god posle IE 7 sozdali produkt, otli4au6iysa ot predidu6ey versii, kak oscillograf ot klepsidri.

Vpro4em, oni realizovali daleko ne vs, 4to xoteli bi videt' razrabot4iki saytov. Naprimer, al'ternativnie brauzeri davno podderjivaut istinniy XHTML (tip soderjania application/xhtml+xml), a v IE 8 pro nego ni sluxu ni duxu. Net takje ser'znix podvijek v oblasti DOM. Prejde vsego eto otnositsa k sobitiynoy modeli, gde tak i ne voplotilis' metodi vrode addEventListener() i mexanizm pereda4i sobitiy v funkciu-obrabot4ik. Ne realizovani SVG i MathML, kotorie 4asto upominautsa v lamentaciax lubiteley sovremennix texnologiy.
Zato IE otli4ilsa koe-4em, 4ego voob6e nikto ne ojidal. V nm podderjivaetsa ARIA. Vi daje ne znaete, 4to eto takoe, a ono podderjivaetsa. Sey4as poprobuu ob&asnit'.
Kak izvestno, HTML ne spravilsa s zada4ey polnocennoy semanti4eskoy razmetki dokumenta. Sozdateli saytov ispol'zuut elementi ne po pramomu nazna4eniu, a kak im udobnee tablici primenaut dla vrstki, iz divov delaut vipadau6ie spiski, konstruiruut samodel'nie elementi upravlenia. Poetomu po nazvaniu tega uje nikak nel'za sudit', kakuu funkciu na samom dele vipolnaet element.
Dla bor'bi s etim priduman atribut role, pozvolau6iy obozna4it' etu funkciu. Naprimer, esli iz elementa span s pomo6'u JavaScript sdelan polzunok, emu mojno prisvoit' atribut role="slider", i togda daje pri nedostupnom JavaScript brauzer poymt, v 4m smisl etogo spana.
Vmeste s naborom roley vnedreni nekotorie svoystva DOM, obozna4au6ie ka4estva i sostoanie elementov skajem, ariaReadonly, ariaRequired i ariaSelected. Poka eto vs vigladit, kak e6 odna texnologia razmetki, parallel'naa HTML. Ne o4en' ponatno, kakaa ot etogo mojet bit' prakti4eskaa pol'za dumau, tol'ko dobavitsa nerazberixi. Vpro4em, vrema pokajet.
Nu i, nakonec, moa lubimaa osobennost' IE 8 ulu46ennoe mas6tabirovanie stranici. V IE 6 iz podobnix sredstv bila tol'ko funkcia izmenenia razmera 6rifta, kotoraa vizivalas' iz menu ili s pomo6'u Ctrl i kolsika mi6i. Pri etom ne uveli4ivalis' 6rifti, razmeri kotorix zadani v pikselax i drugix fiksirovannix edinicax. V IE 7 regulirovka 6rifta ostalas' v menu, a Ctrl + kolsiko stalo privodit' k jutkomu razlapivaniu vsey stranici i idiotskoy gorizontal'noy prokrutke. Eto nazivalos' Page Zoom.
K vos'moy versii razrabot4iki ponali, 4to takoy mexanizm polniy marazm, i sdelali po-nastoa6emu effektivnoe mas6tabirovanie. Teper' po Ctrl + kolsiko stranica akkuratno zoomitsa i komfortno perestraivaetsa, ne vilezaa za bokovie granici okna. I, nakonec-to, pri etom uveli4ivautsa vse 6rifti, daje te, razmeri kotorix zadani v pikselax. Za eto mo otdel'noe spasibo komande razrabotki IE 8.
Budem s neterpeniem jdat' vtoroy beta-versii. Pro ne a toje 4to-nibud' napi6u.

Rostislav 4ebikin (GK Element)
3
  ,
:
. +7(98I) 7608865

e-mail
icq 415547094  romver  mail.ru  romverinbox.ru
1997 - 2022 romver.ru

Display Pagerank