CSS—vertical-align


vertical-align这个属性,我知道的有三个用途,其中两个好理解,兼容性也比较好,第三个差一些。

  • 垂直文本对齐
  • 实现上下标
  • 行内元素垂直对齐

  • 垂直文本对齐
  • <td>
    可以在表格单元格内进行文本垂直对齐的设置,参考这里
    常用的:vertical-align:top、middle、bottom
  • dispaly:table-cell
    将元素的display属性设置为table-cell就可以参照上面一样,对元素内的文本进行垂直对齐啦。
    p{
    height:100px;
    width: 100px;
    background: yellow;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    }
  • 实现上下标
    设置方法:vertical-align:sub、supper
    #p1{
    font-size: 0.7rem;
    vertical-align: super;}
    #p2{
    font-size: 0.7rem;
    vertical-align: sub;}
    <p >X<span id="p1">2</span>ABC</p>
    <p >X<span id="p2">2</span>ABC</p>
    效果

    为了方便看,我将<p>设置了浮动。
    由于vertical-align是设置行内元素垂直对齐,所以该属性应该作用于行内元素上
  • 行内元素垂直对齐
    【观察默认】
    p{
    height:100px;
    line-height: 100px;
    width: 300px;
    background: yellow;
    text-align: center;
    }
    <p><img src="bac1.jpg"/><span>HELLO</span></p>
    vertical-align:baseline(默认)

    参考线

    上图是默认的对齐方式:
    <p>内加入行内元素<img>
    利用元素高度等于行高,进行文本居中,这就说名此时黄色背景区域里只是一行文本
    发现img这里行内元素,并没有进行文本居中,首先他不是文本,其次他的对齐方式,是参照已经文本对齐的HELLO的基线对齐。
    再看多行文本下,取消了行高设置,对span元素进行了背景加蓝,方便观看。
    多行效果

    【需要知道】
    行内文本元素,会继承其父元素的行高。导致行内文本元素的高度被扩高。所以设计界面时别忘记这一点,导致忽略行内元素的真实行高。
    【测试未设置行高】
    在未设置行高的情况下,行内元素的真实高度即为图中蓝色背景区域。
  • vertical-align: bottom
    img{vertical-align: bottom; //与行内最低元素底部对齐}
    span{background: blue; }
    效果:对齐的是底部不是基线
  • vertical-align: top
    img{vertical-align: top; //与行内最高元素顶部对齐}
    span{background: blue; }
    效果:对齐顶部
  • vertical-align: middle
    img{vertical-align: middle; //使图片位于该行的垂直中间}
    span{background: blue; }
    效果,图片居中

    乍一看,图片没有变化,反倒文本变了,对于top、bottom、baseline,是设置行内元素垂直对齐,但是middle是设置自身相对所在行居中,但是该行最高的元素就是图片,所以图片本身就是居中,而文本则恢复默认的对于基线对齐。
    这时,同时对span这个蓝色背景的文字设置span{vertical-align: middle; }发现蓝色背景的图片也居中了。
    效果

    【测试设置行高】
    这时候行内文本元素集成行高,其高度充斥这一行。
    p{line-hight:30px;}
    多了15px?

    因为图片本身有35px,由于默认时,对齐基线,图片为了对齐基线,由于自身又太高,就扩高了高度。再加上内部span继承了行高,观察文本下面有留白,即是设置完行高后,上下腾出的留白。
  • vertical-align:top
    img{vertical-align: top; }
    效果

    行内最高元素当然是继承了行高后行内文本么,怎么看上去,并没有使得大家顶部对齐啊?
    其实已经对齐了,因为文字上的留白,是由于行高设置的原因,还有图片要对齐于行内文本(一定得对齐加上留白的文本)。
  • vertical-align:bottom
    img{vertical-align: bottom; }
    原因就是,设置行高后,有留白
  • vertical-align:middle
    img{vertical-align: middle; }
    看起来貌似没啥区别

    没区别的原因是因为,图片很高会扩充高度,文本设置行高后,上下有留白,这么解释,可能还不太懂上图的原因。
    图片设置居中与该行,文本保持原来的位置,文本下方貌似比较多,是因为图片撑的。

【还有……】
这两个得相对于设置行高的bottom与top做对比

  • vertical-align:text-top
    左:vertical-align:text-top 右:vertical-align: top
  • vertical-align:text-bottom
    左:vertical-align:text-bottom 右:vertical-align: bottom

看出差别了吧,对齐时忽略行高导致的留白。

别忘记了兼容:IE7及其以前版本表现不好。利用该属性设计界面时,注意测试IE6、7

貌似图片越来越多啦,因为我口才不好,形容不出来啊
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容