zoukankan      html  css  js  c++  java
  • 实现div里的img图片水平垂直居中

    body结构

    1
    2
    3
    4
    5
    <body>
    <div>
    <img src="1.jpg" alt="haha">
    </div>
    </body>

     方法一:

    将display设置成table-cell,然后水平居中设置text-align为center,垂直居中设置vertical-align为middle。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <style type="text/css">
    *{margin: 0;padding: 0;}
    div{
    150px;
    height: 100px;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
    border:1px solid #000;
    }
    img {
    50px;
    height: 50px;
    }
    </style>

    方法二:

    通过position定位来实现。将div设置成相对定位relative,将img设置成绝对定位absolute,left:50%,top:50%,此时图片的左上角位于div的中心,要是图片的中心位于div的中心,就需要将图片向上移动图片高度的一半,并向左移动图片宽度的一半。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <style type="text/css">
    *{margin: 0;padding:0;}
    div{
    150px;
    height: 100px;
    position: relative;
    border:1px solid #000;
    }
    img {
    50px;
    height: 50px;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -25px; /* 高度的一半 */
    margin-left: -25px; /* 宽度的一半 */
    }
    </style>

     方法三:可以用在不清楚图片图片或元素的真实宽高情况下

    还是通过position定位来实现。将div设置成相对定位relative,将img设置成绝对定位absolute,left:50%,top:50%,此时图片的左上角位于div的中心,要是图片的中心位于div的中心,就需要将图片向上移动图片高度的一半,并向左移动图片宽度的一半,如果不知道元素的宽高,可以用transform: translate(-50%,-50%);

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <style type="text/css">
    *{margin: 0;padding:0;}
    div{
    150px;
    height: 100px;
    position: relative;
    border:1px solid #000;
    }
    img {
    50px;
    height: 50px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    }
    </style>

     方法四:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <style type="text/css">
    *{margin: 0;padding:0;}
    div{
    150px;
    height: 100px;
    position: relative;
    border:1px solid #000;
    }
    img {
    50px;
    height: 50px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    }
    </style>

     方法五:弹性布局flex

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <style type="text/css">
    *{margin: 0;padding:0;}
    div{
    150px;
    height: 100px;
    border:1px solid #000;
    display: flex;
    justify-content: center;
    align-items: center;
    }
    img {
    50px;
    height: 50px;
    }
    </style>

    本文内容转自:https://blog.csdn.net/DreamFJ/article/details/68921957  

  • 相关阅读:
    CF1051F The Shortest Statement
    [ZJOI2006]书架
    [FJOI2007]轮状病毒
    CF147B Smile House
    HDU4415 Assassin’s Creed
    飞行员配对方案问题
    [NOI2005]瑰丽华尔兹
    [NOIP2016]换教室
    [国家集训队]部落战争
    [NOI2005]聪聪与可可
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/13826200.html
Copyright © 2011-2022 走看看