vertical-align是什么意思?

2024-01-12 16:38
文章标签 意思 align vertical

本文主要是介绍vertical-align是什么意思?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

早上一个同事提出了一个问题,下面这句html元素中的文本为什么不能垂直居中。
<span style="height:60px;vertical-align: middle; background-color: #1c93b7;">
dddddddda</span>
我用浏览器试了一下,它的展示图如下:


vertical-align声明在很多中文文档中解释是“决定元素在垂直位置的显示”,它有下面几个参数baseline | sub | super | top | text-top | middle | bottom | text-bottom |
baseline:与元素的基线对齐。
middle:与元素中部对齐。
sub:字下沉。
super:字上升。
text-top:文本顶部对齐。
text-bottom:文本底部对齐。
top:和本行位置最高元素对齐。
bottom:和本行位置最低元素对齐。

如果按照字面意思理解vertical-align:middle就应该是文字在元素的垂直位置的最中央,把入前面那个 标签中,它的位置应该在一个height为60px的box的中央啊。但是事实上不是这样的。
如果这个vertical-align:middle用来定义一个单元格td,那么它和你想像的一样起作用,看看下面的例子
<tr>
    <td style="height:80px;vertical-align:middle" οnmοuseοver="this.style.verticalAlign='bottom'"
    οnmοuseοut="this.style.verticalAlign='middle'">
    text to align</td>
</tr>
</table>

通过mouse over和out事件,我们动态的改变文字的垂直对齐位置,它确实按照你的做法工作。在msdn的文档中我发现它是可以做用于span元素的,但是没有详细解释vertical-align是怎么工作的。

后来在《CSS20 Programmer’s Reference》(注1)查了查,Page12的The Inline Layout Model小节说明了行内布局的模型。这里有一个模型图。这段文字说明了在一行文字布局中,vertical-align是用来影响不同元素的对齐位置 的。


W3C官方对vertical-align做了下面的解释:
This property affects the vertical positioning inside a line box of the boxes generated by an inline-level element.

实际上,一个Box中由很多行很多元素组成,vertical-align只作用于在同一行内的元素,它的垂直并不是相对于整个Box而言的。前面那个 span定义了一个60px的高度,但是这个span的Box中存在很多行,那段文本并不能对齐到span的中央。因此希望那段文本对齐span的中行, 需要给它定义一个line-height的属性,让line-height为60px,作用于一行的vertical-align就按你的想法工作了。

table的单元格,因为是一行内的元素,因此vertical-align按照我们的想法来工作,但是在span中并不是这样的。

注1、《CSS20 Programmer's Reference》,作者Eric A. Meyer,一本CSS20的编程参考手册。

这篇关于vertical-align是什么意思?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/598486

相关文章

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

? extends T 和 ? super T分别是什么意思?有什么不同?

<? extends T>首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List<? extends T>吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List<T>来表示?所以<? extends T>不是一个集合,而是T的某一种子类的意思,记住是一种,单一的一种,问题来了,由于连哪一种都不确定,带来了不确定性,所以是不可能通过add

路由器的Loopback地址是什么意思?

本地环回接口(或地址),亦称回送地址(loopback address)。 此类接口是应用最为广泛的一种虚接口,几乎在每台路由器上都会使用。常见于如下用途: 1 作为一台路由器的管理地址  系统管理员完成网络规划之后,为了方便管理,会为每一台路由器创建一个loopback 接口,并在该接口上单独指定一个IP 地址作为管理地址,管理员会使用该地址对路由器远程登录(telnet )

【Get深一度】小波分析概念3——正则性是什么意思,通俗解释

正则性英文是regularity,正则性一般用来刻画函数的光滑程度,正则性越高,函数的光滑性越好。通常用Lipschitz指数k来表征函数的正则性。 度量函数的正则性时,消失矩的概念是重要的,若消失矩的阶数小于正则性指数,这是小波度量不出该

【Get深一度】小波分析概念2——消失矩阶数是什么意思,通俗解释

实际应用中,基本小波不仅要满足容许条件,还要施加所谓的消失矩(Vanishing Moments)条件原因:使 尽量多的小波系数为 零 或者产生 尽量少 的非零小波系数目的:有利于数据压缩和消除噪声。 小波的消失矩的定义:若

【Get深一度】小波分析概念1——紧支撑集是什么意思,通俗解释

最近学到小波,在仿真中也用到了紧支撑函数;紧支撑性越好,说明能量越集中;用最通俗的话来讲,紧支撑是这样的: 对于函数f(x),如果自变量x在 0附近的取值范围内,f(x)能取到 C;

对用户透明的真正意思-Nazgul

!!!出处已经忘记,但文章我保留了!!! 某某软件、架构、操作“对用户透明” 第一次看到这个句型,你的理解是如何的? 是能看见“一个容器里面的详细、具体的内容物(这里指具体实现方法、代码等)”的那种透明,那种一览无余;还是“透过一块玻璃看东西,反而未有察觉这块玻璃的存在(玻璃指具体实现方法、代码等)”的这种因为透明所以“反而”什么都看不到了? 一览无余,那么完全窥探了内容

CSS行元素的截断样式box-decoration-break属性,有点儿意思!

原文地址:原文连接 在CSS中,行元素默认情况下,行内元素不会独占一行,而是在一行内根据其内容的大小进行排列。行内元素的宽度和高度由其内容决定,不能直接设置宽度和高度。行内元素不能包含块级元素,只能包含其他行内元素或文本。行内元素可以设置水平方向的边距(margin)和内边距(padding),但不会影响到其他元素的布局。 常用行内元素:a、span、i、em、strong、img等。 一、

linux ls -lrt 命令是什么意思

ls -lrt 表示 按修改时间 倒序 列出当前工作目录下的所有文件的详细信息 -lrt 实际上是代表了 "-l -r -t" 这三个选项集合。   1)-l 表示开启长列表输出,打开了就会输出文件权限、引用计数、所有者、所属组、文件大小、修改日期和文件名称这些详细的信息。 2)-t 以时间排序,最新的文件会排在上面。 3)-r 表示反向排序、倒序输出。 4)-x 按列输出,横向排

linux shell dirname $0是什么意思

获得当前shell脚本的绝对路径 #!/bin/bashSHELL_FOLDER=$(cd $(dirname $0);pwd)echo ${SHELL_FOLDER}   https://blog.csdn.net/jackyechina/article/details/52813007