block, inline和inline-block的区别

  • 起新行
    • block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
    • inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
  • 设置宽高
    • block元素可以设置width、height属性, 块级元素即使设置了宽度,仍然独占一行。
    • inline元素设置width,height无效。
  • 内外边距
    • block元素可以设置margin和padding属性。
    • inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都会产生边距效果。但垂直方向的 margin/padding-top/bottom不会产生边距效果。
  • 包含
    • block可以包含inline和block元素,而inline元只能包含inline元素。
  • 而display: inline-block,则是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列到一行内,比如我们可以给一个link(a元素)inline-block的属性,使其既有block的高宽特性又有inline的同行特性。
级别 元素
行内元素 a,b,strong,span,img,label,button,input,select,textarea
块级元素 header,form,ul,ol,table,article,div,hr,aside,figure,canvas,video,audio,footer
以上文章来自:黄卉 , https://huanghui8030.github.io/css/block.html