Списание за дизайн, визуална култура и Новата медия.
Направили сте всичко правилно, но сайтът ви не изглежда както трябва в последните версии на браузърите.
Написали сте валиден XHTML и CSS код. Използвали сте стандартния Document Object Model (DOM) на W3C, за да обработвате динамичните елементи на страницата. И въпреки това сайтът ви не работи в браузърите създадени да поддържат същите тези стандарти. Вероятно причината е в грешния DOCTYPE (бел. прев. чете се "доктайп". Тук е мястото да се извиня, но редица термини в английския нямат абсолютно никакъв превод на български и същевременно звучат странно на родния ни език. Така мн. ч. на доктайп става доктайпове и т.н.).
Тази малка статия ще ви даде DOCTYPE-овете, които вършат работа и ще обясни практическия ефект от тези иначе изглеждащи абстрактни тагове.
Според HTML и XHTML стандартите, DOCTYPE (съкратено от "document type declaration" или "декларация за вида на документа") дава информация на валидатора коя версия на (X)HTML използвате и трябва да присъства в самото начало на всяка уеб страница. DOCTYPE-овете са ключов компонент на всяка страница спазваща стандартите: кодът и CSS няма да бъдат валидни без тях.
Както беше споменато в предишни статии в ALA (и на други интересни места), DOCTYPE-овете също така са от решаващо значение за правилното показване и функциониране на уеб документите в браузърите поддържащи стандартите (като Mozilla, IE5/Mac и IE6/Win).
Правилният DOCTYPE, включващ пълен URI (пълен уеб адрес), казва на тези браузъри да показват вашата страница в режим "съвместима със стандартите" и да се отнасят с вашия (X)HTML, CSS и DOM както очаквате.
Използването на непълен или остарял DOCTYPE или въобще изпускането DOCTYPE-а превключва същите тези браузъри в режим "увъртане", в който браузърът приема, че сте написали старомоден, невалиден код в традициите на изпадналата в рецесия индустрия от края на 90-те години.
В този режим браузърът ще се опита да обработи страницата в по начин съответстващ на старите браузъри, показвайки вашия CSS както би изглеждал в IE4 и преминавайки към съответния специфичен за този браузър DOM. (IE преминава към IE DOM; Mozilla и Netscape 6 минават на бог знае какво.)
Ясно е, че вие не искате това. Но често вие ще получите точно това, заради широкоразпространените неверни или непълни DOCTYPE-ове, които тази статия се надява да поправи.
(Забележка: Браузърът Opera не играе по тези правила; той винаги се опитва да покаже страниците в режим на съвместимост със стандартите. Само Opera! От друга страна, Opera все още не предлага солидна поддръжка на W3C DOM. Но работят по въпроса.)
Понеже DOCTYPE-овете са жизненоважни за правилното функциониране на уеб стандартите в браузърите и понеже W3C е водещ фактор при създаването на уеб стандарти, очакваме сайтът на W3C да предлага списък с правилни DOCTYPES, а освен това бихме очаквали да намерим тази информация бързо и лесно на едно определено място. Но поне по времето, в което пиша тази статия, това е невъзможно.
W3.org не е A List Apart, WebReference или Webmonkey. Той няма за цел да помага на уеб дизайнерите, разработчиците и другите приятелчета да се оправят из най-новите препоръки и начини за работа. Това не е негова работа.
W3C публикува серия от уроци, но повечето уеб разработчици не знаят за това. Сайтът на W3C основно съдържа колекция от предложения, чернови и Препоръки, писани от маниаци за маниаци. И когато казвам маниаци, нямам предвид обикновените уеб професионалисти като вас и мен. Имам предвид маниаци, които ни карат да изглеждаме като Баба ни и първия път, когато Тя Имаше Поща.
Може цял ден да претърсвате w3.org за DOCTYPE-ове, но няма да намерите и една страница, която ги изброява всичките. И когато най-накрая проследите някой DOCTYPЕ (обикновено във връзка с някоя отделна Препоръка или Чернова), той често е точно този, който няма да проработи на вашия сайт.
Из сайта на W3C са разпръснати DOCTYPE-ове с липсващи URI или относителни URI, които сочат към конкретни документи от сайта на W3C. Веднъж извадени от сайта на W3C и използвани във вашите уеб страници, тези URI сочат към несъществуващи документи. По този начин те провалят най-големите усилия на браузърите и на вас самите.
Например, много сайтове използват този DOCTYPE, copy & paste-нат директно от w3.org:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
Ако погледнете последната част от този DOCTYPE ("DTD/xhtml1-strict.dtd"), ще видите, че това е относителна връзка към документ в сайта на W3C. Понеже този документ е на сайта на W3C, а не на вашия, URI-то е безполезно за браузъра.
DOCTYPE, който всъщност бихте искали да използвате е:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Забележете, че последният DOCTYPE включва пълният URI в края на тага. Понеже тагът сочи към съществуващо място в Мрежата, браузърът знае къде да го намери и ще покаже вашия документ в режим на съвместимост със стандартите.
И в края на краищата, какви DOCTYPE-ове трябва да използваме? Радвам се, че попитахте. Следващите пълни DOCTYPE-ове са онези, които ни трябват:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Как можете да допринесете за увеличаване на поддръжката на стандартите в Мрежата? Освен да си отбележите тази страница (и да използвате тези DOCTYPE-ове в работата си), можете да проверите дали вашият уеб редактор слага правилните DOCTYPE-ове, сравнявайки ги с тези по-горе.
Много добронамерени разработчици на софтуер използват непълни DOCTYPE-ове в програмите си. Резултатът: когато използвате вградените възможности на тези програми да вмъкват DOCTYPE-овете във вашите страници, браузърите минават в режим на "увъртане" пренебрегвайки целия ви упорит труд.
Заслужава си да се свържете с приятелчетата, които правят вашия любим софтуер и да им покажете правилните DOCTYPE, молейки ги учтиво да използват тях в следващата версия. (В някои случаи, може би ще можете сами да настроите своя редактор.)
Имаме всички основания да вярваме, че скоро на сайта на W3C ще се появи полезен списък с точните, използваеми DOCTYPE-ове и друга важна информация на лесно за намиране място. Всъщност Карл Дюбост, мениджър в Quality Assuraance екипа на W3C, допринесе за информацията в тази малка статия.
Иначе, когато скоро стартира The Web Standards Project отново (наистина скоро), той също ще дава тази информация.
Но сайтове се правят всеки ден и вие имате нужда от тази информация сега - така че ето я.
Приятно писане на код!
Статия в категория Код
Ключови думи: doctype, xhtml, html, стандарти, браузъри
Източник: Fixing You Site With the Right DOCTYPE
A List Apart, http://www.alistapart.com
Все още не можете да намерите онова, което търсите? Защо не пробвате с това малко поленце отдолу (подсказки: въвеждайте повече думи; пишете на кирилица; използвайте по-конкретни понятия.)