Могу ли я иметь атрибуты при закрытии тегов?

Есть много людей, которые помечают закрывающие теги, как это, чтобы помочь идентифицировать закрывающий тег, который идет с тегом HTML:

<div id="header">
  <div id="logo">
    <a href="index.php">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a>
  </div> <!-- logo -->
</div> <!-- header -->

Мне было интересно, если это синтаксически нормально, чтобы сделать это:

<div id="header">
  <div id="logo">
    <a href="index.php">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a>
  </div id="logo">
</div id="header">

ОБНОВЛЕНИЕ: Вот текст из спецификации HTML5.3:

8.1.2.2. Конечные теги
Конечные теги должны иметь следующий формат:

  1. Первым символом конечного тега должен быть символ ЗНАКА МЕНЬШЕ U + 003C (<).
  2. Второй символ конечного тега должен быть символом SOLIDUS U + 002F (/).
  3. Следующие несколько символов конечного тега должны быть именем тега элементов.
  4. После имени тега может быть один или несколько пробелов.
  5. Наконец, конечные теги должны быть закрыты знаком U + 003E БОЛЬШОГО ЗНАКА (>).

8.1.2.3. Атрибуты
Атрибуты элемента выражаются внутри начального тега элемента.

Обратите внимание, что атрибуты разрешены только на символах START.

используя идею @jbyrds; Использование тега HR позволяет увидеть, если вы забыли атрибут z:

<div id="header">
  <div id="logo">
    <a href="index.php" id=link">
      <img id="logoimg" src="images/as_logo.png" alt="Logo" border="0" />
    </a><hr z="link">
  </div><hr z="logo">
</div><hr z="header">

Хотя это добавляет больше текста, 32 дополнительных символа по сравнению с оригиналом или теги, имеющие скрытый класс, вы можете использовать CSS, чтобы скрыть их.

[z] {
    display: none;
}

Ответ 1

Ответ для большинства тегов нет. Однако вы можете утверждать, что теги типа img, которые могут быть самозакрывающимися, могут иметь в них атрибуты. Но эти самозакрывающиеся теги заменяют открывающий тег и закрывающий тег, поэтому он не совпадает с атрибутом в закрывающем теге. Честно говоря, в этом нет необходимости, это просто создало бы больше для браузера, чтобы читать и делать размер страницы больше.

Ответ 2

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

Ответ 3

Короткий ответ Нет.

Используйте комментарии вместо этого.

Ответ 4

Извините, но он не работает и не проверяет.

Если вы пытаетесь использовать другие атрибуты при закрытии тегов, браузер пропускает этот атрибут. Я попробовал его несколькими способами, протестировал его с помощью ids и классов, а css и javascript не узнали их в конечном теге. Лучше всего комментировать.

отредактированы

Или вы можете создавать свои собственные теги html.

Вы должны использовать перенос, и вам следует избегать

document.createElement('foo-bar');

Ответ 5

Оригинальный вопрос описывает конкретный сценарий из четырех частей:

  1. улучшение читаемости html-кода, а именно: сопоставление открывающих и закрывающих тегов <div> … <\div>;

  2. во время чтения (отладки) отрисованного источника HTML-страницы, полученного из браузера;

  3. когда визуализированный источник генерируется динамически (на стороне сервера, генерируется/обрабатывается), а также удаляется все комментарии перед отправкой веб-страницы запрашивающему клиенту;

  4. и в этом случае вопрос относится к WordPress (известной платформе php CMS для создания веб-сайтов, блогов и т.д.).

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

И

Это, как отмечалось ранее, общая техника размещения комментариев в конце каждого закрытия <\div> здесь не помогает, потому что Wordpress удалил все комментарии перед обслуживанием страницы, предположительно, чтобы уменьшить размер страницы.

Решение Javascript:

Забудьте о попытке взломать HTML, чтобы обойти WordPress, браузер и стандарты. Вместо этого просто вставьте комментарии обратно в источник, подобный этому.

При совпадении открытия <div id="myDivID"> и закрытие тегов </div>, этот javascript может помочь. Эта функция будет комментировать каждый закрывающий тег div и пометить его атрибутом divs ID, производя такой результат:

<div id="myDivID">
    <p>
        Lorem ipsum dolor sit amet, consectetur 
        ... 
        anim id est laborum.
    </p>
</div><!-- end #myDivID -->

Это будет работать, даже если отображаемая страница лишен комментариев (WordPress как в Оригинальный вопрос). Просто активируйте или введите работать в любой момент, затем просмотреть или сохранить источник. Как уже отмечалось ранее, использование комментарии не нарушают спецификацию как некоторые другие предложения могут.

Эта короткая функция должна быть легкой для понимания и модифицировать для аналогичных целей. (Обратите внимание на insertBefore Обходной путь, поскольку нет метода JS insertAfter.)

var d = window.document;
insertCommentAtDivCloseTag(d);  

function insertCommentAtDivCloseTag(document) { 
    var d = document;
    var divList = d.getElementsByTagName('div');
    var div = {};
    for (div of divList) {
        var parent = div.parentNode;
        var newNode = new Comment(' end #' + div.id + ' ');
        parent.insertBefore(newNode, div.nextSibling);
    }
}

Это быстрое и простое одноразовое решение. Если это все, что вам нужно, пропустите остальное...

Если WordPress/веб-разработка - это то, чем вы занимаетесь каждый день, возможно, вы захотите изучить некоторые из следующих действий:

Взломать WordPress

Снова забудьте о взломе стандарта HtML и взломайте WordPress вместо этого. На самом деле WordPress предназначен для взлома. Практически каждая функция, которую WordPress использует при создании веб-страницы, имеет ловушку, которую можно использовать для переопределения или изменения того, что она делает.

Кодекс, Розеттский камень WordPress

Найдите тот, который удаляет ваши комментарии, и добавьте функцию, чтобы выключать и включать его.

Если об этом уже думали, то для него уже есть плагин.

Домашняя страница плагинов WordPress

Плагины WordPress приходят и уходят, некоторые поддерживаются, другие нет, некоторые очень хороши, а некоторые плохо спроектированы, некоторые просто плохи. Поэтому будьте бдительны. С этим условием я смог найти такой плагин за десять секунд, с одним поиском, с первой попытки.

Помимо WordPress

По многим причинам выгодно обслуживать наименьшую возможную версию вашей веб-страницы, и WordPress может быть не единственным действующим лицом, динамически изменяющим ваш код или кэширующим более старые версии.

Ваша установка WordPress и запись в блоге (база данных)

Тема WordPress

Плагины для WordPress

HTTP-сервер, такой как Apache и его модули

Прокси-сервер, такой как Nginx

Хостинг-провайдер

CDN, Сеть доставки контента

(Дополнительная сеть)

Наконец мой браузер клиент

Также любые кэши, поддерживаемые любым из вышеперечисленных

И наконец, если подобные вещи являются или становятся вашей работой, вы в конечном итоге захотите изучить специализированные IDE и отдельные серверы производства и разработки.

Ответ 6

Просто используйте комментарии после тега (или в этом случае, если нужно)

HTML-комментарий начинается с <!-– и заканчивается на ––>, т.е.

<!-- This is a comment -->

Это также может быть полезно для завершения скобок или скобок.

Ответ 7

Идентификаторы должны быть уникальными. Один идентификатор относится к одному элементу и отображается в вашем коде только один раз, вы должны использовать класс, если хотите идентифицировать несколько элементов.