HTML标签<div>和<span>有什么区别?

我想问一些简单的例子,说明<div>and 的用法<span>我看过他们都用来标记网页的有一个部分idclass,但我想知道是否有当一个优于其他倍。

梅番长2020/03/18 19:53:16

在HTML中,有一些标签可以为内容添加结构或语义。例如,<p>标签用于标识段落。另一个示例是<ol>有序列表标签。

如上所示,当HTML中没有合适的标记可用时,通常使用<div>and <span>标记。

<div>标记用于标识文档的块级部分/分区,该分区/分区在其前后都有换行符。

可以使用div标签的示例包括页眉,页脚,导航等。但是,在HTML 5中已经提供了这些标签。

所述<span>标签用于标识文档的一个内联区段/分。

例如,可以使用span标签将嵌入式象形文字添加到元素中。

猿神乐A2020/03/18 19:53:16

记住,基本上,他们自己也不执行任何功能。他们没有具体说明的功能只是通过他们的标签

它们只能在CSS的帮助下进行自定义。

现在,您遇到的问题是:

将SPAN标记与某些样式结合在一起,对于将其保留在html的某行(例如段落中)很有用。这是HTML中的行级别或语句级别。

例:

<p>Am writing<span class="time">this answer</span> in my free time of my day.</p>

如前所述,DIV标签功能只能在样式支持下可见,可以容纳大量HTML代码。

DIV是块级

例:

    <div class="large-time">
    <p>Am writing <span class="time"> this answer</span> in my free time of my day. 
    </p>
    </div>

根据您的要求,两者都有使用的时间和情况。

希望答案清楚。谢谢。

Itachi猪猪2020/03/18 19:53:16

只是想为spanvs的出现添加一些历史背景div

历史span

1995年7月3日,Benjamin CW Sittler 提出了一个通用文本容器标签,用于将样式应用于某些文本块。除非与样式表一起使用,否则呈现为中性。关于可读性,即含义,存在着争论。Bert Bos通过class属性(具有诸如City,person,date等的值)提到了元素的可扩展性。保罗·普雷斯科德(Paul Prescod)担心这两个因素都会被滥用。他反对在文本中提到“任何新元素都应该在旧元素上”,并添加“如果我们创建没有语义的标签,则可以在任何地方使用它而不会出错。我们必须强迫作者正确标记其文档的语义。我们必须强迫编辑器供应商在其界面中明确表明这一选择。”

-来源(W3 Wiki)

从RFC草案中引入span

首先,在没有其他元素合适的情况下,需要一个通用容器来携带LANG和BIDI属性。为此引入了SPAN元素。

-来源(IETF草案)

历史div

DIV元素可用于将HTML文档构造为分区层次结构。

...

Netscape引入了CENTER,之后他们才添加了对HTML 3.0 DIV元素的支持。由于其广泛部署,因此保留在HTML 3.2中。

HTML 3.2规范

简而言之,这两个元素都是出于对语义上更通用的容器的需求。提议将Span用作<text>样式元素的更通用替代提出Div是一种划分页面的通用方法,它具有替换<center>标签以使内容居中对齐的其他好处由于Div作为页分隔符的历史,它一直是一个块元素。Span一直是内联元素,因为其最初的目的是文本样式,而今天div和span都已成为具有默认block和inline display属性的通用元素。

小小卡卡西小卤蛋2020/03/18 19:53:16

我想说的是,如果您知道西班牙语,可以在此页面中找到适当的解释。

但是,一个快速的定义div是用于划分部分,并且span将某种样式应用于其他块元素(例如)中的元素div

伽罗逆天2020/03/18 19:53:16

Div是一个块元素,而span是一个内联元素,其宽度取决于其自身的内容,而div不

木禾2020/03/18 19:53:16

克里斯的答案中已经提到了真正重要的区别。但是,对于所有人来说,影响并不明显。

作为内联元素,<span>只能包含其他内联元素。因此,以下代码是错误的:

<span><p>This is a paragraph</p></span>

上面的代码无效。要包装块级元素,必须使用另一个块级元素(例如<div>)。另一方面,<div>只能在块级元素合法的地方使用。

此外,这些规则在(X)HTML中已修复,并且不会因CSS规则的存在改变!因此以下代码也是错误的!

<span style="display: block"><p>Still wrong</p></span>
<span><p style="display: inline">Just as wrong</p></span>
乐米亚2020/03/18 19:53:16

暗含“块元素”的含义,但未明确说明。如果我们忽略所有理论(理论是好的),那么以下是实用的比较。下列:

<p>This paragraph <span>has</span> a span.</p>
<p>This paragraph <div>has</div> a div.</p>

产生:

This paragraph has a span.

This paragraph

has
a div.

这表明,不仅一个div 被使用内联,它根本不会产生预期的影响。

Mandy蛋蛋2020/03/18 19:53:16

如其他答案中所述,默认情况下div将被呈现为块元素,而span将在其上下文中内联呈现。但是它们都没有任何语义价值。它们的存在是为了允许您将样式和标识应用于任何给定的内容。使用样式,您可以div像a一样做出行为span,反之亦然。

有用的样式之一divinline-block

例子:

  1. http://dustwell.com/div-span-inline-block.html

  2. CSS显示:内联与内联块

inline-block在游戏网站项目中,我曾经取得过巨大的成功。

达蒙小胖2020/03/18 19:53:16

这里已经有很好的详细答案,但是没有直观的示例,因此下面是一个简单的示例:

div和span之间的差异

<div>是一个块标签,<span>而是一个内联标签。

神无小哥2020/03/18 19:53:16

为了完整起见,我邀请您这样考虑:

  • HTML中定义了很多块元素(前后都有换行符),还有很多内联标签(没有换行符)。
  • 但是在现代HTML中,所有元素都应该具有含义:a <p>是一个段落,an <li>是一个列表项,等等,我们应该将正确的标记用于正确的目的-与过去的时代不同使用<blockquote>内容是否为引号来缩进
  • 所以,你会怎么做时,有没有意义的,你正在试图做的事情?400px宽的列没有意义,对吗?您只希望文本列的宽度为400px,因为这适合您的设计。
  • 因此,他们在HTML中又添加了两个元素:通用或无意义的元素<div><span>,因为否则,人们会回到滥用确实具有意义的元素。
小卤蛋前端2020/03/18 19:53:16

<div>是一个块级元素,<span>是一个内联元素。

如果您想对某些内联文本执行某些操作,<span>应该这样做,因为它不会像a <div>那样引入换行符


正如其他人所指出的,每种语义中都隐含着一些语义,最重要的事实是,a <div>暗示了文档中的逻辑划分,类似于文档的某个部分或其他内容,例如:

<div id="Chapter1">
   <p>Lorem ipsum dolor sit amet, <span id="SomeSpecialText1">consectetuer adipiscing</span> elit. Duis congue vehicula purus.</p>
   <p>Nam <span id="SomeSpecialText2">eget magna nec</span> sapien fringilla euismod. Donec hendrerit.</p> 
</div>