Pull to refresh

Comments 110

Вообще-то, такие документы можно писать уже сейчас. В качестве примера, валидный HTML 4.01 Strict:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<meta http-equiv=Content-Type content='text/html; charset=utf-8'>
<title>Hello, world!</title>
я не утверждал обратного — а как продолжение темы про HTML5
получается очень краткая запись шаблона
то, что по ссылке, действительно невалидно:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<meta http-equiv=Content-Type content='text/html; charset=utf-8'>
<title>Hello, world!</title>Hello, world!</title>

Смотрим внимательно на последнюю строчку.
нет, нет, видимо так быстро увидел ответ на коммент, что может не сохранилось что-то
В общем по линку, ваш выше предоставленный html — он не валидный
Извиняюсь, действительно невалидный. Вот исправленный вариант:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<meta http-equiv=Content-Type content='text/html; charset=utf-8'>
<title>Hello, world!</title>

<p>Hello, world!
А теперь можно небольшо пояснение?
То есть тег BODY HTML HEAD отсутствуют — и это нормально, только тогда когда есть незакрытый тэг P +))))) Я понимаю что логика не такая +)) Но ситуация показывает обратное. Почему так?
почему тэг не закрыт? (наверное для многих очевидный вопрос, но хотя бы в двух словах)
и второе, почему тэг спас ситуацию с валидацией. Спасибо.
Элемент <p>, вместе с некоторыми другими, например, <tr> и <td> в HTML — самозакрывающийся. Браузер, следующие спецификации, автоматически ставит закрывающий тег в соответствии с правилами, определёнными в спецификации. Например, <td> закроется, когда браузер встретит открывающий тег ещё одного <td>, а <p> — открывающий тег любого блочного элемента, например, <div> или ещё один <p>.

Также, я бы не сказал, что здесь нету <body>, <html> и <head>. Они создаются в памяти браузера (или другого HTML-парсера) в тот момент, когда встречаются элементы, которые могут в них содержаться. Например вот этот документ будет невалидным, так как <title> не может быть внутри <body>:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<meta http-equiv=Content-Type content='text/html; charset=utf-8'>

<p>Hello, world!
<title>Hello, world!</title>
А <p> спас валидацию потому, что без него все остальные элементы, что есть в этом документе, предназдначеня для <head>, поэтому парсер в процессе разбора документа никогда и не создаёт <body>. А он должен быть.
Спасибо. Да я к последнему комментарию уже понял, почему cпасает ситуацию.
И ещё. Будет ли верно моё замечание, если я скажу, что сам по себе этот документ не валидный. Так как в нём нет HTML BODY и HEAD, а то что их дописывает парсер, он бы мог этого и не делать? Тогда получается, что документ не вылидный сам по себе без парсера. Эм ай райт?
UFO just landed and posted this here
Да и значит ли то, что если я к такому html'у пропишу в ссs, что-нибудь аля BODY { background-color:lime; } у меня экран покраситься в ярко-зелёный цвет?
UFO just landed and posted this here
где?
у них вроде все еще
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Об этом Кирсанов писал в своей книге «веб-дизайн» 8 лет назад :)
все уже сказано до нас. и это тоже
)
Вы сговорились сегодня верстальщиков до психушки довести?
Элементы <head> и <body> позволяют разделить логику HTML документа. Именно поэтому я никогда не откажусь от их использования.
Вы можете отказаться от одного из них, например, <body>. Разделение логики останется наглядным.
Не вижу смысла. Сразу почему-то возникает ассоциация с внутренними органами, не собранными в тело. Более того, любой <div> верхнего уровня чисто интуитивно начинает казаться по смыслу аналогичным тегу <head>, хотя роль у него другая и никак не просто группировочная, как в случае тега <body>.
Да, если подумать, то лучше от <head> отказаться.
porgz +1 нужна хоть какая то организация…
Мсье, я пишусь через «q», а не через «g». ;)
в вас говорит привычка, как мне кажется.
например, скрипты большинство по привычке подключают в HEAD, хотя их можно подключать где угодно (но в пределах html). при этом рекомендуется подключать скрипты ближе к концу документа. страдает ли при этом логика и структура документа? отнюдь нет.
Во мне говорит любитель семантического веба и XML (читай: XHTML), а отнюдь не привычка.
XHTML — это язык разметки, просто-напросто синтаксис, и он не заслуживает ровно никакой славы за «семантичность» и «разделение содержимого и оформления», что ему предписывают. Всё это было ещё задолго до изобретения XHTML и называлось HTML 4.01 Strict.
Ну XHTML документ намного проще распарсить чем HTML документ, написанный вами (я об отсутствии закрывающих тегов). Вот вам и разделение содержимого и оформления.
Во-первых, какое отношение имеет скорость парсинга к разделению содержимого и оформления?

