vertical-align 各个属性值的含义

注意:vertical-align 属性不继承

有关基线、行内框、行框、内容区、行距的 定义

vertical-align: baseline

vertical-align: baseline 强制元素的基线与父元素的基线对齐。(多数浏览器的默认值)

vertical-align: super

vertical-align: super 使元素基线高于父元素基线,但是高多少规范中没有要求,由用户代理(浏览器)自己决定,不同浏览器可能不同。

<style>span {vertical-align: super;}
</style>
<body><span>span1<span>span2</span>span1
</span>
</body>

红线表示此元素的基线。默认情况下同一行的不同元素的基线是在同一条水平线上的。

vertical-align: sub

vertical-align: sub 使元素的基线低于父元素的基线,与 super 一样,低多少由用户代理决定,不同浏览器可能不同。

<style>span {vertical-align: sub;}
</style>
<body><span>span1<span>span2</span>span1
</span>
</body>

红线表示元素基线:

vertical-align: bottom / text-bottom

vertical-align: bottom 将元素所在行内框的底边与行框的底边对齐。这个属性值 bottom 要和 text-bottom 区分开来。

vertical-align: text-bottom 将元素行内框的底边与文本的底边对齐。

一行中所有元素中最高的行内框即为行框的顶端,最低行内框为行框的底端,因此 bottom 的下沉程度是一定大于或等于 text-bottom 的下沉程度的。

<body><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: bottom;">图像<span style="font-size: larger;">span</span></p><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: text-bottom;">图像</p>
</body>

font-size 属性可以直接影响到元素自己的行内框,font-size 越大,元素自己的行内框越大。并且第一行的 span 标签也可以影响到第一行的行框。因此,第一行的 行框 是一定大于 第二行的行框的,所以第一行图片的下降程度要比第二行大一些。

红线表示对应元素的 text-bottom,紫色表示图片的底边。

如果把 第一行的 span 标签删除,两行没什么区别了。

<body><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: bottom;">图像</p><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: text-bottom;">图像<span>span</span></p>
</body>

vertical-align: top / text-top

vertical-align: top 与 bottm 相反。将元素所在行内框的顶边与行框的顶边对齐。

vertical-align: text-top 与 text-bottom 相反。将元素行内框的顶边与文本的顶边对齐。

第一个例子:第一行的 行框 与第二行的 p 标签行内框高度一致,所以两个图像的上升程度没有区别。

<body><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: top;">图像</p><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: text-top;">图像<span>span</span></p>
</body>

第二个例子中,第一行的 span 标签设置了 font-size: 30px ,因此使第一行的 行框 高度增加,所以第一行图片的上升程度一定大于第二行。

<body><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: top;">图像<span style="font-size: 30px;">span</span></p><p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: text-top;">图像</p>
</body>

总之,对齐后的元素的具体位置取决于行中有什么元素、元素有多高,以及父元素的字号。

vertical-align: middle

vertical-align: middle (通常用在图像上)注意作用与字面意思不太一样。作用为:把 行内元素方框的中线 以 父元素的基线 为基准,向上平移 0.5ex,即 父元素 font-size 值得一半。但是,这并不是规范定义的距离,所以在不同浏览器上向上偏移的量可能不同。

<body>
<p>这是一幅<img src="data:images/@SYV]MDOW@RIC8`)IJVB($I.jpg" alt="" style="vertical-align: middle;">图像</p>
</body>

红线为文字 text-bottom,蓝线为图像中线,两者之间的距离即为 0.5 ex。

百分数

当把 vertical-align 设置为 百分数时,计算方法为:此元素的 line-height 值 × 百分数。百分数为 正,表示根据父元素的基线,元素的基线向上平移 此元素的 line-height 值 × 百分数;若百分数为 负,表示根据父元素的基线,元素的基线向下平移 此元素的 line-height 值 × 百分数

<div style="font-size: 14px; line-height: 18px;">I felt that, if nothing else, I deserved a
<span style="vertical-align: 50%;">raise</span> for my efforts.
</div>

span 的基线以 div 的基线为基准,向上平移了 9 px。

长度值

vertical-align: n px 表示将元素从原来的位置向上平移或向下平移 n px 个位移。注意,这个属性值的设置不会导致发生相邻行之间的文本重叠现象,但是可能会改变 此行的 行框顶端位置或底端位置。

当 n 为正数时,上升:

<div style="width: 200px;">I felt that, if nothing else, I deserved a<up style="vertical-align: 10px;">raise</up> for my efforts.
</div>

当 n 为负数时,下降:

<div style="width: 200px;">I felt that, if nothing else, I deserved a<up style="vertical-align: -10px;">down</up> for my efforts.
</div>
<div style="width: 200px;">I felt that, if nothing else, I deserved a<up style="vertical-align: -10px;">down</up> for my efforts.
</div>

