<p>在 <div> <span> HTML 和 XHTML 中 和 之间有什么区别?

  • 本文关键字:区别 之间 HTML div span XHTML html
  • 更新时间 :
  • 英文 :


<p><div><span>之间有什么区别?

它们可以互换使用吗?

因为我面临的问题是,对于<span>裕度不起作用,但对于<div><p>,它起作用。。

pdiv元素是块级元素,其中span是内联元素,因此span上的裕度不起作用。或者,您可以使用CSS display: block;使span成为块级元素,或者对于span,我更喜欢display: inline-block;

除此之外,这些元素具有特定的语义,div更好地用于具有不同嵌套元素的内容块,p用于段落,而span只是一个空元素,因此请记住SEO,您需要使用正确的标签来表示正确的东西,因此,例如,在div元素中包装文本将比在p 中包装文本更不具有语义

<p>应该包含文本段落,<div>使用分区来布局页面,<span>允许标记的样式略有不同,例如在<p>

这就是它们在语义上的使用方式,但是使用CSS对它们进行样式设置取决于您。

作为一名网络开发人员,我忍不住觉得所有这些指导方针在2015年都极具误导性。

当然;p〃;标签一度是为段落使用而设计的。。。但在我100%的应用程序、设计和日常的一般开发中,我们只遇到了";p〃;标签在当今的互联网上,它没有任何好处。

我会说是的,";p〃;是一个描述性的元素,因此,如果这就是它所做的全部"描述某事";,我完全支持……但它不仅仅是描述内容,它直接改变了内容,虽然这本身已经是一个限制,但它并不是它所能做的,它也限制了内容。当涉及到网络开发时,为什么任何心智正常的人都会有目的地接受一个限制性的构建块,我无法理解。从设计的角度来看,这是没有意义的。从结构的角度来看,这是没有意义的。从DOM操作PERIOD的任何一个角度来看,这都没有意义。

我们一起停止使用";p〃;标签,除非我们绝对被迫(例如,客户端WordPress后期实现,诸如此类的愚蠢事情(。没有任何借口可以解释为什么我们不能用命名良好的类和ID来描述几乎所有的东西,所以我们认为没有任何理由必须向";标准";这并没有增加任何好处,事实上,每一块拼图都是HINDER。";p〃;标签对开发人员、最终用户和现代搜索引擎都没有帮助。简而言之"p〃;标签在即使是极为复杂的实现中也几乎是不受欢迎的(而且有充分的理由(,不要让这些标准的nazi的评论控制你如何显示你的内容!

即使在这个网站上,一个以开发者为核心的网站,在其自己页面的顶部也有一个小的插件,可以使用";p〃;标记,因为它包含了足够的文本,可以运行到第二行,但由于几乎无限多的原因,它完全被捕获在DIV中(并且只有一个DIV,而不是一个DIV->p(。。。最重要的是,今天;p〃;SUCKS与从DIV创建的任何描述良好的块相比;p〃;具有非常描述性的id=";"简介";。

来自堆栈溢出:

<div id="blurb">Stack Overflow is a question and answer site for professional and enthusiast programmers. It&#39;s 100% free, no registration required.</div>

我说下降

<p>I suck</p>

和长寿命

<div class="p">I rock</div>

是的,我很欣赏我们目前的网络标准,像<span>这样的东西仍然有它的位置,甚至提供了用<div>容器无法完成的一些现代浏览器的功能,但这一点尤其重要;p〃;,作为重组和现代化HTML的一部分。。。应该留在坟墓里。。。这是一代网络,段落甚至不再是永远的段落。。。方块真的变了。。。这完全是过时和不切实际的。

正如其他人所回答的…divp是"块元素"(现在重新定义为流内容(,span是"内联元素"(短语内容

分类为流内容的元素只能在期望流内容的地方使用,分类为短语内容是流内容,因此短语元素也可以用于任何期望流内容的地方。规格提供了更详细的信息。

所有短语元素,如strongem,只能包含其他短语元素:例如,不能将table放在cite大多数流内容(如divli(可以包含所有类型的流内容(以及短语内容(,但也有少数例外:ppreth是非短语流内容("块元素"(的示例,它们只能包含短语内容("内联元素"(。当然,也有正常的元素限制,如dltable只允许包含某些元素。

虽然divp都是非短语流内容,但div可以包含其他流内容子级(包括更多的divp(。另一方面,p可以仅包含短语内容子级。这意味着您不能将div放在p中,即使两者都是非短语流元素。

现在踢球者来了。这些语义规范与元素的显示方式无关。因此,如果span中有一个div,即使CSS中有span {display: block;}div {display: inline;},也会出现验证错误。

<p><div>默认为块元素。CCD_ 54是一个内联元素。

块图元在浏览器中以新行开始和结束,而内联图元则不以新行结束。"内联"表示它们是当前行的一部分。

在当今复杂的网络设计中,这些区别的目的并不那么明显,但如果你回想HTML的早期(这些标签的来源(,文档基本上是用图像修饰的文本,那么区别就会变得更清楚。

无论哪种方式,使用CSS,基本上都可以覆盖标记的任何属性。因此,如果你想让<span>表现得像<div><p>,那么你所需要做的就是添加:

span
{
     display: block;
}

使用此代码,您将能够设置垂直边距和水平边距。

1(div元素用于描述数据容器。div标签可以包含其他元素--div是块级

2( p元素是用来描述一段内容的---para是块级

3( span元素通常用于HTML的一小部分---跨度为内联

4( 块级元素在新行上开始,内联元素没有。

5( 大多数浏览器在任意两个块级元素之间插入一条空行。例如:段落和段落之间、标题和段落之间以及两个标题之间、段落和列表之间、列表和表格之间将有空行,etc

我更认为,pdiv元素在另一侧是块级元素,span是内联元素。但是当你在代码中写p时,它会占用顶部和底部的空间,但div的行为不是这样的。看看JS fiddle:上的这个实验

https://jsfiddle.net/arifkarim/9wcef1c3/

最新更新