【问题标题】:Div is pushed out of <p> [duplicate]Div 被推出 <p> [重复]
【发布时间】:2013-08-22 12:25:06
【问题描述】:

所以我的 div 被推出了我的

$html = '
<p>
    <a href="*link*?id='.$newsr["topic_id"].'" title="'.$newsr["topic_subject"].'">'.$newsr["topic_subject"].'</a><div style="float:right;">'.$newsr["topic_date"].'</div>
</p>';
echo $html;

结果:

<p>
    <a href="*link*?id=21" title="GHBJN">GHBJN</a>
</p>
<div style="float:right;">2013-07-18 17:05:09</div>

为什么会这样?我该如何解决这个问题?

【问题讨论】:

  • 你的问题是什么?

标签: html


【解决方案1】:

&lt;p&gt; 标记只能包含短语内容 (see W3C)。

另一方面,&lt;div&gt; 元素是一个块元素,它隐式关闭标准中定义的任何打开的段落标签。

如果 p 元素后面紧跟地址、文章、aside、blockquote、dir、div、dl、fieldset、 footer、form、h1、h2、h3、h4、h5、h6、header、hr、menu、nav、ol、p、pre、section、table 或 ul 元素,或者如果父元素中没有更多内容,并且父元素不是 a 元素。

这正是这里所应用的。

【讨论】:

  • 我相信在 html5 中是允许的
  • @arnaud576875 当然是允许的。但是定义的行为可能与预期的不同(没有经验的用户)。
  • 想解释一下为什么?
  • @arnaud576875 如果您不知道有关隐式结束标签的行为,您可以假设&lt;div&gt; 应该包含在&lt;p&gt; 中,因此,例如,应用了适当的样式。然而,定义的行为会导致不同的结构,如 OP 所示。
【解决方案2】:

一个不是简单地将&lt;div&gt; 元素放入&lt;p&gt; 元素中。


编辑:更多解释请参考this question

【讨论】:

  • 我会 +1 这 1000 倍哈哈哈。 One does not simply walk into Mordor 参考ftw。
猜你喜欢
  • 2019-11-04
  • 2012-11-19
  • 2021-05-03
  • 1970-01-01
  • 2019-02-24
  • 2012-06-01
  • 2020-05-19
  • 2019-05-27
  • 1970-01-01
相关资源
最近更新 更多