替换元素、非替换元素、行内元素框模型

对于以前比较模糊的几个概念:替换元素、非替换元素、行内元素框模型,做了如下总结

替换元素:

以前对替换元素没有概念,今天查了下资料:替换元素是浏览器根据其标签的元素与属性来判断显示具体的内容。
img、input、textarea、select、object 等都是替换元素,
这些元素都没有实际的内容。

替换元素可以增加行框高度,但不增加line-height,内容区高度值 = padding-top + padding-bottom + margin-top + margin-bottom + height。
要想替换元素居中,可以设置line-height = height, vertral-align = middle。

非替换元素:

大多数元素是不可替换元素,他们将内容直接告诉浏览器,将其显示出来。
比如 p的内容、label的内容;浏览器将把这段内容直接显示出来。

非替换元素添加padding-top或padding-bottom,不影响行框高度,但内容区高度会变化,margin-top,margin-bottom对行框没有任何影响。
添加左右边距会影响非替换元素水平位置。要使非替换元素在父元素框内居中,可以设定line-height = 父元素框的高度。

行内元素里的一些东西:

行内布局是一个很大的坑,今天总结了一下行内元素框模型,有下面几个方面:

  • 匿名文本:未被包含在行内元素的字符串
  • em框:em框在字体中定义,也被称为字符框

  • 内容区:内容区可以是元素中各个字符的em框串在一起构成的框,也可以由元素中字符字形描述的框。

  • 行间距:font-size与line-height之差/2 就是行间距

  • 行内框:通过向内容区增加行间距来描述,对于非替换元素行内框刚好等于line-height

  • 行框:这是包含该行中出现的行内框的最高点和最低点的最小框,意思是行框上边界要高于最高行内框,最低也要大于最低的行内框

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容