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>
  • 相关阅读:
    Java基础12-继承(思想、覆盖、super,子类初始化)
    Java基础11-封装(思想、访问权限、this、构造方法)
    Java基础10-方法的重载与递归
    Java基础9-java的类、对象和方法
    Java基础8-浅谈java程序的运行机制与JVM运行
    Java基础7-数组
    Java基础6-控制语句
    Java基础5-运算符
    python socket编程基础
    python 之 异常处理
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/10402502.html
Copyright © 2011-2022 走看看