默认<div>
代码与默认<span>
代码与“display:block”有什么区别?
答案 0 :(得分:24)
HTML元素的有效性和语义有所不同。否则它们是相同的。
div
和span
都被定义为通用容器,在HTML方面没有更深层含义。一个默认阻止显示,另一个默认为内联,因为这些是几乎任何其他元素落入的两个主要群体
某些元素必须包含在定义为块的元素中。这与CSS display
属性无关,但与HTML的语义有关:一般的想法是基于内联始终是块的子项(如果你想到它,通常是一个好主意)
现在,如果你有一个span
display:block
,那么从CSS的角度来看,它就像div
一样。但是,从语义的角度来看,如果在span
中嵌入块级元素,则会创建无效的HTML,因为您将块嵌套在内联元素中。
答案 1 :(得分:8)
答案 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是内联元素。有两件事值得关注。