Есть ли что-то неправильное в написании частей веб-страницы в XHTML с использованием HTML doctype?

StackOverflow https://stackoverflow.com/questions/1040969

  •  22-07-2019
  •  | 
  •  

Вопрос

Я только недавно начал изучать HTML / CSS и пытался научиться основательным методам веб-программирования.Я знаком с XML, поэтому кодирование веб-страниц в XHTML было достаточно интуитивно понятным, и это просто казалось разумным решением.Тем не менее, я читал такие статьи, как этот и теперь у меня двойственные чувства.

Мои опасения по поводу кодирования в HTML и XHTML проистекают из следующего:

  1. img-теги не обязательно закрывать в HTML, и для меня это имеет смысл.Но в XHTML для тегов img требуется тег close, который кажется немного обалденным.Я просто думаю, что это странно - иметь пару тегов open и close, между которыми ничего нет.
  2. теги p (как в paragraph) не обязательно закрывать в HTML, и мне это кажется странным.Имеет смысл разделить абзац между тегами open и close, как это было бы в XHTML.

Это единственные базовые примеры, которые я могу привести на данный момент, но я надеюсь, что они, по крайней мере, покажут, насколько я разделен между HTML и XHTML.Итак, вот мой актуальный вопрос:Можно ли вводить код XHTML (когда я чувствую, что он что-то соответствующим образом проясняет), когда я кодирую веб-страницу, которая должна быть в HTML (с DTD HTML)?Я уверен, что веб-сайт выглядел бы так же, но если бы люди посмотрели на мой исходный код, подумали бы они, что я ужасно непрофессиональный программист?

Кроме того, я как бы вслепую просматривал учебные пособия и руководства через Google по рациональным методам веб-программирования, и мне было интересно, есть ли у вас, ребята, какие-нибудь советы / ресурсы, которыми вы могли бы поделиться со мной.Я действительно хочу убедиться, что я учусь делать это правильно.Я был бы вам очень признателен.

Спасибо за чтение!

Редактировать:Ничего себе, такая быстрая реакция;вы, ребята, потрясающие!Поэтому я понимаю, что веб-браузеры будут довольно снисходительны, когда дело дойдет до подобных вещей.Тогда моя проблема - это вопрос тщеславия и того, как другие профессионалы относятся к написанию своего рода смеси XHTML и HTML.Является ли строго совместимый код правильным решением?Честно говоря, я просто не хочу выглядеть идиотом, ха-ха.

Это было полезно?

Решение

  Теги

img не нужно закрывать в HTML,   и это имеет смысл для меня.

Нет тега необходимо закрыть. Все элементы должны быть закрыты.

Большинство элементов состоят из начального тега, некоторого содержимого и конечного тега.

Поскольку элемент изображения не может иметь содержимого, конечный тег не требуется. В HTML элементам, которые не могут иметь контент (& Quot; EMPTY elements & Quot;) запрещены конечные теги.

  

Но в XHTML для тегов img требуется закрывающий тег, который кажется довольно прикольным.

XHTML - это приложение XML, а не приложение SGML, и XML не обладает всеми функциями, которые делает SGML & # 8212; включая возможность указать, что конечный тег запрещен.

  

Я просто думаю, что странно иметь пару открывающих и закрывающих тегов, между которыми ничего нет.

XML вводит новый вид тегов & # 8212; самозакрывающийся тег (<foo />), который действует как начальный и конечный теги вместе.

