基线:小写字母xxxxx的下边缘线就是我们的css基线;一般的行内元素都是vertical-align: baseline;默认设置;

x-height:就是指小写字母xxxx的高度,下边缘线到上边缘线的高度。

中线:我们可以近似脑补成字母x交叉点那个位置。

我们都知道,内联元素默认是基线对齐的,而基线就是x的底部

对于vertical-align:middle

规范中对垂直对齐的middle这么解释的:

middle: This identifies a baseline that is offset from the alphabetic baseline in the shift-direction by 1/2 the value of the x-height font characteristic. The position of this baseline may be obtained from the font data or, for fonts that have a font characteristic for “x-height”, it may be computed using 1/2 the “x-height”. Lacking either of these pieces of information, the position of this baseline may be approximated by the “central” baseline.

大意就是:middle指的是基线往上1/2 "x-height"高度。我们可以近似脑补成字母x交叉点那个位置。

有此可见,vertical-align: middle并不是绝对的垂直居中对齐,我们平常看到的middle效果只是一种近似的效果。原因很简单,因为不同的字体,其在行内盒子中的位置是不一样的,比方说’微软雅黑’就是一个字符下沉比较明显的字体,所有字符的位置相比其他字体要偏下一点。要是vertical-align: middle是相对容器中分线对齐,呵呵,你会发现图标和文字不在一条线上,而相对于字符x的中心位置对齐,我们肉眼看上去就好像和文字居中对齐了。

vertical-align:middle通常用于img元素,,,只对inline,inline-block和表单元格起作用。

例子:

	<div style="    background: #e3e3e3;">
<img src="test.png" style="vertical-align: middle;" width="100" height="100">xxxx测试
</div>
<!-- 1 div元素高度不固定,图片的底边默认与xxxx的底边对齐baseline,div高度119px,底下留有空隙;xxxx测试在底部;
2 div元素高度不固定,对img设置vertical-align:middle,div高度115px,底边没空隙;xxxx测试在高度的正中央;
3 div元素高度不固定,对div设置font-size:0;div高度115px,底边没空隙,但是span里的文字不显示了。
4 div元素高度固定,对于设置不设置vertical-align:middle只会改变后面文字的显示位置,默认底部,设置则中部。
-->

  个人理解一行与一行的空白就是line-height减去font-size,但两者相同,上下行就没有空白了。

1

最新文章

  1. HTTP超文本传输协议-HTTP/1.1中文版
  2. JQuery 菜鸟笔记(一)
  3. solaris tar 命令exclude使用
  4. MySQL运行状态show status中文详解(转)
  5. Java关键字——final
  6. 【BZOJ】1108: [POI2007]天然气管道Gaz
  7. jquery上传图片插件plupload
  8. Android入门之GridView(表格控件)
  9. Java中浮点数的基础知识
  10. OWIN启动项的检测
  11. java数组复制的方式和效率比较
  12. MFC中小笔记
  13. 集大1513 &amp; 1514班 软件工程第二次作业评分与点评
  14. 给jumpserver双机配置glusterfs共享复制卷
  15. 编辑器-vim
  16. python生成组织架构图(网络拓扑图、graph.editor拓扑图编辑器)
  17. 01 基于umi搭建React快速开发框架
  18. Linux环境nginx的配置
  19. 纯净得只剩下字的访问IP查询API
  20. Docker学习链接

热门文章

  1. Boost-date_time库学习
  2. React-Native 样式指南
  3. .NET基础知识(一、认识.Net)
  4. Python 正则表达式分组
  5. 应用开发之Asp.net
  6. pure
  7. C语言实现单链表(带头节点)
  8. Apache Kafka源码分析 &ndash; Broker Server
  9. 剑指Offer——把二叉树打印成多行
  10. ubuntu 编辑pdf