Новы метад Clearfix
Original on www.perishablepress.com
Развітайцеся з векавым і старым метадам clearfix і скажыце прывітанне новаму і палепшанаму метаду clearfix.
Метад Clearfix ці метад “лёгкай ачысткі” уяўляе сабой карысны метад выдалення непатрэбнай інфармацыі. Я пісаў пра гэты арыгінальны метад і нават прапанаваў некалькі яго паляпшэнняў. Арыгінальны метад clearfix выдатна працуе, але браўзары, што страцілі мэты або састарэлі, таксама на яго шляху. У прыватнасці, Internet Explorer 5 для Mac зараз ужо гісторыя, так што няма ніякіх падстаў турбавацца пры карыстанні метада clearfix ў працэсе ачысткі.
Арыгінальныя метады clearfix выглядаюць наступным чынам:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix { display: inline-table; }
/* Hides from IE-mac \*/
* html .clearfix { height: 1%; }
.clearfix { display: block; }
/* End hide from IE-mac */
Так, гэта брыдка, але працуе вельмі добра, дазваляючы дызайнерам прыбраць усе непатрэбнае, не хаваючы перапаўненні і налады шырыні (амаль) усё, каб атрымаць працу. Логіка гэтага метаду гучыць прыкладна так:
- Мэтавая сумяшчальнасць браўзараў з першым блокам дэкларацыі (калі ўсе браўзары былі стандартамі, гэта было б менавіта тое, што трэба) можа стварыць утоены блок ачысткі пасля ўтрымання мэтавых элементаў.
- Другая заява ставіцца да inline-tableуласнасці дысплея, вылучнага ў інтарэсах IE / Mac.
- На дадзены момант мы выкарыстоўваем зваротную касую рысу каментар-метада, каб схаваць пакінутую частку правіл з IE / Mac. Гэта дае нам магчымасць рабіць наступнае:
- Ужыванне1%росту толькі IE 6 для паказу hasLayout (што патрабуецца для метаду)
- Ужыцьdisplay:blockда ўсяго, акрамя IE / Mac
- Апошні радок з’яўляецца каментаром, які служыць для вызначэння метаду для IE / Mac
Як вы можаце бачыць, узнікае шмат шуму з-за браўзара, які не працаваў прынамсі апошнія тры ці чатыры гады.Ніхто больш не выкарыстоўвае IE / Mac, так што надышоў час адмовіцца ад clearfix. Вынікам з’яўляецца значна чысцейшы і больш эфектыўны кавалак CSS:
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */
Трэба адзначыць таксама, што IE / Mac чысціць рэчы проста выдатна. Звярніце ўвагу, што мы яшчэ больш палепшыць clearfix, дадаўшы падтрымку IE 7. IE 6 ці IE 7 падтрымка :after псеўда-класа выкарыстоўваюцца ў першай дэкларацыі, таму мы павінны шукаць альтэрнатыўны метад нанясення clearfix. Ужываючы zoom:1 любы вэб-аглядальнік, які выклікаецца IE, з’яўляецца ўласнасцю кампаніі hasLayout механізмаў, якая таксама працуе добра ў галіне ачысткі. Дзеля дасягнення мэтазгоднасці, вам неабходна зрабіць гэта з двума сапраўднымі браўзарамі, але вы павінны мець на ўвазе, што умоўныя каментары могуць паказываць рэкамендуемы шлях.
IE 8 таксама падтрымлівае :after псеўда-клас, так што гэты новы метад clearfix толькі стане больш простым, як IE6 , у канчатковым рахунку IE 7, нарэшце, адміраюць.
Вынік: новы спосаб ачысткі, які ўжываецца clearfix, кіруе стандартамі браўзараў, якія выкарыстоўваюць :after псеўда-клас. Для IE 6 і IE 7 новы метад clearfix выклікае hasLayout, характэрныя для CSS. Такім чынам, новы метад Clearfix таксама эфектыўна выконвае аперацыі ачысткі.