参考:《CSS权威指南》第四版

vertical-align 各个属性值的含义相关推荐

  1. Objective-C中变量采用@property的各个属性值的含义

    我们在OC中定义变量,可以自己来定义变量的setter方法来设置变量值,用getter方法来获取变量值.但是当变量数量增多时,还采用手动添加setter/getter方法来操作变量,就会使得程序代码量 ...

  2. target属性值的含义

    target属性值的含义: _blank:新建窗口 _self:相同窗口 _parent:父窗口 _top:首窗口 例子: window.open('url','_self'); <a href ...

  3. php中align标签属性值,html align属性是什么含义?html中的align属性设置方法介绍

    html align属性是什么含义?html中的align属性设置方法介绍都在这里,本篇文章介绍了html align属性的定义和含义,还有关于html align属性值的设置介绍 html alig ...

  4. php中align是什么意思,htmlalign属性是什么含义?html中的align属性设置方法介绍

    html align属性是什么含义?html中的align属性设置方法介绍都在这里,本篇文章介绍了html align属性的定义和含义,还有关于html align属性值的设置介绍 html alig ...

  5. min-width、max-width属性中min-content、max-content的含义,css中minmax()用法、1fr单位的含义----使页面具有相应性的属性以及属性值

    min-width.max-width属性中min-content.max-content的含义,css中minmax()用法.1fr单位的含义 min-width 表示容器的最小宽度 max-wid ...

  6. AutoPostBack属性值为True和False的含义 (即为和不和服务器交互)

    AutoPostBack属性值为True和False的含义 检举 | 2010-6-3 17:22 提问者:一过眼云烟一 许多控件都有AutoPostBack属性,请分别解释该属性值为True和Fal ...

  7. MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别?   主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键, 外键可以有重复的, 可以是空值 主索引(由关键字PRIMARY定义的索引) ...

  8. java 隐藏地址栏参数_要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将form标签的method属性值设置为( )。 (5.0分)_学小易找答案...

    [填空题]若在JSP页面的不同作用域中有相同名称的对象,且EL表达式中又省略了相应的作用域类型名,则系统将会按照 . . . 的先后顺序查找相应对象. (20.0分) [简答题]AJAX异步请求过程中 ...

  9. mysql on delete关键字_MySQL外键约束On Delete、On Update各取值的含义

    主键.外键和索引的区别? 主键 外键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的外键是另一表的主键,外键可以有重复的,可以是空值 主索引(由关键字PRIMARY定义的索引),用于表 ...

最新文章

  1. 我叫Java,2019年总结,大家请查收
  2. 清除应用数据后,应用对应的widget的数据无法刷新
  3. 全球及中国不锈钢商用厨刀行业营销战略及未来发展趋势分析报告2022年版
  4. GDB 调试多进程或者多线程应用
  5. 优化if-else代码的八种方案!
  6. c++ 函数中定义函数
  7. springboot+poi导出excel
  8. 东芝笔记本linux系统安装驱动,最详实解决方案 笔记本安装驱动指南!
  9. android jni javah,JAVAH找不到类(android ndk)
  10. win7无法连接打印机拒绝访问_打印机共享时拒绝访问
  11. Mac 连接显示器,外接显示器不出影像
  12. 《创业算法》:技术人做CEO的优势和劣势
  13. MSN Messenger协议 【 very cool stuff 】
  14. 百度地图离线开发demo(初始化地图)
  15. html倒计时的原理,JS实现活动精确倒计时 - 轩枫阁
  16. java自带的unpack闪退,java - 使用requiresUnpack无法正常使用Maven构建的Spring Boot JAR - 堆栈内存溢出...
  17. Codeforces1486 C1.Guessing the Greatest (easy version)(交互题+二分)
  18. element-ui下载失败如下显示解决方法
  19. 洛伦茨方程的运动图像画法,可以控制播放速度
  20. python 数据校验_Python数据验证库(三)voluptuous

热门文章

  1. linux字体配置要略,Linux字体配置要略.pdf
  2. 从大盘数据看A股是否为政策市
  3. Windows事件日志监控
  4. 不要慌,我有亿点小建议!万字长文
  5. 《富爸爸,穷爸爸》读后感——怎么实现财务自由
  6. Capture CIS 元件库详细分类解析
  7. PTA 2 时钟类-1(用默认的构造方法)分数 10
  8. '操作必须使用一个可更新的查询'解决方法
  9. python中成绩及格判断代码_python判断语句(第九节)
  10. 小米手机运行linux,小米6成功刷入UOS国产操作系统,可开机运行