Любителям валидной вёрстки
Любителям валидной вёрстки и копипейста бессмысленного доктайпа из документа в документ посвящается стенограмма диалога из подкаста Сполского. Она не про это, но она про ценности, которые определяют отношение к этим вещам. Ну, типа того.
Валидная верстка, как грамотное письмо и речь, получается сама собой.
Более того, вычисление затрат на поддержку верстки и, скажем, юнит-тестов не имеют ничего общего. Если некто валит это в одну кучу, очевидно, он нихуя не смыслит ни в верстке, ни в разработке, ни в юнит-тестах.
Прекратите выебываться, Илья, ваши оправдания выглядят дико и отвратительно.
Да, да, вы всегда сможете заявить «не читайте»/«мне похуй» и т. п. но тем не менее, попытки обосновать «бессмысленность» доктайпа выглядят как оправдание чувства собственной важности, если не сказать лени и тупости.
А значит со временем, эти заявления будут выглядеть глупее и глупее, пока не превратятся в старческое брюзжание про ИЕ 5.5 и old skool.
Что ж, это меня устраивет, разложение это прекрасно!
Валидная верстка нужна как основа, к которой впоследствие можно добавить проприетарные теги и атрибуты, для того, чтобы результат работал лучше и был более надежным.
То есть в итоге работающий код может быть невалидным, но тем не менее он должен быть создан на валидной основе, как минимум чтобы предупредить нарушение вложенности тегов и другие грубые ошибки, которые время от времени появляются, и о которых прекрасно предупреждает валидатор.
Вы назваете «чистый и последовательный код» валидной вёрсткой, а я его называю просто хорошим кодом. Валидной вёрсткой я называю код, не вызвывший ошибок валидации, и я утверждаю, что такой код сам по себе не нужен ровным счётом никому. Мне представляется в высшей степени удивительным то, что находятся люди, пытающиеся с этим спорить.
А копипаст доктайпа имеет практическую выгоду, IE начинает вести себя более вменяемо.
Хаком я склонен называть использование средств и методов, противоречащих правилам (спецификации), которые при этом позволяют получить результат, недостижимый при беспрекословном следовании стандартам. Доктайп спецификации не противоречит, и несколько облегчает жизнь, поэтому для себя я не вижу причин от него отказываться.
Другое дело, что он должен определять тип документа и версию используемой спецификации, а определяет режим рендеринга, но на это можно закрыть глаза. Просто так удобнее. :-/
margin-left: 100px;
// margin-left: 120px;
Он основан на том, что ИЕ6 не понимает такие комментарии в ЦССе и принимает закомментированный код за настоящий. Таким образом, во всех браузерах поля слева получаются 100 пикселей, а в ИЕ6 — 120. Таким макаром можно компенсировать какое-нибудь расхождение в другом месте, вызванное, например, глюком и ИЕ6. Это, с вашей точки зрения, тоже не хак? Спецификация позволяет написать комментарий, похожий внешне на код, так что тут всё чисто.
Что касается доктайпа — а я ведь вовсе не призываю отказываться от него. Я лишь говорю о том, что его «необходимость» есть бред сивой кобылы, как и необходимость любого другого хака. Если вы обнаружили, что с таким хаком у вас сайт становится лучше (в браузере), то всё прекрасно.
Просто мои естетические чувства требуют красоты кода, поэтому я стараюсь всегда, когда возможно, обходиться без хаков.
Но ваша точка зрения ясна.
Доктайп, разумеется, не необходимость. Но мои эстетические чувства требуют его наличия. :-)
Однако рад, что в целом наши взгляды на качество кода совпадают, поскольку по вашим постам сначала создалось обманчивое впечатление, что следить за качеством кода вы считаете излишним.
Качественный код легче читать, поддерживать, обрабатывать программно. Глупо было бы выступать против этого. Я лишь выступаю против валидации как критерия качества.
Четкого разделения и нет, это субъективно. Просто доктайп не противоречит моим эстетическим чувствам, и облегчает работу, а комментарии — наоборот.
Вообще можно использовать просто <!DOCTYPE html>, который включит строгий режим рендеринга (и который в html 5 как раз для этого и предназначен, и таким образом хаком не является).
Кстати, почему комментарий — хак, а доктайп — нет (опять же субъективно). Работа комментариев в качестве средства исправления ошибок основывается на ошибке программы (а хак это, к тому же, использование ошибок программной реализации), а переключение режимов рендеринга основана на исторических причинах, и является негласным соглашением производителей браузеров, а не ошибкой реализации.
Я, когда писал о бессмысленном доктайпе, не имел в виду доктайп от ХТМЛ 5. В ХТМЛ 5 он как раз очень милый, так как за ХТМЛ 5 взялись адекватные люди. Я говорил о других доктайпах, где написана куча ахинеи, которую невозможно запомнить, и поэтому приходится копировать из файла в файл.