При создании дизайна для Сети вам нужно принять к сведению, что контент будет меняться. О том, чтобы тратить в...
Плохой специалист винит не себя, а инструменты, которыми он пользуется. Поэтому убедитесь в том, что ваше прог...
DOCTYPE
Стоит уточнить, зачем же все таки нужен DOCTYPE. Как я уже писал в статье про валидацию, теоретически, он указывает на отдельный документ — DTD — по которому можно фомально проверить синтаксис XHTML. Но стандарт XML позволяет браузерам этого не делать и быть невалидирующими парсерами. Они и не делают. И единственная программа, которая таки использует DTD — это сам валидатор (мне это напоминает негласное требование к москвичам носить с собой паспорт только для того, чтобы милиция могла его наличие проверять :-) ).
Тем не менее, браузеры все-таки используют строчку DOCTYPE. Но исключительно для того, чтобы по совпадению этой строки с некими внутренними шаблонами включать разные режимы обратной совместимости. Например, будет ли IE6 считать размеры боксов по стандарту или в режиме совметимости с IE5, зависит от того, указать ли ему DOCTYPE строгого (X)HTML или нет. А в Gecko-браузерах таких режимов аж три: “загадочный”, “как IE” и “стандартный”.
Кстати, интересующимся сильно советую почитать свежую статью Тима Брея о том, чем вреден DOCTYPE. Тим Брей, между прочим, один из авторов XML. А и не нужно
Думаю, я не ошибаюь сильно, считая, что призывы писать только на XHTML основаны исключительно на том, что это модно. Я помню, что многих людей в свое время издевательски (зная ответ) спрашивал, а зачем именно они вставляют слеш (”/”) в теги и и зачем именно они пишут в начале документа DOCTYPE разных вариантов XHTML. Никакого внятного ответа я на свой вопрос не получал.
Потому что на практике использовать настоящий XHTML а) трудно и б) практически незачем.
Напомню, что кардинальное отличие XHTML от HTML состоит в том, что XHTML подчиняется жестким XML’ным правилам well-formed’ности. То есть, если в документе хоть чуть-чуть что-то неправильно, то барузер обязан бросить парсить документ и сообщить пользователю об ошибке.
Такая строгость нужна и удобна, если ваш пользователь — программа. Тогда, чем более просты и строги правила синтаксиса, тем проще она сама.
Но такое поведение не подходит на вебе. Ни одному пользователю не интересно знать, как там где-то ошибся автор страницы или автор его CMS. Они приходят пользоваться, а не отлаживать. А в современном вебе, где документы составляются из кучи разных несвязанных кусочков информации, синатксические ошибки, к сожалению, слишком часты. Что означает, что ваш правильный XHTML-сайт будет слишком много времени неюзабельным. Достаточно, например, просто перенести copy-paste’ом URL’ку из браузера в блог и, если в URL’ке есть амперсанды (&), то вы получаете сломанный XHTML, который требует, чтобы эти амперсанды были экранированы (&). Пугалка
Если все вышенаписанное не убедило вас в бесполезности XHTML и вы вопреки здравому смыслу думаете, что “это все равно правильно”, то я хочу вас еще немного попугать. Потому что эти настроения обычно подкрепляются мнением, что “обэксемелить” HTML — задачка все равно простая. Чего там, в общем-то: закрыть все теги, откавычить атрибуты, экранировать амперсанды и вставить слеши в одиночные теги. На самом деле все несколько сложнее. Вот небольшой и неполный список, во что это выливается:
Содержимое элементов и нельзя оставлять в том же виде, что и в HTML. Потому что любой значок “>” тут же все сломает. Если его экранировать через “>” или заключать в блоки CDATA, то тогда сломаются HTML’ные браузеры, которые таких страстей не ведают и парсят текст, предполагая, что он не экранирован. Кроме того, в XHTML браузер не обязан вообще парсить содержимое комментариев, а скрипты, как известно, часто так экранируются по историческим соображениям.
В итоге, чтобы удовлетворить и XHTML, и HTML, вам придется либо использовать такую вот конструкцию, учитывающую все синтаксисы:
Либо выносить скрипты и стили во внешние файлы.
document.write в скриптах в XHTML просто не работает. Придется переписать с использованием DOM-функций
В самих DOM-функциях нужно опустить все названия элементов в нижний регистр. То же для селекторов в стилях. В XHTML регистр букв имеет значение.
Также не работают удобные вещи: document.body, document.forms, document.images… Придется рисовать длинные вызовы вроде document.getElementsByTagName('body')[0] и document.getElementById('change_frm')
Если вы храните какой-нибудь текст внутри , то переводы строк внутри атрибута “value” в XHTML схлопнутся в пробелы. Чтобы этого не было придется их экранировать: “
”.
Фоновый цвет body в XHTML не распространяется автоматически на все окно
Другими словами, в следующий раз, когда вам нужно будет сверстать страницу для веба, отриньте суету и начните ее так: "http://www.w3.org/TR/html4/strict.dtd"> Страница
Текст
Это совершенно валидный HTML 4.01 strict. А если вам не нужна валидация, то и DOCTYPE можно сократить до минимума, чтобы только браузеры в стандартный режим включались:
Страница
Текст Смысл все же есть
Есть редкие случаи, когда применение XHTML оправдано и на вебе тоже.
Одна из областей применения — микроформаты (о которых я уже как-то писал). Поскольку они предлагаются как вещи и человекочитаемые, и машиночитаемые одновременно, то строгость XML’а для них уже полезна.
Другая, еще более редкая штука — смешанные документы. XML позволяет в одном и том же документе объединять элементы разных XML-языков (поскольку синтаксис общий). Чаще всего это используется для вставления в XHTML кусков математики на MathML и графики на SVG. Есть известный блог — Musings — который это широко использует.
Автор: Иван Сагалаев Источник: Маниакальный Веблог
Однако, наверное самый полезный эффект, который XHTML произвел, лежит отнюдь не в технических аспектах. Эта самая буква “X” сыграла в свое время важную роль, сделав из простого как бы всем известного и скучного HTML новую модную технологию. Не будь XHTML’а, наверное куда меньше людей заинтересовались бы идеями современной верстки CSS’ом, разделением содержимого и оформления и стали бы читать спецификации хотя бы и только для того, чтобы повесить на страницу бесполезную кнопочку валидации. Пусть… Главное — общий эффект :-)
Пишем 'гостевую книгу' с нуля на php Почти на каждом более-менее популярном сайте есть форум или гостевая книга, эти элементы нужны для постоянного общения автора сайта с его пользователями. Но многие...
Окна сообщений Хотя всплывающие окна это и очень эффективный метод получения новых подписчиков, есть один еще более успешный. Сочетая его с хорошим стимулом, вы в буквальном смыс...
Гостевая книга на PHP. В этой статье рассказывается о том, как создать гостевую книгу, описывается её структура и реализация. За пределами статьи остаются дизайн, вёрстка, оформление и т....
Организация CSS-файлов: Совет 1 - Флаги CSS Organization Tip 1: FlagsВам приходилось писать и работать с большими CSS-файлами? Мучались с бесконечным скроллингом вверх-вниз в поисках нужной части кода? CSS-файлы, с котор...
Частые ошибки в веб-дизайне. Разметка текста – одна из самых важных характеристик дизайна. В большей части проектов текст доминирует, так что хорошо подобранные шрифты могут стать ключом к ра...
Компот и мухи веб-разработки Русский интернет (уже наконец) вовсю осваивает “дизайн через CSS”, но многие все равно не понимают, почему именно надо дизайнить так, а не по-старому, через таблицы. Р...
HTML 4 не является языком оформления веб-страниц. Он является языком логической разметки страниц. Раньше, создавая HTML-документ, вы думали о том, что этот заголовок будет сделан жирной верданой золотистого цвета и о...
Немного о PHP. Интернет уже давно прочно вошел в нашу жизнь. Это смелое утверждение можно доказывать или опровергать много раз, но так или иначе все меняется, а с этим спорить никт...
Основы написания PHP программ Как и в любом языке программирования в PHP есть свои правила, константы, зарезервированные слова и операторы, с помощью которых выполняются различные манипуляции с ...
История РНР Начинать нужно всегда с самого простого, и сейчас я попробую познакомить Вас с программированием на скриптовом языке РНР. РНР (читается как пи-эйч-пи) появился на св...
Особенности РНР Как и у всякого языка программирования, у РНР есть свой синтаксис. Он очень похож на синтаксис языка С или Perl. Программисты, пишущие на этих языках, смогут освоить РН...
Введение в PHP PHP - это скриптовый язык программирования, который исполняет весь свой код на стороне сервера, а клиенту выдается только результат работы скрипта. Изначально PHP рас...
Хороший дизайн Как-то раз собрались авторитетные дизайнеры со всего мира и стали думать, что такое хороший дизайн. Думали - думали, и пришли к выводу: Хороший дизайн - это дизайн, ко...
На заметку
Твой сайт Изготовление сайта - штука тяжёлая и занимает кучу времени. Так что длительность прогулок под Луной с любимой девушкой, а для кого и с любимым бойфрендом, придется с...
JavaScript: очистка формы Для очистки формы существует специальная кнопка Reset, при нажатии на которую данные формы возвращаются в исходное значение. Если ввести свои данные в форму, а затем ...