zoukankan      html  css  js  c++  java
  • Display: table-cell实现img、文字垂直居中

    在文章开头先说明一下此方法的兼容性,IE8+以及其他现代浏览器都支持此属性。

    直接献上一个demo

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="UTF-8">

    <title>Table-cell Demo</title>

    <style type="text/css">

    body {

    padding: 0;

    margin: 0;

    }

    h3 {

    position: absolute;

    z-index: 9;

    top: 0;

    right: 0;

    margin: 0;

    }

    h5 {

    position: absolute;

    z-index: 8;

    top: 230px;

    right: 0;

    margin: 0;

    color: red;

    }

    .line {

    position: absolute;

     100%;

    height: 250px;

    border-bottom: 1px solid red;

    }

    .box {

    /*IE的主流浏览器识别的垂直居中的方法*/

    display: table-cell;

    vertical-align: middle;

    /*设置水平居中*/

    text-align: center;

    /* 针对IEHack */

    *display: block;

    /*约为高度的0.873200*0.873 约为175*/

    *font-size: 175px;

    /*防止非utf-8引起的hack失效问题,如gbk编码*/

    *font-family: Arial;

     500px;

    height: 500px;

    border: 1px solid #ccc;

    }

    .img1 {

     40px;

    height: 40px;

    /*设置图片垂直居中*/

    vertical-align: middle;

    }

    .img2 {

     80px;

    height: 80px;

    /*设置图片垂直居中*/

    vertical-align: middle;

    }

    .img3 {

     120px;

    height: 120px;

    /*设置图片垂直居中*/

    vertical-align: middle;

    }

    </style>

    </head>

    <body>

    <div class="line"></div>

    <div class="box">

    <span>bpdqooo</span>

    <img class="img1" src="./home.jpg"/>

    <img class="img2" src="./home.jpg"/>

    <img class="img3" src="./home.jpg"/>

    <span>bpdqooo</span>

    </div>

    <h3>table-cell实现垂直居中</h3>

    <h5>中线</h5>

    </body>

    </html>

    以下是说明:

    class=”box”div设为display: table-cell,即可实现div内元素的垂直居中

    将我的demo用浏览器打开,可以看到我放了3张大小不一的图片,还有两段文字,我们暂且把这些东西看作是一行

    好,为什么我要放三张图片呢?

    现在我们可以做个实验:

    把最大的图片(class=”img3”)设为vertical-align: top

    可以看到其他图片和文字均向上偏移,而且第二大的图片(class=”img2”)顶部和img3对齐,这说明,img3vertical-align属性控制行内其他所占高度更小的元素,并且对img2作用最强

    接着上一步,再来做个实验:

    img2设为vertical-align: top

    可以看到img1和文字均向上偏移,而且img1顶部和img3对齐,这说明,img2vertical-align属性控制行内其他所占高度更小的元素,并且对img1作用最强

    你是不是似乎明白了什么,同理,若把img设为vertical-align: top,那么两边的文字将会向上偏移,顶部与img1对齐。

    结论:

    table-cell内的元素,均可视为同一行中

    如果只有单行,

    该行的高度由最高的元素决定

    若对行内某一元素进行设置vertical-align: top,则该属性影响其余高度更小的元素,且对高度最接近的元素作用最强(使之与其顶部对齐)

    如果有多行,

  • 相关阅读:
    PLC200入门笔记1-软件安装和程序下载
    MCGS入门笔记3-与S7200(master)Modbus-Rtu通讯
    MCGS入门笔记2-与S7300以太网通讯
    MCGS入门笔记1-准备资料和项目操作
    博途打开时提示需要需符合fips标准
    重量模拟输入程序编写分析(含CPU 1512C产品手册)
    【西门子杯】2020工业自动化(线上)资源整合
    第13章 利用 PCA 来简化数据
    SqlHelper编写
    单例模式
  • 原文地址:https://www.cnblogs.com/blowfish/p/5108885.html
Copyright © 2011-2022 走看看