Vertical-align 总结

1、应有前提,display是:
(1 inline水平

<img><span><strong><em>等 , inline-block中的<input><button>等

(2 ‘table-cell’元素 (单元格属性)

2、display可以更改元素的显示水平:
(1 直接把vertical-align:middle设置在属性中

3、CSS声明也可以间接更改display水平
(1 元素如果用了浮动(float)就会变成block水平了,就不在一个inline里面了
(2 元素如果用了绝对定位(position:absolute)也会变成block

4、遇到图片外面下基线存在空白,可以拆分line-height和vertical-align的关系。
比如: line-height:0; vertical-align:top;

5、(vertical-align线性类属性值中的top\bottom\middle)
(1)一般我们的垂直居中都是近似,原因是元素垂直中心点和父级基线上1/2x-height对齐,要想完全居中,可以设置:
font-size:0
(2)不过table-cell中的比较简单,设置垂直居中即可

6、(vertical-align的文本类属性值:text-top text-bottom)
盒子的顶部(底部)和父级的content area的顶部(底部)对齐
不受行高line-height和其他內联元素影响,
适用场景:图文混排等

7、(vertical-align的上标和下标)
对应:vertical-align:super 提高盒子的基线到父级合适的上标基线位置
vertical-align:sub 降低盒子的基线到父级合适的下标基线位置
例如:

XX书<sup> [1]</sup>   NH<sub>3</sub>HCO<sub>4</sub>

8、总结解决问题经验:
(1)5中我们设置font-size:0并不是万全之策,如果图片后面也要跟文字,那就同样设置vertical-align:middle
(2)小图标和文字的对齐:针对兼容性问题和效果有时候不明显,可以通过设置vertical-align负值
(3)不定尺寸图片或者多行文字的垂直居中:
[主体元素inline-block;辅助元素设置宽度为0且高度100%;主体和辅助元素都设置为vertical-align:middle]
例如:<p style='height:100px;'><img src='1.jpg'><i></i></p> [其中img是主体元素,i是额外添加的辅助元素]
我们可以这样设置样式:
img{vertical-align:middle}
i{display:inline-block;height:100%;vertical-align:middle}

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 有些东西我们经常用,但是我们却并不了解它的原理,所以一旦换了场景,好多东西就不知道该怎么用了。最近一直很纠结ver...
    朱小维阅读 10,454评论 8 34
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,898评论 0 6
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 10,128评论 0 26
  • 参考文章:深入了解CSS的line-height属性Vertical-Align: 你需要知道的所有事【译】Ver...
    若邪Y阅读 8,789评论 1 6