8

可能重复:
HTML 标签 DIV 和 SPAN 有什么区别?

我知道在编码 HTML 时,我应该牢记语义,例如,h1 需要是主标题,h2 需要是副标题,表格需要是表格,<em>用于强调而不是<i>等等。 div和span之间的正确区别,除了一个是块,另一个是内联?

当我学习时,有人告诉我<span>'s 用于样式文本中线。如果我需要将一小段文字定位在网页的某个位置,并且不需要<p>标记,我是否应该使用跨度,我应该坚持使用 div 吗?如果该文本需要覆盖两行(即,它需要一个宽度),如果它只包含文本,我应该使用什么?

4

7 回答 7

9

从语义上讲,既<div>没有也没有<span>任何内在意义。它们是“包罗万象”的标签,旨在与没有现有标签真正适合的东西一起使用。如果您关心语义,请使用 div 和 span 作为最后的手段。

它们之间的唯一区别是 div 是块级元素,而 span 是内联的。这意味着默认情况下,div 将启动一个全新的块,从技术上讲,跨度内只允许内联元素和某些 CSS。大多数浏览器似乎都在处理标签而不考虑规则(假设“标签汤”),您实际上可以使用 CSS 使两者都像另一个一样,但如果您关心验证或跨浏览器兼容性,请不要这样做(你关心的,对吧?)。

于 2010-06-02T22:00:34.973 回答
7

span 和 div 之间的主要区别在于 span 是内联元素,而 div 是块元素,如p段落元素。所以,本质上

span { display: block; }

本质上是将所有跨度变成div。您仅对一行文本使用跨度,例如应用效果或填充或其他东西。div 通常用于分割您的网页,因此如果您必须在某处放置一段文本,我建议您使用 div。

于 2010-06-02T21:57:48.663 回答
5

Div 是一个分割块,span 用于跨越内联文本。

所以 Div 是一个具有高度和宽度的框/块,span 是内联的。基本上。

如果你想阅读规范,这里有一个链接。

DIV 和 SPAN 元素与 id 和 class 属性一起,提供了一种向文档添加结构的通用机制。这些元素将内容定义为内联(SPAN) 或块级(DIV),但不会对内容强加其他表现形式。因此,作者可以将这些元素与样式表、语言属性等结合使用,以根据自己的需要和品味来定制 HTML。

于 2010-06-02T21:57:11.087 回答
3

<span>并且<div>都是非常通用的元素。它们本身没有任何意义。

主要区别在于它<span>是一个内联元素。这意味着如果你有类似的东西:

<span>Some text.</span> Some other text

您在新行上没有“其他文本”。如果您用<div>(块元素)替换跨度,则会有换行符。请注意,在内联元素中包含块元素是不正确的语法。因此,您可以拥有<span>'inside <div>',但反之则不行。

请参阅此处了解更多信息:

维基百科 - 跨度和 div

About.com - 跨度与 div

于 2010-06-02T22:00:03.057 回答
2

有一个根本的区别:<div>块级元素<span>而是内联元素不同之处在于块级元素以换行符开始和结束,而行内元素则没有。

或许更重要的是,根据 HTML 版本,对于哪些其他元素在块元素和内联元素中有效,存在不同的规则。

于 2010-06-02T22:02:23.837 回答
1

You've got it. Span = inline, Div = block. That's all.

If a blurb of text needs it's own layout, (You want to put it somewhere on the screen) then it's a div.

If a blurb of text participates in the layout of the other text right next to it, then it's a span.

An inline element can't have its own layout -- then it wouldn't be inline.

于 2010-06-02T22:04:41.693 回答
1

好吧,给你一个快速简单的答案,DIV是一个除法!目标是在需要将某些元素视为一个组时使用它!

例如:使用一个 div 有一个登录面板,比如说,隐藏在屏幕的左侧,当鼠标悬停在 div 上时显示出来 :)

于 2010-06-02T21:58:49.927 回答