Почему firebug добавляет < tbody > на < стол & gt ;?

Попробуйте

    $(document).ready(function () {
        if ($("#site").length > 0) {
            window.location = "<%= Url.Content("~") %>" + "Login/LogOn";
        }
    });

Поместите его на страницу входа. Если он был загружен в div на главной странице, он будет перенаправлен до страницы входа. «#site» - это идентификатор div, который находится на всех страницах, кроме страницы входа.

30
задан mauris 5 November 2009 в 05:22
поделиться

5 ответов

Its not firebug, but firefox which does that. This is the way tables are supposed to be written with separate from meta data like Firefox simply inserts the tags when it finds them missing.

6
ответ дан 28 November 2019 в 00:20
поделиться

Firefox добавляет их, потому что так сказано в стандарте .

ТАБЛИЦА фактически не может содержать элементы TR напрямую, они должен содержаться в THEAD , TFOOT или TBODY . Но для простоты и обратной совместимости начальный тег TBODY может быть опущен, «когда таблица содержит только одно тело таблицы и не содержит разделов головы или ног»; в этом случае элемент определяется браузером.

4
ответ дан 28 November 2019 в 00:20
поделиться

Это не добавлено firebug, это добавлено Firefox. Firebug дает вам то, как выглядит настоящий дом. Если вы просмотрите различные элементы dom, вы заметите, что Firefox также добавил некоторые из собственных элементов стиля.

1
ответ дан 28 November 2019 в 00:20
поделиться

A.19. Явные элементы

ОБЯЗАТЕЛЬНО используют явные элементы tbody в таблицах.

Обоснование: хотя модель содержимого элемента таблицы позволяет пропускать элемент tbody, в HTML 4 этот элемент является неявным. Пользовательские агенты HTML 4 будут добавлять этот элемент незаметно, что может запутать сценарии или таблицы стилей.

Источник: http://www.w3.org/TR/2009/NOTE-xhtml-media-types-20090116/ #compatGuidelines

0
ответ дан 28 November 2019 в 00:20
поделиться

Подводя итог прекрасным объяснениям, данным в ответах и ​​комментариях bobince, Kieron, Alohci и других:

  1. Firebug просто отображает DOM проанализированной страницы. Из-за сложных правил синтаксического анализа HTML DOM будет "отличаться" (в некотором смысле) из исходного HTML.
  2. В этом случае элемент TBODY в DOM добавляется анализатором HTML. Обратите внимание, что этот странный синтаксический анализ ограничен текстовыми / html-документами, а в XHTML DOM близко соответствует исходному XML.
    • This behavior was specified in HTML 4. The content model (allowed children) for table is (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+) -- trs are only allowed in tbody! The spec says that tbody's start tag is optional, which is supposed to mean that if the HTML parser encounters tr directly inside a table it inserts the tbody start tag omitted by the author.
    • To make matters more clear HTML 5 defines very detailed parsing rules, in particular for this case: "When the insertion mode is "in table", tokens must be handled as follows: [...] A start tag whose tag name is one of: "td", "th", "tr" -> Act as if a start tag token with the tag name "tbody" had been seen, then reprocess the current token."
20
ответ дан 28 November 2019 в 00:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: