Здравствуйте, гість ( Вхід | Реєстрація )

  • Сторінка 1 з 1
  • 1
Форум сайта CS-Yakudza.com » Все для uCoz » Розкрутка та оптимізація » Чому такий важливий DOCTYPE
Чому такий важливий DOCTYPE
Понеділок, 24.01.2011, 05:54 | Повідомлення # 1
Повідомлень:
317
Нагороди:
Ранг:
Мафіозі
21
Що таке DOCTYPE?

Згідно специфікаціям HTML і XHTML тег DOCTYPE (що означає "оголошення типу документа") повідомляє валідатора, яку саме версію (X) HTML ви використовуєте в своїй сторінці. Цей тег повинен завжди перебувати в першому рядку кожної сторінки. Тег DOCTYPE - ключовий компонент web-сторінок, які претендують на відповідність стандартам: без нього ваш код і CSS не пройдуть перевірку валідатором.

Тег DOCTYPE також важливий для правильного відображення і роботи сторінки в броузерах, які відповідають стандартам (Mozilla, IE5/Mac, і IE6/Win).

Тег DOCTYPE, в атрибутах якого вказується повний URI (повний web-адреса), повідомляє броузерам, що сторінку потрібно вивести з дотриманням певного стандарту або підвиди цього стандарту.

Якщо ви буде користуватися неповним тегом DOCTYPE, застарілим його виглядом, або взагалі забудете про нього, броузер перейде в "загадковий" режим і буде виходити з припущення, що ви писали код сторінки з помилками і вільно відступали від стандартів, тобто так, як писали в кінець 90-их років.

У цьому режимі броузер спробує розібрати вашу сторінку за правилами зворотної сумісності і виведе на екран, наприклад, CSS так, як його вивів би Internet Explorer 4-ї версії, а DOM буде працювати так, як він працював саме в цьому броузері (IE перемикається в свій старий DOM, а Mozilla і Netscape 6 переключається взагалі в бог знає що).

Зрозуміло, що для вас ці викрутаси не бажані. Але саме це ви і отримаєте, якщо будете користуватися неповним чи неправильним тегом DOCTYPE. Дана стаття спробує виправити цю вашу помилку.

(Увага: броузер Opera не грає за такими правилами; він завжди намагається відобразити сторінку так, як якщо б вона відповідала стандартам. Слава Опері! З іншого боку, Opera поки не повністю підтримує стандарт W3C DOM, але робота над цим уже ведеться.)

Де ж взяти правильний DOCTYPE?

Так як теги DOCTYPE надзвичайно важливі для роботи Web-а за стандартами, і так як консорціум W3C є провідною організацією, що створює стандарти для Web-а, слід було б очікувати, що на сайті W3C буде представлений список всіх варіантів тега DOCTYPE, і здавалося б цю інформацію на сайті W3C можна знайти швидко і просто в якомусь певному розділі. Але це не так, принаймні на момент написання цієї статті.

W3.org - це не сайт зі статтями як A List Apart, WebReference або Webmonkey. Він не створений у допомогу web-дизайнерам, розробникам та авторам сайтів, і він не займається розповсюдженням новітньої інформації та корисних порад. Це не його завдання.

Так, іноді W3C публікує серії навчальних статей, хоча більшість web-розробників про це навіть і не знає. Але в основному, сайт W3C містить зібрання пропозицій, проектів та Рекомендацій, які написані інженерами для інженерів. І коли я кажу про інженерів, я не маю на увазі простих фахівців в області web-розробок, таких спеців, як ви і я. Я маю на увазі інженерів, у порівнянні з якими ми виглядаємо повними бовдурами.

Я можу витратити весь день в пошуках правильних тегів DOCTYPE на сайті w3.org, але не знайду жодної сторінки, де вони перераховані всі разом. Якщо ж вам все-таки вдасться знайти який-небудь тег DOCTYPE (наприклад, згадуваний в якій-небудь Рекомендації або Робочому проекті), скоріше за все виявиться, що на вашому сайті він працювати не буде.

По всьому сайту W3C розкидані теги DOCTYPE, де в атрибутах відсутня URI, і теги DOCTYPE, що містять в атрибутах відносний URI, пов'язаний з документами, що знаходяться на тому ж самому сайті W3C. Якщо ви візьмете цей тег з сайту W3C, перенесете його на свій сайт і вставите в свої сторінки, відносний URI буде вказувати на неіснуючі на вашому сайті документи, отже марно пропаде вашу працю і зусилля броузера.

Наприклад, на багатьох сайтах можна зустріти на сторінках наступний варіант тега DOCTYPE, який був без будь-яких змін перенесений з сайту 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 треба користуватися? Дуже добре, що ви поставили це питання. Нижче перераховані повні варіанти тега DOCTYPE для різних потреб:

