待更新:translate、flex布局

1️⃣、容器内元素 display:inline/inline-block

将行内元素的高度设置为行高

代码示范:



  
    <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 type="text/css">
      .container {
        text-align: center;
        height: 100px;
        background: rgb(226, 79, 116);
        line-height: 100px;
      }
    </style>
  
  
    <div class="container">
      <span>this is text</span>
    </div>
  

运行结果:

文字在红色容器中实现了垂直水平居中

2️⃣、容器内元素 display:block,且元素宽高已知

image

优点:兼容性好

缺点:必须知道元素的宽高

代码示范:



  
    <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 type="text/css">
      .container {
        height: 200px;
        width: 200px;
        background: pink;
        position: relative;
      }
      .inner-box {
        /*对于距离自己最近的的父元素实现绝对定位(定位的起始位置为离自己最近的父元素)*/
        position: absolute;
        top: 50%;
        left: 50%;
         /*
          *top、left值为50%的含义是为了让子元素的边线实现居中
          *回踹50px是指,会踹子元素自己宽高的一半
          */
        margin-top: -50px;
        margin-left: -50px;
        height: 100px;
        width: 100px;
        background: rgb(241, 76, 98);
      }
    </style>
  
  
     <div class="container">
      <div class="inner-box"></div>
    </div>
  


<!--
Absolute(绝对):绝对定位
特点:脱离文档流的布局,遗留下来的空间由后面的元素填充。定位的起始位置为最近的父元素(position不为static),否则为html文档本身。以最近的开启了定位的祖先元素为参照物
-->

运行结果:

3️⃣、容器内元素display:block,且元素宽高未知

优点:兼容性较好

缺点:不支持IE7以下的浏览器

代码示例:



  
    <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 type="text/css">

      .container {
        height: 200px;
        width: 200px;
        background: pink;
        position: relative;
      }

      .inner-box {
        position: absolute;
        height: 100px;
        width: 100px;
        top: 0;
        right: 0;
        left: 0;
        bottom: 0;
        margin: auto;
          /*
          *可以直接简写成:
          *margin :0  auto ; 	
          */
        background: green;
          
      }
    </style>
  
  
    <div class="container">
      <div class="inner-box"></div>
    </div>
  

运行结果

一些引用:[CSS实现垂直水平居中_生如夏花 炫至茶靡-CSDN博客