Advertisement

设置图片垂直居中line-height和vertical-align的区别

阅读量:

设置图片水平居中line-height和vertical-align的区别

先看一个案例:目的是使图片相对于模块垂直居中

复制代码
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        div {
            background-color: rgb(194, 78, 240);
            overflow: hidden;
        }
        
        div ul {
            list-style: none;
        }
        
        div ul li {
            float: left;
            height: 45px;
            line-height: 45px;
        }
        
        div ul li:nth-child(1) {
            width: 8%;
        }
        
        div ul li:nth-child(1) img {
            width: 10px;
        }
        
        div ul li:nth-child(2) {
            width: 10%;
        }
        
        div ul li:nth-child(2) img {
            width: 30px;
        }
    </style>
    </head>
    
    <body>
    <div>
        <ul>
            <li>
                <img src="images/close.png" alt="">
            </li>
            <li>
                <img src="images/logo.png" alt="">
            </li>
            <li>33</li>
        </ul>
    </div>
    </body>
    
    </html>
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

案例效果:
在这里插入图片描述案例分析:

虽然代码中设置了了line-height的值为父元素的高,但是可以看到第一个图标是垂直居中了的,第二个图标是没有垂直居中的,这又是为什么呢?

因为在line-height属性中图片默认是和文字的基线对齐的
在这里插入图片描述

那对于图片默认和文字的基线对齐的情况,如果我们想自定义垂直方向上的对齐方式改怎样呢?

在CSS中有个属性vertical-align是设置垂直方向上的对齐方式的,我们只需要在同一行的任一个选择器,或者父亲节点的样式上设置改属性就行。

vertical-align属性值:
在这里插入图片描述

下面我们将图片设置为vertical-align:middle再来看看效果(设置图片垂直居中)
在这里插入图片描述

复制代码
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        div {
            background-color: rgb(194, 78, 240);
            overflow: hidden;
        }
        
        div ul {
            list-style: none;
        }
        
        div ul li {
            float: left;
            height: 45px;
            line-height: 45px;
        }
        
        div ul li:nth-child(1) {
            width: 8%;
        }
        
        div ul li:nth-child(1) img {
            width: 10px;
        }
        
        div ul li:nth-child(2) {
            width: 10%;
        }
        
        div ul li:nth-child(2) img {
            vertical-align: middle;
            width: 30px;
        }
    </style>
    </head>
    
    <body>
    <div>
        <ul>
            <li>
                <img src="images/close.png" alt="">
            </li>
            <li>
                <img src="images/logo.png" alt="">
            </li>
            <li>33</li>
        </ul>
    </div>
    </body>
    
    </html>
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    代码解读

总结:

当设置了line-height属性发现图片没有垂直居中,这时候因该还要设置vertical-align属性,单独设置vertical-align属性是不能使图片垂直居中的,vertical-align要和line-height属性一起使用。

全部评论 (0)

还没有任何评论哟~