我怎样才能将DI​​V放入P?

时间:2011-03-26 10:15:21

标签: html css

如何将div放入段落?我将显示更改为内联,但浏览器将基本段落分为两个元素,而div不是段落的成员。

6 个答案:

答案 0 :(得分:23)

组成w3网站:

  

P元素代表一个段落。它不能包含   block-level元素(包括P本身)。

答案 1 :(得分:18)

如果您希望代码validate

,请勿在{{1​​}}中嵌套除内联元素之外的任何内容 来自property def:

  

<p>

我知道有时很难理解这些记录,但括号中的位表示<!ELEMENT P - O (%inline;)* -- paragraph -->只能包含<p>个元素

您可以(并且应该)在inline内使用<span>,如果需要,您可以将其CSS显示属性更改为<p>block,这将是完美的有效,因为CSS属性不会更改元素的实际定义..在您的情况下,听起来您需要一个内联元素,所以只需使用inline-block

答案 2 :(得分:3)

制作一个跨度,将其样式设置为一个块。

<p>
  paragraph text
  <span style="display: block;">Span stuff</span>
</p>

答案 3 :(得分:2)

根据HTML标准,您无法在<div>元素中嵌套<p>元素。想想为什么你甚至想要这样做;它应该从不是必要的。 <p>元素只能,逻辑上应该只包含内联元素和文本。

答案 4 :(得分:1)

对于那些认为验证具有决定性的人,实际上有两种方法可以在div内获得p

一种方法是在脚本中使用dom操作。例如

var theDiv = document.createElement("div");
theDiv.appendChild(document.createTextNode("inserted"));
var theP = document.getElementsByTagName("p")[0];
theP.insertBefore(theDiv, theP.firstChild); 

在此处查看此行动:http://www.alohci.net/text/html/div-in-p-by-script.htm.ashx

另一种方法是使用XHTML并使用XML内容类型提供服务。 (在IE9之前的IE中没有支持)

在此处查看:http://www.alohci.net/application/xhtml+xml/div-in-p-by-mime.htm.ashx

(请注意,虽然可能这种方式 - 它仍然不是有效。)


You提出了重点。从语义上讲,这是无稽之谈。如果您正在将文本写入纸上,则不会在段落中间放置一些内容,因此也不需要在HTML中执行此操作。

答案 5 :(得分:0)

Div是一个区块。跨度是内联的。它们都是容器。 您必须使用css为div设置display:inline。 当然它不会通过验证,所以最好使用span(内联)来实现同样的目的。