Если вы пишете HTML-совместимый XHTML (что и должно быть, если вы решите использовать XHTML и хотите поддерживать браузеры, не поддерживающие этот язык & # 8212; такие как Internet Explorer), то вы должен использовать этот синтаксис . (Я предпочитаю придерживаться HTML самостоятельно)

  Теги

p (как в абзаце) не нужно закрывать в HTML, и это для меня забавно.

Многие элементы в HTML имеют необязательные конечные теги. Это позволяет не указывать конечный тег, если он может подразумеваться.

Например:

<p>Hello, world
<p>A second paragraph

Поскольку элемент p не может содержать другой элемент p, можно подразумевать (со 100% надежностью), что начало нового абзаца закроет предыдущий.

Тем не менее, они являются необязательными , а не запрещены. Вы можете написать HTML 4.01 с явными конечными тегами для любого элемента, который не является пустым.

  

Можно ли добавить код XHTML?   (когда я чувствую, что это правильно   проясняет что-то) когда я кодирую   веб-страницу, которая должна быть в HTML   (с HTML DTD)? Я уверен, что   сайт будет выглядеть так же, но если   люди должны были посмотреть на мой источник,   они думают, что я ужасно   непрофессиональный кодер?

Это выглядело бы непрофессионально.

Тем не менее, только три раза синтаксис XHTML не соответствует синтаксису HTML:

Пустые элементы & # 8212; такие как <img> и <br> должны быть явно закрыты в XHTML & # 8230; но вы сказали, что вам не нравится этот синтаксис.

Сценарии и стили & # 8212; вам нужно использовать символьные ссылки или маркеры CDATA, если вы используете определенные символы во встроенных JS и CSS в XHTML, но эти элементы помечены как CDATA в DTD для HTML, так что это будет неправильно & # 8230; но вы все равно не должны использовать встроенные скрипты или стили.

Пространства имен & # 8212; но нет времени, когда использование пространства имен XML в середине HTML-документа приблизилось бы к разъяснению чего-либо.

Другие советы

HTML 5 позволяет использовать синтаксис XHTML.

Теперь вы можете начать использовать тип документа HTML 5, который переведет все браузеры в режим стандартов, но имейте в виду, что новые функции HTML 5 поддерживаются только в некоторых браузерах.

Из рабочей группы по технологии веб-гипертекстовых приложений :

  

Должен ли я закрыть пустые элементы с помощью / > или >?

     

Пустые элементы в HTML (например, элементы br, img и input) не требуют завершающей косой черты. например Вместо того, чтобы писать <br />, вам нужно только написать <br>. Это так же, как в HTML 4.01. Однако из-за широко распространенных попыток использовать XHTML 1.0 существует значительное количество страниц, использующих косую черту. Из-за этого был разрешен конечный синтаксис косой черты для пустых элементов в HTML, чтобы упростить переход с XHTML 1.0 на HTML5.

Удивительно простой доктайп HTML 5 выглядит следующим образом:

<!DOCTYPE html>

Так что да, вы можете написать совместимый со стандартами HTML с самозакрывающимися тегами, и он будет проверен на соответствие HTML 5 validator . Индустрия широко предпочла использовать HTML5 поверх XHTML2, и поэтому я бы не рекомендовал использовать XHTML для любых новых проектов.

<Ч>

Редактировать: просто для пояснения, теперь безопасно использовать доктайп HTML 5, и также можно с уверенностью предположить, что HTML 5 будет широко распространен по сравнению с XHTML 2, учитывая отраслевую поддержку. Теперь вы, конечно, можете создавать документы HTML 5, однако многие функции HTML5, такие как <canvas> (особенно не нуждающиеся в поддержке MS, поскольку он конкурирует с Silverlight), не поддерживают кросс-браузер и могут быть изменены.

Это нормально, в том смысле, что почти каждый браузер будет правильно его отображать, но только потому, что он создан для обработки искаженного HTML / XHTML / XML / чего угодно. Тем не менее, любой элемент (элементы), не соответствующий объявленному типу документа (в вашем случае, DTD HTML), будет препятствовать проверке вашего кода и технически будет деформирован.

С другой стороны, подавляющее большинство веб-сайтов (даже если они отображаются правильно) не проходят валидацию, поэтому это не проблема. Я бы придерживался (строгого) XHTML; обратите внимание на комментарий Джимра относительно самозакрывающихся тегов (например, <img src="foo" />).

<DOCTYPE> - это переход от SGML и должен появляться только один раз в верхней части документа. Добавление других объявлений DOCTYPE в документ будет нарушением как HTML, так и XHTML - хотя большинство браузеров, вероятно, простят вас.

Если вы должны использовать оба на странице, возможно, размещение вложенного документа в IFRAME будет более соответствовать стандартам, так как IFRAME по определению содержит отдельное окно / контекст документа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top