我开始学习 HTML,在我正在学习的课程中,它告诉我在正文中包含带有<p>
段落标签的文本。但是,在不同的部分,它只是告诉我在<h1>
标签之间放置一些文本,结果似乎是一样的。标签是否<p>
必须包含在标题标签之间?
7 回答
直接回答
不,<p>
标题内不需要。而且,绝对不能在那里使用!
根据HTML 4 DTD和HTML 5 内容模型,该p
元素不能在内部使用h1
,也不能包含h1
其中任何一个。
规格参考
在 HTML 4 中,p
element被定义为块级,并且只能包含内联元素,对于h1
element也是如此。
在 HTML 5中,p
元素可以用在需要流式内容并且可以包含短语内容的上下文中。h1
元素同样如此。
文本
其他答案提到了“自由文本”——段落文本未标记p
元素内容。文本在 HTML 5 中被归类为短语内容和流式内容,并没有什么特别之处。对于 HTML 4,我不确定这一点,我怀疑规范对此并没有说太多。
作为流内容意味着文本可以直接嵌入,body
因为它的内容模型是流内容。事实上,文本几乎可以嵌入到任何地方。使用p
元素对于样式和段落中断是必要的,因为任何空白序列通常在显示之前折叠成一个。但是在一些简单的情况下p
不需要使用,例如当整个文档只是一个标题和一个段落时:
<!DOCTYPE html>
<title>Really minimalistic HTML 5 example</title>
<h1>Really minimalistic HTML 5 example</h1>
And that’s all, folks!
寻找html
,head
和body
标签?它们被省略;但是,这些元素仍然存在。但是没有p
元素。body
您可以在 Firebug 中或通过将样式应用于和来验证这一点p
。如果你想要“这就是全部,伙计们!” 要成为真正的p
段落,只需放在<p>
“和”之前。(结束标签</p>
可以省略。)
如何看待 HTML
由于许多人对 HTML 提供了误导性的建议,我想为您指出正确的方向,就 HTML 理解而言。
元素不是标签。元素是文档结构的单位。Tag 是一个字符串,表示文档源代码中的元素。大多数元素需要两个标签(打开和关闭一个)来表示它们。例如p
,元素通常由<p>
开始标签、</p>
结束标签和这两者之间的文本表示。开始标签也可以是例如<p style="color: red">
- 相同元素的不同标签。打开标签列出元素的属性(style
在这种情况下为属性)。
HTML 用于标记文档的结构。您可以完全忽略浏览器可以以某种方式h1
以大粗体字体显示,并且边距很大。CSS 负责元素的呈现。JS 负责元素的行为。
重要的h1
是它是 1 级标题。它有这个意义,这些语义。p
,另一方面,是段落(大约;有关详细信息,请参阅我关于 HTML 中段落的问题)。标题和段落是文档的两个不同组成部分,并且它们彼此独立使用是很自然的。正确使用元素,尊重其定义的语义,对于关闭样式的漂亮显示、SEO、使用屏幕阅读器浏览和整体可访问性是必要的。
许多 HTML 标记在它们的显示方面都有一些特殊的含义。
块级和内联级。块级元素在语义上定义为从新行开始。内联元素可以在同一行内共享空间。<h1>
两者<p>
都是块级元素。的一般含义<h1>
是一个标题。更大胆、更大的文字。<p>
用于放置大文本的标签。说一些事情的描述。建议您根据它们的含义使用它们。<span>
是一个内联元素的例子。您应该根据自己的要求来判断如何使用它们。一般的习惯用法是你应该只把块级(和内联的)放在一个块级元素中,而不是放在一个内联元素。严格来说,如果您执行此类操作,则浏览器以外的某些解析环境(例如小型设备发布格式)会引发错误。
也就是说,如何包含它们完全取决于您的意愿。
深入了解:Mozilla 的可信赖文档
h1 到 h6 是标题标签 p 是段落标签。默认情况下,在大多数浏览器中显示更大,除非对其应用了排序重置。
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
<p>Some Text</p>
</body>
</head>
这是一个 jsfiddle,因此您可以看到http://jsfiddle.net/snymax/93TSp/ 编辑 http://jsfiddle.net/snymax/93TSp/1/显示 h1 - h6 p 和自由文本。
不,它们不是 - 您可以用<h1>
不带<p>
s 的文本包围文本。
也许您一直在使用一些具有影响 CSS 规则的库h1 p
没有。
<html>
<head>
</head>
<body>
<h1> My header </h1>
<p> some paragraph </p>
FREE TEXT.. Doesn't need any tags...
</body>
</html>
不
不是必需的,但可以清除显示的文本。
<h1> its a header </h1>
<p> its a paragraph of text under that specific header</p>
结果似乎是一样的不,不是!
在 HTML 中,即使 HTML 上没有任何内容,甚至没有<!DOCTYPE>
标签,您也可以通过多种方式拥有文本!
这<p></p>
只是对包含特定字体和大小的 HTML 的一种设计方式。
所以从技术上讲,你可以<p></p>
在一个<h1></h1>
标签内,但它并不是真正需要的,但它会有所不同。
<p>
<h1>
This is Possible
</h1>
</p>
<h1>
<p>
This is Possible
</p>
</h1>
<p>
This is Possible
</p>
<h1>
This is Possible
</h1>