Стандарт HTML 4.01 Strict (строгий), Transitional (перехідний), Frameset (з фреймами)

<! 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">

Стандарт XHTML 1.0 Strict (строгий), Transitional (перехідний), Frameset (з фреймами)

<! 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">

Стандарт XHTML 1.1 DTD

<! DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.1 / / EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Що далі?

Як ви можете внести свій внесок у поширення стандартів у Web? Насамперед, помістіть в закладки цю сторінку (або просто збережіть її на своєму комп'ютері), а також перевірте, вставляє ваш web-редакторв у ваші сторінки тег DOCTYPE, а якщо вставляє, - чи правильний варіант тега він використовує?

Багато розроблювачів ПЗ просто скопіювали неповні варіанти тега DOCTYPE з сайту W3C у свої програми. І в результаті: ви покладаєтеся на програму, яка вставляє неправильний варіант тега, броузер впадає в "загадковий" режим, а ви безуспішно б'єтеся над загадкою, чому ваші сторінки не працюють, як треба.

Варто також написати тим хлопцям, що роблять ваш улюблений web-редактор, і показати їм, як виглядає правильний тег DOCTYPE, після чого, ввічливо попросити їх внести зміни до нової версії програми. (У деяких випадках, ви зможете навіть внести зміни в програму самі.)

У найближчому майбутньому

У нас є всі причини сподіватися, що W3C скоро викладе повний, точний і зручний список всіх варіантів тега DOCTYPE на своєму сайті, а також опублікує іншу важливу інформацію. І цю інформацію легко буде знайти. До речі, в цю статтю вніс свій внесок Карл Дабост (Karl Dubost) - менеджер W3C щодо забезпечення якості (Conformance Manager of W3C's Quality Assurance team).

Крім того, проект The Web Standards Project скоро буде перероблений (дуже скоро), і на ньому теж можна буде знайти цю інформацію.

Але так як кожен день створюються і випускаються в мережу все нові та нові сайти, ця інформація вам потрібна вже зараз, так от вона - користуйтеся.

Удачі!

При копіювані матеріалу сику на cs-yakudza.com ОБОВЯЗКОВО!

Вівторок, 12.07.2011, 13:44 | Повідомлення # 2
Повідомлень:
2
Нагороди:
Ранг:
Новачок
1
Хочеш сказати ти автор цього?! Чи за переклад вже потрібне посилання?..

Quote (B@CbOK:)
При копіювані матеріалу сику на cs-yakudza.com ОБОВЯЗКОВО!
Субота, 16.07.2011, 18:52 | Повідомлення # 3
Повідомлень:
317
Нагороди:
Ранг:
Мафіозі
21
CJ-Sam, я не казав що я автор я нашов на рускому переклав і дещо доповнив щоб понятніше було happy
Неділя, 17.07.2011, 19:23 | Повідомлення # 4
Повідомлень:
2
Нагороди:
Ранг:
Новачок
1
Quote (B@CbOK)
CJ-Sam, я не казав що я автор я нашов на рускому переклав і дещо доповнив щоб понятніше було happy

Візьми в цитату те, що ти доповнив!
Форум сайта CS-Yakudza.com » Все для uCoz » Розкрутка та оптимізація » Чому такий важливий DOCTYPE
  • Сторінка 1 з 1
  • 1
Пошук:


Статистика Форума
Нові теми Популярні теми Кращі користувачі Нові користувачі

Прикол в cs 1.6

(1)

Банерообмін

(19)

Шаблон для ucoz - Dco...

(1)

Готовий і настроєний ...

(7)

Красивый информер топ...

(0)

Моє відео

(7)

BCM

(0)

Новый информер коммен...

(0)

Голубая кнопка вверх ...

(0)

Статистика кто посети...

(0)

конкурс вгадай фільм

(28)

Банерообмін

(19)

про модулі

(15)

Набір "Модератор...

(13)

Перемикач сторінок

(13)

Створення cs 1.6 серв...

(11)

Роздача ICQ від $eRJ

(11)

Купи або получи домен...

(9)

залучення реальних ві...

(9)

Роздача програм для {...

(8)

B@CbOK

(317)

КаVyн

(235)

$eRJ

(177)

Leet

(82)

ГОРІЧ

(72)

Olizina

(51)

dingo

(40)

CkopnioH

(34)

brooklin

(32)

extremist

(14)

Volodymyr

(24.04.2021)

Don_UA_

(03.06.2020)

Саня3639

(22.08.2019)

Don_ua

(10.08.2018)

buldog7

(16.12.2016)

arsen_1379

(17.08.2015)

ispanets

(23.04.2015)

Dj23435

(27.05.2014)

nazar1111

(20.05.2014)

nikonov

(11.05.2014)