Html 元素的布局是通过获取元素的内容,在它们周围添加任何填充、边框和边距。
默认块级 HTML 元素
Default HTML layout
- 占用其父元素宽度的 100%
- 和内容一样高
- 垂直布局并放置在新行上
- 由设置在它们上的任何边距分隔。如果两个相邻的元素在其上设置了边距并且两个边距接触,则较大的边距保留而较小的边距消失(边距折叠)。
默认情况下内联级 HTML 元素
- 和他们的内容一样广泛
- 和内容一样高
- 彼此和任何相邻的文本内容位于同一行,只要它们在父块元素的宽度内有空间。
如果没有空格,则溢出的文本或元素将移至新行。 - 与垂直边距不是 100% 一致。根据 css 规范:
vertical margins will not have any effect on non-replaced inline elements。因此,例如margin-top
ormargin-bottom
对一个
span
元素或一个a
元素没有影响,但两个垂直边距都对img
,textarea
,input
元素有影响。 - 不允许我们设置它们
height
,width
因为它们只是位于块级元素的内容中。如果要控制内联元素的大小,则必须将其设置为表现得像块元素 with
display: block;
或 inline-block element withdisplay: inline-block;