zoukankan      html  css  js  c++  java
  • 水平居中、垂直居中

    一. 让图片(行内块元素)垂直居中:

      1.在父级设置:行高 等于 高度,字体大小为0

    line-height: 1rem;
    height: 1rem;
    font-size: 0;

      2.图片自己设置:

    vertical-align: middle;

       Table 合并行了之后,需要文字居中,也可以使用。

      3.vertical-align 的用法

        vertical-align: top / middle / ...... 很多属性可以在调试器里调试,这里不详细介绍。

        最近发现一个新写法,能解决所有属性都用过了依然不是想要的高度时使用:

          vertical-align: -0.2em ,同理px、rem都行,直接用单位肉眼对齐,很舒心。

    二. 常用的垂直、左右居中:

      1.四个方向偏移量为 0 ,然后 margin 设置为 auto

    .dad {
        position: relative;
    }
    .son {
        position: absolute;
        margin: auto;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }

      2.绝对定位,上和左50%,再利用 margin 反向移动宽高的一半

    .dad {
        position: relative;
    }
    .son {
         100px;
        height: 100px;
        position: absolute;
        top: 50%;
        left: 50%;
        margin-top: -50px;
        margin-left: -50px;
    }

      3.绝对定位,上和左50%,再利用 translate 反向移动50%

    .dad {
      position: relative;
    }
    .son {
       100px;
      height: 100px;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%)
    }

      4.父级 flex 布局

    #dad {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    三. 文字的居中

      height = line-height,text-align: center,就不用说了,最近发现,尤其是<button>按钮,设置border之后对文的上下居中会有影响。

      解决办法:使用计算属性calc,减掉下行高。

    测试代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <!-- <script src="./echarts.js"></script> -->
      <!-- <link rel="stylesheet" href="./index.css"> -->
      <style>
        * {
          margin: 0;
          padding: 0;
        }
    
        div {
          border: 0.01rem solid red;
          padding: 0.5rem;
        }
    
        span {
          font-size: 0.16rem;
        }
    
        .button {
          font-size: 0.16rem;
          padding: 0 0.5rem;
          cursor: pointer;
          border-radius: 0.01rem;
          border: 0.2rem solid red;
          color: #FFFFFF;
          background: #427AFF;
          display: inline-block;
          height: 2rem;
          text-align: center
        }
    
        .button1 {
          line-height: 2rem;
        }
    
        .button2 {
          line-height: calc(2rem - 0.2rem);
        }
    
        .button3 {
          line-height: calc(2rem - 0.4rem);
        }
      </style>
    </head>
    
    <body>
      <div>
        <span>测试边框对文字对齐的影响</span>
        <button class="button button1">确定</button>
        <button class="button button2">取消</button>
        <button class="button button3">返回</button>
      </div>
    </body>
    
    </html>
  • 相关阅读:
    VMware的安装
    草根创业专题开篇
    转:分布式和集中式版本控制工具svn,git,mercurial
    sql db to sqlite
    简单办公自动化系统开发与思考1
    sql ef datacontext muti thread problem
    谈云计算,服务器运算的惊天骗局
    ios5.1二货,手贱,解决方案
    阿曹的创业点子1人人快递
    创业点子wifi anywhere
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/10402502.html
Copyright © 2011-2022 走看看