vertical-align属性的运用及注意事项


前言

从字面意思可以看出vertical-align是针对其垂直方向的位置调整,和text-align属性对应使用。一个控制纵向的位置,一个控制横向的位置。但需要注意的是vertical-align是用来控制行内元素的位置属性


一、vertical-align是基本内容须知

1.定义和用法

vertical-align 属性设置元素的垂直对齐方式。

说明

该属性定义行内元素基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

图片取自W3C
图片取自W3C

2.基线是什么

实例1

<div style="background-color: pink;">
<img style="border: 1px solid black" src="商城/images/p365278834.jpg" height="108" width="108"/>
<span style="border: 1px solid black;display: inline-block" >test1,看好我的位置</span>
<span style="border: 1px solid black;display: inline-block;overflow: hidden;height: 80px;">test2看好我的位置</span>
</div>

效果:
在这里插入图片描述

这里我们把每一个元素的边框都加上,相对于其边框,内容的位置就是基于某一边的边框的位置,该边框就称之为基线(个人理解)
从上个实例中可以看出
1.img标签和第一个span标签的内容部分底端是对齐的,边框则因为行内元素和块级元素的区别存在位置的区别
2.img元素的基线就是其底端,即下边框
3.inline-block元素(test2)的基线则是前面行内元素(test1)的基线
4.由test2可知overflow不是visible的inline-block元素的基线是其下边框

实例2

<div style="background: pink">
    <span style="vertical-align: super">向上</span>
    测试文字
    <span style="vertical-align: sub;">向下</span>
</div>

效果:
在这里插入图片描述


<div style="background: pink">
    <span style="vertical-align: -10px">负值效果</span>
    测试文字
    <span style="vertical-align: 10px">正值效果</span>
</div>

效果:
在这里插入图片描述

由效果图看出,设置了其vertical-align的sub和super属性以及正负值就可以使文字上下偏移,实则是将其的基线(margin-bottom)上下移动

三、边界相关

top和bottom

top:(内联)元素的顶边和行内最高元素的顶边对齐
bottom:元素的底边和行的底边对齐。

<div style="background: pink">
   默认
   <span style="vertical-align: top">top</span>
   <img src="商城/images/p38045216.jpg" height="100" width="100"/>
   <span style="vertical-align: bottom;">bottom</span>
</div>

效果:
在这里插入图片描述

middle:元素上下边的中心点和行基线向上1/2x的高度位置对齐。

<span style="font-size: 30px;border: 1px solid black">默认</span>
    <span style="font-size: 30px;height: 100px;border: 1px solid black;vertical-align: middle">middle</span>

效果:
在这里插入图片描述

middle并不是真的居中,而是近似。受字体大小的影响会产生偏移。

text-top和text-bottom

text-top:元素顶边和父级的内容区域顶边对齐
text-bottom:元素底部和父级的内容区域底部对齐

<div style="background: pink; padding-top: 20px">
    <span style="background-color: white;">text-top</span>
    <img style="vertical-align: text-top;" src="商城/images/p38045216.jpg" height="100" width="100"/></div>

效果:
在这里插入图片描述

<div style="background: pink; padding-top: 20px">
   <span style="background-color: white;">text-bottom</span>
   <img style="vertical-align: text-bottom;" src="商城/images/p38045216.jpg" height="100" width="100"/></div>

效果:
在这里插入图片描述

还记得在基线部分,我说过行内元素和img元素的基线是下边框嘛,而行内元素又受inline-block的影响,基线保持和=inline-block一致,因此实例中更改img标签的vertical-align==属性,导致其他span标签产生位置变化

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值