博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解 vertical-align 属性
阅读量:6040 次
发布时间:2019-06-20

本文共 1819 字,大约阅读时间需要 6 分钟。

hot3.png

从字面上看, vertical-align 很好理解,即控制元素的“垂直对齐”方式。参照 W3School 的说明:该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。

1 先单独看一个简单的例子

img.top {vertical-align:text-top}img.bottom {vertical-align:text-bottom}img.middle {vertical-align:middle}img.default{}

这是一幅

位于段落中的图像。

 

这是一幅

位于段落中的图像。

这是一幅

位于段落中的图像。

这是一幅

位于段落中的图像。

注意这里设置 vertical-align 属性的是行内元素 img 而非 块级元素 p,其中 img 是 p 的子元素。效果如下:

170755_X5pp_2255071.png

可见,默认情况下 vertical-align 属性的值是 baseline。并且在某些情况下,vertical-align:top 和 vertical-align:text-top、vertical-align:bottom 和 vertical-align:text-bottom 以及 vertical-align:baseline可能会呈现相同的效果。

2 再看一个 table 中的例子

    td{ border:1px solid black;height:100px}    td:nth-child(1){}    td:nth-child(2){vertical-align:middle}    td:nth-child(3){vertical-align:top}    td:nth-child(4){vertical-align:bottom}
  
    
    
    
    
  
 单元格1   单元格2   单元格3   单元格4 

注意, td 元素的宽度是自适应内容宽度(在未设置 width 的情况下)的,这点是表格元素最特殊的地方——列宽自适应。而其高度和其它所有元素一样,是自适应内容高度的(在未设置 height 的情况下)。为了表现出 vertical-align 的效果,这里设置了 height。效果如下:

170755_a72W_2255071.png

可见,td 元素的 vertical-align 属性的默认值并非 baseline 而是 middle。

3 再看一个复杂些的 table 中的例子

   td{ display: table-cell; padding:10px;margin:10px;border:1px solid #ccc; height:300px}   td div{ display:inline-block}
  
    
  
      
div+css      
javascript      
HTML5      
CSS3    

效果如下:

170756_ByC5_2255071.png

可见 td 中的内容是“垂直居中”的, 但是这个垂直居中是以高度最大的元素为标准的。而其他的 div 元素则与其底线水平对齐,相当于

td div{vertical-align:baseline}

还是 vertical-align 属性的默认值。因此,若要属性所有内容垂直居中,需要如下代码:

 td div{ display:inline-block;vertical-align:baseline}

效果如下:

170756_YTzW_2255071.png

总之:vertical-align 属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式,其默认值是 baseline, 但对于 td 元素其默认值是 middle。

转载于:https://my.oschina.net/u/2255071/blog/387603

你可能感兴趣的文章
String、StringBuffer与StringBuilder之间区别
查看>>
工作第十三周:身体掏空,精神饱满
查看>>
Linux 内核--任务0的运行(切换到用户模式)move_to_user_mode
查看>>
ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
查看>>
批量添加-fno-objc-arc
查看>>
二叉树的层序遍历
查看>>
os模块
查看>>
安装 matplotlib
查看>>
css伪类(:before和:after)
查看>>
react native TypeError network request failed
查看>>
PLSQL锁表之后改如何操作
查看>>
Sql注入、文件上传与手机品牌信息抓取解决方案
查看>>
SQLServer跨库查询--分布式查询[转载]
查看>>
django错误-NoReverseMatch at /admin/
查看>>
Laravel中的信息验证 和 语言包
查看>>
折半查找法(二分查找 java版)
查看>>
工作两周年—--个人知识体系梳理
查看>>
win2003开启telnet
查看>>
php配置文件php.ini中文详解
查看>>
关于Tomcat配置相关总结
查看>>