inline、block总体的概念
- block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素)。block元素通常被现实为独立的一块,会单独换一行;inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。
- 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素):
- 常见的块级元素有 div, form, table, p, pre, h1~h6, dl, ol, ul,li 等。
- 常见的内联元素有 span, a, strong, em, lable, input, select, textarea, img, br 等。
- block元素可以包含block元素和inline元素;但inline元素只能包含inline元素。要注意的是这个是个大概的说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条规律是不适用的。比如p 元素,只能包含inline元素,而不能包含block元素。但是a元素是个例外,它可以包含块级元素和行内元素。
- 一般来说,可以通过display:inline和display:block的设置,来设置元素的排列和显示方式
主要区排列别对比:
- display:inline;
- inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
- inline元素设置width,height属性无效。
- inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。
- display:block;
- block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
- block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
- block元素可以设置margin和padding属性。
- display:inline-block
- 看元素的名称就知道,inline-block是block和inline的结合体,具有block和inline的全部特征
- 默认宽度就是它本身内容的宽度。
- 和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。