这是为什么</p>;在这个HTML5文档中不合适(由Django提供)?

这是为什么</p>;在这个HTML5文档中不合适(由Django提供)?,html,html-validation,Html,Html Validation,缩进是由Firefox的源代码创建的。Firefox和HTML验证程序都表示放错了位置。但我不明白为什么 <p> <ul class="errorlist"> <li>This field is required.</li> </ul> <label for="id_creator">Creator:</label> <select onchange="Dajaxice.doors.

缩进是由Firefox的源代码创建的。Firefox和HTML验证程序都表示

放错了位置。但我不明白为什么

<p>
  <ul class="errorlist">
    <li>This field is required.</li>
  </ul>
  <label for="id_creator">Creator:</label>
  <select onchange="Dajaxice.doors.orders_create_creator_changed(fill_other_fields, {&#39;creator_pk&#39;: this.options[this.selectedIndex].value})" name="creator" id="id_creator">
    <option value="" selected="selected">Select a user</option>
    <option value="9">Amy the Tenant</option>
    <option value="6">Alex the Tenant</option>
    <option value="3">Bob the Property Manager</option>
  </select>
</p>

  • 此字段为必填字段
造物主: 选择一个用户 房客艾米 房客亚历克斯 鲍勃是物业经理

另一方面,当Django没有呈现错误消息时,closing
标记是有效的。代码如下:

<p>
  <label for="id_creator">Creator:</label>
  <select onchange="Dajaxice.doors.orders_create_creator_changed(fill_other_fields, {&#39;creator_pk&#39;: this.options[this.selectedIndex].value})" name="creator" id="id_creator">
    <option value="" selected="selected">Select a user</option>
    <option value="9">Amy the Tenant</option>
    <option value="6">Alex the Tenant</option>
    <option value="3">Bob the Property Manager</option>
  </select>
</p>

造物主:
选择一个用户
房客艾米
房客亚历克斯
鲍勃是物业经理


一个
是块级的,所以它不能放在

一个

    是块级的,所以它不能放在

    不能包含任何块级元素()

    另一方面,是块级元素()


    代码可能“正确”显示的原因是,大多数html5解析器在遇到
    中的块级元素时,都会插入一个结束符。插入此代码后,实际的

    没有附带的开口
    ,因此在该点无效。

    不能包含任何块级元素()

    另一方面,是块级元素()


    代码可能“正确”显示的原因是,大多数html5解析器在遇到
    中的块级元素时,都会插入一个结束符。插入此选项后,实际的

    没有相应的开头
    ,因此在该点上无效。

    我希望4K用户给出更详细的答案。我希望4K用户给出更详细的答案。他的代码正确显示的原因是浏览器非常努力地处理使用格式错误和无效的HTML。这并不意味着它是正确的或有效的。@Truth根据

    标签的插入是符合标准的(尽管我们可以讨论代码的干净性)。因此,在这之后,没有任何开始标记的结束

    可以被视为无效标记,而其余标记是标准一致的。@Sirko:结束

    元素总是有效的(假设打开了一个)。如果结束标记后面跟有以下元素之一,则可以省略它:地址、文章、旁白、块引号、目录、div、dl、字段集、页脚、表单、h1、h2、h3、h4、h5、h6、页眉、hr、菜单、导航、ol、p、pre、section、table或ul。@事实上,我想你没有理解我的意思。从解析器的角度来看,代码在到达

    之前是完全有效的。这是该代码中的第一个(唯一的?)无效标记(从解析器的简单角度)。从开发人员的角度来看,
    在这里放错了位置。他的代码正确显示的原因是浏览器非常努力地处理格式错误和无效的HTML。这并不意味着它是正确的或有效的。@Truth根据

    标签的插入是符合标准的(尽管我们可以讨论代码的干净性)。因此,在这之后,没有任何开始标记的结束

    可以被视为无效标记,而其余标记是标准一致的。@Sirko:结束

    元素总是有效的(假设打开了一个)。如果结束标记后面跟有以下元素之一,则可以省略它:地址、文章、旁白、块引号、目录、div、dl、字段集、页脚、表单、h1、h2、h3、h4、h5、h6、页眉、hr、菜单、导航、ol、p、pre、section、table或ul。@事实上,我想你没有理解我的意思。从解析器的角度来看,代码在到达

    之前是完全有效的。这是该代码中的第一个(唯一的?)无效标记(从解析器的简单角度)。从开发者的角度来看,
    放错了地方。