вторник, 21 ноември 2006 г.

Firefox vs. Internet Explorer


Въодушевена от Антония, реших да подобря изгледа на блога, но този път не успях. Исках да намаля размера на шрифта в сайдбара, за да не се скролва толкова и неочаквано успях само за Internet Explorer, във Firefox размерът си оставаше същият. Как ли не опитвах - не и не! Същото става с центрирането на описанието на блога - с IE става, с FF не. Още един проблем срещам с FF - понякога отказва да пуска постовете или да ъплоудва картинките с някакви странни съобщения, които забравих, защото от доста време започнах да използвам IE за писане в блога. Отявлен фен съм на огнената лисица, съответно хейтър на експлодъра, но май трябва да призная, че и лиско не е съвършен. Не ми се вярва да е бъг в бета версията на Blogger, макар че знам ли... не разбирам дотам, че да преценя.

Намерих как да махна навбара, че ме дразнеше, а вместо полето му за търсене в блога сложих това на Technorati. Сложих и карта на посещенията, но тя още не е активна.

Edit: Ух, че съм проста :( Като написах горното, реших пак да почовъркам кода и успях да центрирам описанието на блога и да намаля размера на фонта в сайдбара. Лиско не ми е виновен, а моето незнание на CSS. Обаче защо експлодърът интерпретираше правилно грешния ми код, ей това не мога да разбера. А за ъплоуда и писането ще трябва пак да проверя, може да е било бъг и да са го оправили.

4 коментара:

Анонимен каза...

Всичко опира до няколко неща свързани преди всичко с уеб стандарти.

Историята накратко:
World Wide Web Consortium известен като w3(.org) е организация заела се с въвеждането на уеб стандарти.
С развитието на интернет и популяризирането му много хора започнаха да "пишат код" като бяха ту прочели, ту не за какво става дума...
За да се харесат на всички пичовете от Microsoft решиха да отделят от времето си и да създадат браузър, който поправя синтактични грешки. До тук добре... Но в един момент се оказа, че конкуренцията не го прави... Или поне не чак толкова много. Все пак постепенно и другите браузъри "се научиха" да поправят синтактични грешки.
До какво доведе това - ами до адски много "грешни" тагове и пр.
Другата страна на въпроса е разделянето на съдържанието и дизайна в кода на страница (добро например за незрящите, чиито четци могат например да четат по-удобно и да разбират по-добре правилно форматирано съдържание, а това означава такова, в което дизайна е отделен).
Тогава се появиха и CSS.
W3 наложиха и уеб стандарти. Съответно няколко вида такива - отделни за HTML (версии 4.0, 4.1 ...) и отделни за XHTML (1.0, 1.1...). Спазвайки стандарите и писане на валиден код човек го прави по-разбираем за браузъра и "уеднаквява" показването му в различните браузъри.
Идеята за стандартите бързо бе прегърната от всички разработчици на браузъри, защото улеснява работата им и опира до правилното интрепретиране на кода (така както трябва да бъде според спецификацията на W3). Едни от първите, които лобираха "за" стандарти бяха и Майкрософт.
За съжаление въпреки това те така и не успяха да направят браузърите си такива каквито трябва да бъдат и да интерпретират правилно (т.е. според спецификацията) кода.
Когато някой прави дадена страница той отказва с meta tag в самото начало какъв стандарт ползва.
Така браузъра разбира и към коя спецификация да се придържа. Gecko базираните браузъри, какъвто е Firefox, имат два начина на интрепретиране - Quirks Mode (когато липсва даден Doctype (т.е. определяне на спецификацията)) и Standards Compliant Mode (когато е определен Doctype и се очаква кодът да е валиден). Във втория случай FF интерпретира кода точно така както трябва да е според W3 и ако има грешка той просто заема някакъв default или я пренебрегва (без да я поправя). Грешката може да е неверен таг, неправилно използван за това място такъв и др.
Тъй като дизайните, които вървят с blogger са Standards Compliant (доста от първите създадени теми тук са правени от уеб гуруто Джефри Зелдман, за когото ще ти кажа след малко) те си имат правилен doctype и FF ги интерпретира правилно. Затова при въвеждането на грешния ти код той просто не е показал правилно исканата от теб промяна, защото не я е разбрал в контекста на правилния останал синтаксис.
Както можеш да се досетиш Internet Explorer не само интерпретира грешно голяма част от съдържанието и CSS, но и просто не спазва стандарите, за които дори разработчиците му са гласували с "да". Поради тази причина са измислени и стотици "хакове", които да не развалят случващото се с другите браузъри, но и да показват нещата като хората в Internet Explorer.

Това е казано накратко. Ако искаш да знаеш повече можеш да прочетеш в книгата на Джефри Зелдман (zeldman.com) - "Проектиране с уеб стандарти" (http://www.bgbook.dir.bg/book.php?ID=15992). Както и в онлайн списанието, на което той е един от основателите: http://www.alistapart.com .

Unknown каза...

Благодаря, много интересно и полезно е това, което си написал. Почвам да чета Зелдман. Само за едно не си прав - че дизайните, които вървят с Blogger са Standards Compliant. Поне тези, които са на Douglas Bowman, не са. А аз съм с такъв. Понеже съм го модифицирала, реших да тествам на чисто, създавайки нов блог с неговия темплейт и опитах да го валидирам. Оказа се пълен с грешки. После сравних с моята модификация и излиза същото, т.е. аз не съм увеличила грешките. Както и да е - това е проблем на Blogger. На този етап не е мой, тъй като бета версията им е с някакъв Ajax, някакъв dynamic serving и прочие неща, които не разбирам, а нямам намерение да уча, защото искам да пиша блог, а не да уча куп неща. Това, което съм понаучила от CSS, ми стига, за да отговаря блогът на представите ми. Ще преглътна, пък и читателите му, че не е Standard Compliant. Да добавя, че грешките на Bowman не бяха в CSS, а в Java-та и в разни неща, които не ми приличат на Java, а са вероятно тия Аякси и прочие. Може би само трябва да променя в doctype да пише HTML Transitional.

Unknown каза...

Сега сбърках - бета версията е XHTML, ама трябва да видя там какво се пишеше, когато не отговаря на стандартите. Не ми харесва още, че изгледът на блога малко се различава в IE. Обаче малко, тъй като нещата с техния box-модел ги бях оправила с метода на пробите и грешките, тъй че не ми се разместват колони и подобни.

Сега например там, където при лиско се вижда непрекъсната черта, в експлодъра е черта от малки тирета, но това се преживява. Не ми се търсят причините за това, нито хак за него. Още повече, че прочетох в блога на Зелдман, че понеже IE7 е подобрен по отношение на стандартите в сравнение с IE6, доста от досегашните хакове не работят и правят немалки проблеми. Като модифицирах, избягвах хаковете (не знам защо) и това се оказва, че било добре :-)

Анонимен каза...

променянето на doctype-а не е решение. иначе е вярно, че проблема е в blogger.
а ajax е техника базираща на javascript и xml, която улеснява създаването на интерактивни уеб апликации. една от движещите сили на web 2.0. ако все пак ти е любопитно има хубава статия за ajax в уикипедиа:
http://en.wikipedia.org/wiki/Ajax_%28programming%29
иначе технологиите са нещо, което не е нужно да разбира всеки. важното е когато прави нещо то да бъде точно така както той иска :)

колкото до точките (ff) и тиренцата (ie) това е един от другите проблеми на интерпретацията. за мен "dotted" както е в css-а си означава баш на точки (както е във ff), а тиренцата са измишльотина на microsoft. честно казано виждал съм го този проблем, но не ми е било нужно решение за него...