带显示块的SPAN

时间:2010-10-08 11:49:59

标签: css

默认<div>代码与默认<span>代码与“display:block”有什么区别?

7 个答案:

答案 0 :(得分:24)

HTML元素的有效性和语义有所不同。否则它们是相同的。

  • divspan都被定义为通用容器,在HTML方面没有更深层含义。一个默认阻止显示,另一个默认为内联,因为这些是几乎任何其他元素落入的两个主要群体

  • 某些元素必须包含在定义为块的元素中。这与CSS display属性无关,但与HTML的语义有关:一般的想法是基于内联始终是块的子项(如果你想到它,通常是一个好主意)

  • 现在,如果你有一个span display:block,那么从CSS的角度来看,它就像div一样。但是,从语义的角度来看,如果在span中嵌入块级元素,则会创建无效的HTML,因为您将块嵌套在内联元素中。

答案 1 :(得分:8)

  • 可以包含在div或span中的元素(制作跨度显示:例如,块不允许您在其中放置表格)
  • CSS无法使用时的渲染

答案 2 :(得分:4)

<span>默认为display:inline;,而<div>默认为display:block;

这是两者之间的唯一区别,所以如果你为一个范围指定display:block;,它将按照div正常行为的方式行事,反之亦然。

display:inline;使元素在文本正文中工作,而display:block;使它充当一个块(奇怪的是!)。

(请注意,还有一个鲜为人知的变体display:inline-block;,它是两者之间的中途。<img>标签默认为此设置)

答案 3 :(得分:3)

默认情况下,

<span>是内联元素。也就是说<span>元素在ir之前和之后都不会产生任何中断。此外,还有一些属性无法应用于内联元素,如高度。

默认情况下,

<div>是块级元素。这是<div>在渲染之前和之后生成中断。

您可以通过display属性将块级元素更改为内联,反之亦然。

有关所有display属性的说明,请参阅this

答案 4 :(得分:2)

您可以找到here显示CSS属性的定义。

如此链接所述,block值表示:

  

元素将生成一个块框(元素前后的换行符)

默认情况下,此属性的值为inline,定义为:

  

元素将生成一个内联框(在元素之前或之后没有换行符)。这是默认的

答案 5 :(得分:1)

样式为span的{​​{1}}元素基本上成为display: block元素。它使元素的宽度拉伸以填充它所在的任何容器。

答案 6 :(得分:0)

div是块元素,span是内联元素。有两件事值得关注。

  1. 可见行为 - block formating concepts VS Inline formatting context
  2. (X)HTML有效性关系 - 基本上你永远不应该在内联中嵌入块元素,所以如果你必须在链接元素(内联)中创建一些块行为元素结构,请使用跨度并设置它们的显示:block via CSS