div-ове срещу таблици

Публикувано / posted 2009-01-07 в категория / in category: Web development, Некои съображения
  

В последните дни съм се заел да "набивам чивиите" на разни стари сайтове и да ги приведа в по-опрятен вид както е по устав (W3C). То не бяха изчистване на елементарни грешки от типа на <br> вместо <br />, липсващи alt на images, липсващи затварящи тагове и т.н. В крайна сметка борбата беше успешна и сега сайтовете "светят зелено" в HTML Validator-а (SGML режим). Покрай цялото това упражнение за пореден път се замислих дали да не ги пренарежа с div-ове вместо с таблици. Седях и мислих, седях и мислих и по едно време гледам -- само седя… В крайна сметка се отказах от идеята -- все още мисля, че не му е дошло времето на div-овете поради следните "некои съображения":

  1. Макар да не е отскоро -- доживяхме момента в който повечето броузери рендват по почти един и същ начин дизайни направени с таблици. Отдавна режем по този начин и сме натрупали доста опит и знания. Ако се съмнявате, че е кой знай какво -- опитайте се да обясните на някой новобранец как да нареже сайт с таблици така, че да изглежда навсякъде еднакво. Ще се шашнете колко дреболии изкачат и че не могат да бъдат изброени набързо. Да се изхвърли цялото това знание в тоалетната само защото, видиш ли, има div-ове, ми се струва неоправдано;
  2. Някои базови неща не могат да се направят (поне от мен) с div-ове без да се използват css хакове. Най-добрия пример за това е сайта да е винаги със 100% височина независимо дали е е "по-къс". Идеята е footer-a да излиза залепен за долната част на броузера дори, когато няма достатъчно контент, който да го избута надолу. Някой може да попита: "Какво им е лошото на css хаковете?". Някой може да отговори: "Елементарно Уотсън, дори да работят под всички таргет броузери (IE, FF, Chrome, Safari, Opera (което рядко е случая)) ще мине време, ще излязат нови версии и там вече е много вероятно да не работят или поне не по очаквания начин. Много е неприятно, когато след 1-2 години клиент се обади и каже "Сайта ми не работи". Започваш да ровиш и в крайна сметка се оказва, че просто той го гледа с нова версия и се налага да променяш кода, за да се оправят нещата. Обаче то не е толкова просто -- оправиш едно, то друго се счупи.". Накратко казано: използването на css хакове затруднява и оскъпява поддръжката. Да се счупи един сайт -- е, може да се преглътне. Обаче ако се счупят 20-30 сайта, които сте направили в последните 1-2 години преди да излезе новата версия на дадения броузер -- тогава е кошмар.
  3. Феновете на div-ове нерядко са толкова надъхани, че изглеждат като крайно радикални ислямски фундаменталисти. Сама по себе си всяка крайност ме дразни и когато някой такъв агент започне да ми излага валидни и невалидни доводи в подкрепа на div-овете се получава така, че само защото ми лази по нервите съм склонен да съм настроен негативно. Такива пичове са успели на чисто емоционално ниво да ме отплъснат от идеята за ползване на div-ове поради три причини:
    • злоупотреба с div-ове -- използване на абсолютни позиции за div-ове без основателна причина (в момента не мога да се сетя за основателна такава). А бре неразумни юроди! Нали на div-овете идеята им е да се подобри информационната структура на документа, а и да се елиминират всичките задавания на абсолютни стойности за височини, широчини и т.н.?!
    • преиграване с div-ове -- използването на div-ове на места, където трябва да се използва таблица е най-добрия пример. Господа радикали, когато имаме таблична информация не е "грях" да се използва <table>. Няма да горите в ада, споко :-). Друг подобен пример е, че понякога  div-ове се използват на места, където един span би бил достатъчен.
    • даването на примери от типа CSS Zen Garden -- да, разкошен сайт е, структурата на документа е перфектна, но… това просто е проект от тип домашен любимец -- някой го е хванал и го е изпипал на макс, като за това е отделил много време и внимание. Истински "боен" сайт, който се е развивал във времето и който е трябвало да поеме безумните (и късно изказани) капризи по отношение на дизайна от страна на клиента и гаврите на няколко поколения програмисти и дизайнери, не може да изглежда така (поне не и без това да струва безумно скъпо).
  4. Разработката и поддръжката на сайт направен с таблици е по-евтина. Обяснението за това е, че все още хората, които имат опит с таблици са повече от тези, които имат опит с div-ове. Много е хубаво да се направи един изчистен сайт с div-ове (и аз съм голям фен на идеята, когато работя по мои лични проекти), но когато става въпрос за сайт за клиенти се сещам за един цитат от книгите на Тери Прачет, където лорд Ветинари попита: "А кой ще плати за това моля?"
Вероятно ще дойде време, когато различните "марки" броузери, ще рендват по почти идентичен начин сайтове нарязани с div-ове, така както го правят сега с таблиците. На мен лично ми се иска това да стане по-скоро, но за съжаление, силно се съмнявам.

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Внимание: Моля, въведете само ПЪРВИТЕ ТРИ цифри от картинката
Important: Please enter just the first three digits from the image