当前位置: 首页 > 面试题库 >

'ul'元素永远不能是'p'元素的子元素

齐航
2023-03-14
问题内容

为什么我们永远不能将ul元素作为元素的子p元素?

我用以下代码制作了一个网页

<p> some text
<ul>
<li>...</li>
<li>...</li>
.
.
.
</ul>
</p>

在这里,ul元素是p元素的子元素。但是,在所有主流浏览器(Chrome,Firefox和Internet Explorer-所有最新版本)中,其解释如下

<p> some text</p>
<ul>
<li>...</li>
<li>...</li>
.
.
.
</ul>
<p></p>

我通过右键单击ul元素(在Chrome中)并选择检查元素选项来对其进行检查。我在Chrome中看到了它,但是其他两个浏览器的行为也相同(CSS选择器“
p ul”无法正常工作)。

为什么会这样呢?在一般情况下,浏览器会进行此类更改吗?


问题答案:

请检查HTML规范,该规范明确指出禁止将列表放入段落元素,并提供一些示例说明如何执行:

列表元素(尤其是ol和ul元素)不能是p元素的子元素。因此,当句子包含项目符号列表时,您可能会想知道如何标记它。

例如,这个奇妙的句子包含与

  • 巫师,
  • 比轻快的旅行,以及

  • 心灵感应

并在下面进一步讨论。

解决方案是认识到用HTML术语表示的段落不是逻辑概念,而是结构性概念。在上面的奇妙示例中,此规范实际上定义了五段:在列表前一个,每个项目符号一个,在列表后一个。

因此,以上示例的标记可能是:

   <p>For instance, this fantastic sentence has bullets relating to</p>
    <ul>
        <li>wizards,  
        <li>faster-than-light travel, and  
        <li>telepathy,
    </ul>
    <p>and is further discussed below.</p>

希望方便地样式化由多个“结构”段落组成的“逻辑”段落的作者可以使用div元素代替p元素。

因此,例如,上面的示例可能变为以下示例:

    <div>For instance, this fantastic sentence has bullets relating to
    <ul>
      <li>wizards,  
      <li>faster-than-light travel, and  
      <li>telepathy,
    </ul>
   and is further discussed below.</div>

这个示例仍然有五个结构段落,但是现在作者可以仅对div进行样式设置,而不必分别考虑示例的每个部分。



 类似资料:
  • HTML会忽略在文本编辑器中输入的回车符合其他额外的空格,要在网页中开始一个新的段落,应该使用p元素(p 是 paragraph 的缩写)。 p元素是一个有特定语义的元素,以 <p> 标签开始,以 </p> 标签结束。但是,当 p元素后紧跟 address、article, aside、blockquote、div、dl、fieldset、footer、form、h1~h6、header、hgro

  • 我正在尝试使用以下结构单击element: 但是,这将抛出。 我当前正在使用:刮取(父)元素列表。这标识了正确的元素列表(按预期工作)。有了列表后,我应用以下函数: 使用: 而且 但是,这将触发。 我对此进行了几个小时的研究,基于几个帖子,我添加了“。”在两个斜杠之前,这表示相对于父级(而不是相对于整个DOM)。 如果我移除这个点,我总是得到页面上的第一个元素--而不是列表中每个父元素的子元素。

  • 本文向大家介绍jQuery 选择元素的子元素,包括了jQuery 选择元素的子元素的使用技巧和注意事项,需要的朋友参考一下 示例 要选择元素的子代,可以使用children()方法。 更改元素所有子.parent元素的颜色: 该方法接受一个可选selector参数,该参数可用于过滤返回的元素。            

  • 当我使用Chrome版本61时,我在沙司实验室运行我的selenium脚本时面临元素不是可点击的错误。但是,如果我将chrome版本从61降级到59,那么这个错误就消失了。 任何输入以修复版本61的错误将被赞赏。

  • 我有问题,因为我想在内部包围一些,所以我需要知道。 哪些DOM元素可以是tr的子元素?(我知道div不能。)

  • 问题内容: 我试图找出所有可以嵌套在段落元素中的有效HTML5元素,以使w3验证程序不会显示任何错误。我的意思是我正在尝试找出所有可以替换以下代码中的点的标记,以便w3验证程序不显示任何错误: 有这样的清单吗?我尝试在Google上搜索时没有任何运气。 即使有相反的列表,即不能嵌套在段落元素中的元素,对我来说也足够了。 问题答案: HTML5规范告诉我们,元素的内容模型正在对content进行措辞