Во-вторых, HTML-парсеры браузеров на самом деле ожидают, что эти теги могут быть незакрыты. Им это предписывает делать стандарт HTML 4.01, а теперь и HTML5. Для них это не исправление ошибок. Гораздо менее приятно браузеру приходится, когда он ожидает HTML-синтаксис, а Вы пихаете ему в рот XHTML, например, вот это: <br />. В этом легко убедиться, открыв почти любую якобы-XHTML страницу в Firefox, нажать на «Посмотреть исходный код» и посчитать выделенное красным цветом. В этих местах парсер обнаружил ошибку и вынужден был её исправлять.
Разделение логики останется нетронутым, пока содержимое и будет на своих местах. Если вы поместите между <meta> и <title> какой-нибудь <div>, то вот уже тогда разделение логики будет потеряно. Считайте, что браузер сам дописывает эти теги.

Я же предпочитаю писать поменьше тегов: меньше шанс допустить ошибку.
По-моему это несостоятельный довод. Я про ошибку. Поясню: за энное количество лет, что я занимаюсь веб-штуками, я ни разу не сделал ошибку из-за <head> и <body>.
А вдруг завтра сделаете? ) Просто это общий принцип, я применяю его везде. В том числе и в закрывающих <td> вместе c <tr> (не нужны никогда) и закрывающих <p> (не нужны в 90% случаев). Я сторонник минимализма.
Как раз отсутствие закрывающих тэгов скорее приведет к ошибке. Особенно тех, кто будет ваш код после вас править…
Все намного хуже. Отсутствие закрывающего может и не привести к фатальной ошибке, но может существенно осложнить поиск реальной ошибки в верстке или в JS. Типовой пример — когда в xHTML вываливается невалидизированный код из древних визивигов.
UFO just landed and posted this here
А я про это и говорю. C 99% вероятностью этот код — порождение rich text editor. Как его MS запустил в 99 так он и работает до сих пор без изменений. По хорошему нужно пропускать это через tidy, но там уже другие проблемы возникают. Да и не делает этого никто.
UFO just landed and posted this here
Ничто не мешает вам использовать разный код при разработке и в продакшене.
UFO just landed and posted this here
Я никогда не понимал эзотерического страха перед таблицами.
UFO just landed and posted this here
Вспоминая всевозможные извращения по выравниванию высоты блоков, их позиционированию и прочие кроссбраузерные хаки, на… я вертел такую семантику. И не говорите о HTML5. Все мы верим в светлое будущее, однако даже шестым IE кто-то еще пользуется, хотя он публично признан еретическим браузером. Стандарты HTML4 и CSS2 еще не до конца поддерживаются, а мы уже рассуждаем о, пока еще, набросках HTML5 и CSS3?
Я искренне верю в светлое будущее и православную блочную верстку, но то, с чем нам всем приходится работать, ничего, кроме уныния пока не вызывает.
Кстати, связь семантики и веса в поисковиках, мне кажется, достаточно условна. В нашем-то веке. Кто-то уже сказал, что тот же Яндекс сверстан не без помощи таблиц.
Не хочу разжигать холивар. Просто ИМХО.
И не говорите. Верстаешь таблицами — еретик, немедленно на костер. Пишешь некошерныйвалидный код — на кол. Тьфу…
Ну насчет невалидного кода, в принципе, правильно. Стандартов и рекомендаций нужно все-таки придерживаться.
А вот того, что верстка таблицей является признаком дурного тона я, почему-то, в рекомендациях не встречал. Может, плохо смотрел?
UFO just landed and posted this here
О! Можете перевестать Яндекс без таблиц с сохранением всего поведения, что есть сейчас? Посмотрю с превеликим удовольствием. Гы-гы.
UFO just landed and posted this here
UFO just landed and posted this here
А что Вы, собсна, под динамическим контентом понимаете? Фенечки и рюшечки или контент в классическом понимании этого слова?
UFO just landed and posted this here
с помощью таблиц сложно или невозможно пустить левый сайдбар в коде позже центральной колонки с собственно содержанием статьи

А зачем?
UFO just landed and posted this here
Очень и очень спорный вопрос. На практике, сверстав не один десяток сайтов и так и эдак я не ощутил приоритета блочной верстки перед табличной в плане SEO-оптимизации. Потому считаю перемещение контентного блока в начало документа танцами с бубном.
Кроме того, считаю, что логически верно было бы ставить навигацию в начало документа.
Ну а лучше всех всё это знают поисковые роботы. Знают, но молчат.
UFO just landed and posted this here
Не всегда. Далеко не всегда.
Повторюсь (или нет?) у каждого свои убеждения. Вы не обязаны переубеждать меня так же, как я не обязан переубеждать Вас. :)
В конце концов, я сам больше тяготею к блочной верстке, но иногда действительно приходится некоторые вещи делать таблицами.
это не вопрос СЕО, а вопрос доступности содержимого для людей с ограничениями: скринридер читает ведь код: и представим верстку на таблицах, где сверху еще и объемное меню, а слева колонка с рекламой и прочим — пользователь устанет ждать, когда начнется собственно содержание.
P.S. хотя это мое видение работы скринридеров, более чем голос в опере, я не сталкивался с ними
>исключительно для SEO. очень часто для этого же приходится переносить даже…
Вы питаетесь SEO-методичками десятилетней давности. Поисковики давно научились определять где контент, где заголовок, где навигационные и рекламные блоки независимо от того где в HTML они располагаются.
Ничего не понял. Можете развернуть мысль?
Таблицы не так часто, но иногда нужны. css со своей задачей справляется не всегда.
ну свертан он таблицами, и дальше-то что? вот, на /www.yahoo.com/ вообще в html-коде 80% высоты кода — css стили =)))
А как на это отреагируют пауки поисковиков?
Валидная верстка, как уже сказано выше, не отменяет логики описания HTML-документа.
Или я просто слишком консервативен в своих суждениях?
не сеошник, точно не скажу, но рассуждение такое: меньше тегов, контент ближе к началу документа → хорошо)))
Вы хотите сказать, что обилие мета-тегов, ссылок на JS-скрипты и стили «удаляет» контент от начала?
UFO just landed and posted this here
Кстати, вспомнилось мне тут кое-что.
Поисковые роботы видят контент сайта так же, как видит его Lynx. В этом самом месте все старания верстальщика идут коту под хвост потому что он не понимает ни CSS, ни Javascript.
UFO just landed and posted this here
Не совсем. Google давно насобачился исполнять JS. Что он с этим делает неизвестно, но по невидимым для Яндекса и Lynx ссылкам он очень бодро ходит.
UFO just landed and posted this here
Гугл — это и есто «обычный» поисковик. Остальные типа Яндекса или Байду — необычные :)
UFO just landed and posted this here
Вы правы. С точки зрения диалектики лет через 10 обычным поисковиком станет Байду
UFO just landed and posted this here
Если нужно применить какие-то стили, то body, как тег верхнего уровня, более семантичен (и православен), чем. К тому же, можно вспомнить еще и javascript c его и так далее
Простите, забыл что Хабр питается тегами.
Если нужно применить какие-то стили, то <body>, как тег верхнего уровня, более семантичен (и православен), чем <div id=«body»>. К тому же, можно вспомнить еще и javascript c его <body onload=«»>, и так далее.

Вообще-то, правослевней событие domready, которое вызывается намного раньше события load и поэтому не вызывает моргания.

Впрочем, никто не мешает поставить открывающий тег элемента <body>. И это даже не обязывает ставить закрывающий. Главное, чтобы он, в случае, если Вы его таки напишете, стоял в правильном месте.
<body onload=«»>? помилуйте, это до сих пор используется? старый, добрый олдскул:)
Я давно уже не интересовался данным атрибутом, просто на ум пришло
Если в документе нет body, это не означает, что его нет в DOM. Конечно, он генерится автоматически и стили на него применяются.
Спасибо, не знал.
UFO just landed and posted this here
Смущает вот что: по правилам xml нельзя что бы в корне было несколько элементов, поэтому я так понимаю для xhtml это уже не прокатит, если что поправьте
Наличие доктайпа говорит о том, что это не xml, а sgml-вариант HTML5 (хотя не совсем корректно употреблять слова «HTML5» и «SGML» вместе, так как в пятой версии SGML убрали, но суть Вы поняли). Дело в том, что корневой элемент на самом деле один, просто его необязательно писать.
UFO just landed and posted this here
хоч сайт і валідний але бажано писати html тег для того щоб сайт був xml документом і з ним можна було б працювати за допомогою SimpleXML та інших подібних XMLок

Хотя сайт и валидный, но желательно писать html тег для того, чтобы сайт был xml документом, и с ним можно было бы работать с помощью SimpleXML и других подобных парсеров XML.
Kial vi uzas Ukraina lingvo tie ĉi?
Если бы в статье шла речь про XHTML, то не было бы смысла описывать нарушение его правил. От добавления <html> html-страница вместе со своими html-ными <br> и &input> не превратится магическим образом в xml.
UFO just landed and posted this here
Ну и добавляйте body в этом случае, в чём противоречие-то?
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Это проблема, скорее всего, в голове верстальщика, отквазывающегося от body ради священных 13 байт.
Смысл? Где в этом смысл? Здравый смысл.
Где Вы видите проблему? Её нет. Как Вам уже сказали, обьект document.body будет существовать вне зависимости от наличие тега <body>.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Предлагаете экономить на спичках?
пример, кажется про eBay. увеличение загрузки страницы на 1 десятую секунды (!!!) привело к снижению доходов на несколько процентов. точных цифр не помню, кроме одной десятой, а ссылка потерялась=(
и вы правда в Это верите?
т.е. на раз-два закроем глаза на работу:
— сейлзов;
— рекламу;
— парней из отдела маркетинга
— инет каналов
да? а может это вообще сравнивали пятницу с воскресеньем.
и станем верить в 1 десятую секунды?
Вы Идиот?
Попробуйте хотя бы себе ответить откровенно на этот вопрос.
«Несколько процентов» — это явно завышенный перегиб, но теоретически прибыль массовых сервисов действительно может быть зависимой от времени загрузки страницы за счет того, что:
— нужно будет больше серверов чтобы обеспечивать приемлемое время загрузки страниц;
— баннеропоказов (и соответственно кликов) за единицу времени будет меньше.

И не нужно называть кого-то идиотом, даже если он и ляпнул что попало. Если не понравился комментрарий — поставьте минус, этого достаточно. Если минусов наберется много, то все и так все поймут.
отвечать на оскорбление не буду — ответить значит опуститься на Ваш, милостивый государь, уровень, но я привел цифры из исследования eBay. да, я не помню на какой именно странице я это читал, потому и не дал ссылку, но на цифры у меня память хорошая. и я склонен больше верить eBay, а не Вашим «кагбэ» логичным рассуждениям
Тхахаха!
Вы достаточно емко ответили на мой вопрос.
Спасибо.
<head>
<object id=«xxx»></object>
<body onload=" alert( document.getElementById('xxx').parentNode.nodeName ) ">

только ие отработал правильно…
UFO just landed and posted this here
UFO just landed and posted this here
Sign up to leave a comment.

Articles