<p>
、<div>
和 <span>
之间有什么区别?
它们可以互换使用吗?
因为我遇到了问题,<span>
的 margin 不起作用,但是对于 <div>
和 <p>
是有效的。
<p>
、<div>
和 <span>
之间有什么区别?
它们可以互换使用吗?
因为我遇到了问题,<span>
的 margin 不起作用,但是对于 <div>
和 <p>
是有效的。
p
和div
元素是块级元素,而span
是行内元素,因此对的边距不起作用。您可以通过使用CSS display: block;
将变成块级元素,或者对于我更喜欢使用display: inline-block;
除此之外,这些元素具有特定的语义意义,div
更适合用于具有不同嵌套元素的内容块,p
用于段落,span
仅是一个空元素,因此需要考虑SEO,您需要为正确的内容使用正确的标记,所以例如将文本包装在
元素中语义上更少。
<p>
应该包含文本段落,<div>
用于使用分区布局页面,<span>
允许标记略微不同样式,例如在<p>
中。
这是它们在语义上的使用方式,但它们的样式使用CSS
取决于您。
<div id="blurb">Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.</div>
我说反对
<p>I suck</p>
长命百岁
<div class="p">I rock</div>
是的,我很欣赏我们当前的网络标准,像<span>
这样的东西仍然有它们的用处,甚至提供了一些现代浏览器无法使用<div>
容器实现的功能,但正是这个经常出问题的元素“p”,作为一个重组和现代化HTML的一部分...应该被留在属于它的坟墓中...这是一个段落不再永远是段落的网络时代...区块真的在变化...这只是过时和不切实际。
<div class="p"></div>
这样的东西对我来说没有意义。 - Mr. Alien<p>
和<div>
的区别,即使用户不能分辨。“标准根本没有任何好处。” — 我建议您加强对无障碍知识的了解。只是出于好奇,<p>
有什么“限制”?您只是明确表示了它如何“限制”内容(不管那意味着什么),以及它“没有意义”。你可以更具体地说明一下吗? - chharveydiv
分配一个p
类,您可以应用在主CSS文件中定义的全局CSS规则.p{}
。这将使您能够自定义p
标签的定义,但会牺牲那些专门处理这些标签的辅助技术的效果。 - Nicholas Gentile正如其他人所回答的... div
和 p
是“块元素”(现已重新定义为流内容),而span
是一个“内联元素”(短语内容)。是的,您可以更改这些元素的默认显示方式,但是“流”与“块”以及“短语”与“内联”之间存在差异。
被分类为流内容的元素只能在期望流内容的地方使用,而被分类为短语内容的元素可以在期望短语内容的地方使用。由于所有短语内容都是流内容,因此短语元素也可以在任何期望流内容的地方使用。 规范提供了更详细的信息。
所有短语元素,例如strong
和em
,只能包含其他短语元素:例如,您不能将table
放在cite
中。 大多数流内容,例如div
和li
,可以包含所有类型的流内容(以及短语内容),但是有一些例外:例如,p
、pre
和th
是非短语流内容(“块元素”),只能包含短语内容(“内联元素”)。当然还有一些普通的元素限制,例如dl
和table
只允许包含特定的元素。
虽然 div
和 p
都是非语序流内容,但是 div
可以包含其他流内容子元素(包括更多的 div
和 p
)。另一方面,p
只能包含语序内容子元素。这意味着你不能把一个 div
放在 p
里面,即使两者都是非语序流元素。
现在,事情变得有趣了。这些语义规范与元素的显示方式无关。因此,如果你在 span
中放置一个 div
,即使你在 CSS 中设置了 span {display: block;}
和 div {display: inline;}
,你也会收到验证错误。
p
、pre
和th
是非短语流内容(“块元素”)的示例,它们只能包含短语内容(“内联元素”)”。 - Jeroen Wiert Pluimers<p>
和<div>
是默认的块级元素。而<span>
是内联元素。
块级元素在浏览器中以新行开头和结尾,而内联元素不会。 "内联"意味着它们是当前行的一部分。
随着今天复杂的网页设计,这些区别的目的变得不那么明显,但如果您回想一下HTML的早期(这些标记来自哪里)时代,那时的文档基本上是带有图像的修饰文本,这种区别变得更加清晰。
无论如何,使用CSS,您可以覆盖标签的基本任何属性。因此,如果您想让一个<span>
表现得像一个<div>
或一个<p>
,您只需要添加:
span
{
display: block;
}
display: block;
,它们也只能包含短语内容。 - chharvey1) div元素用于描述数据容器。 div标签可以包含其他元素---div是块级元素
2) p元素用于描述内容段落---para是块级元素
3) span元素通常用于小块的HTML。---span是内联元素
4) 块级元素在新行上开始, 内联元素则不会。
5) 大多数浏览器在任何两个块级元素之间插入一个空行。 例如: 在段落和段落、标题和段落以及两个标题之间、段落和列表之间、列表和表格之间等都会有空行。
p
和div
元素是块级元素,而span
是行内元素。但当你在代码中写p
时,它会在顶部和底部占用空间,但div
的行为不是这样的。在JS fiddle上检查一下这个实验: