初解vertical-align

6 篇文章 0 订阅

vertical-align 垂直文本

vertical-align什么时候会生效

当父级设置了行高(line-height);

子集为inline属性或者inline-block属性时生效;

vertical-align的属性

baseline默认。元素放置在父元素的基线上。
sub垂直对齐文本的下标。
super垂直对齐文本的上标
top把元素的顶端与行中最高元素的顶端对齐
text-top把元素的顶端与父元素字体的顶端对齐
middle把此元素放置在父元素的中部。
bottom把元素的顶端与行中最低的元素的顶端对齐。
text-bottom把元素的底端与父元素字体的底端对齐。
length 
%使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。
inherit规定应该从父元素继承 vertical-align 属性的值。

个个属性对应的位置

 

 

这张图是来自博客园但是我觉得他做的不好。我改的。

 

基线(base line)并不是汉字文字的下端沿,而是英文字母“x”的下端沿。
中线位于基线的上方,与基线的距离为小写字母x高度的一半(即0.5ex),而ex同font-size相关,大部分浏览器认为1ex = 0.5em(em同样也是相对单位,不是绝对单位),因此会将基线以上四分之一em处作为中线来对齐

*如果垂直对齐的元素没有基线,那么该元素底端与父元素基线对齐。

结合上面的属性和我的图片看一下如何对齐方式

我还做了一个dome可以看一下.

demo

vertical-align常见的问题

如果vertical-align使用带单位的数值和%

 

数值可以使用,但是根据测试除了0以外都不生效,0就是子元素对齐父元素的基线等同于baseline;

单位的数值,可以生效。如果打30px会使子元素的基线对齐父元素的基线位置上升30px的高度;

使用的时候,vertical-align的百分比是根据父级的line-height计算的,正的则上升。负的则下降

要注意是在基线的基础上。也就是baseline的基础上

比如子元素设置vertical-align:30%;而父级的line-height:100px;那么子元素的基线就和原来相比上升30px的高度。

 

图片和文字怎么设置父元素垂直居中对齐

 

我做了demo,发现如果图片超过或等于父元素的height的话,会导致父元素被撑大。有因为图片默认是vertical-align:baseline,然后如果图片大于等于父元素的话,就会导致父级下面产生一个幽灵节点,因为图片的下沿对齐父元素的基线,然后基线和bottom之间有间距,会导致父元素被撑开。给最大的图片设置middle。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值