css之DOM元素左右垂直居中

对于DOM居中大家都不陌生,几乎开发pc或者移动端多会遇到这个问题,但是css对DOM居中是有很多种方法的,下面我来总结下。

1.第一种情况是父级高度宽度不确定

//display:flex

 <div id="box">
     <div id="inner">
          内容
     </div>
  </div>

#box{
       width: 300px;
       height: 300px;
       background: #999;
       display: flex;
      justify-content:center;
      align-items:Center;
    }
    #inner{
       width: 100px;
       height: 100px;
       background:green;
    }
方法一浏览器效果
//通过定位子级,宽高和top left 设置百分比 等于100%
 <div id="box">
     <div id="inner">
          内容2
     </div>
  </div>

  #box{
       width: 300px;
       height: 300px;
       background: #999;
       text-align: center;
       position: relative;
    }
    #inner{
       position: absolute;
       top: 30%;
       left: 30%;
       width: 40%;
       height: 40%;
       background:green;
    }

方法二浏览器效果

2.第二种情况是父级宽度高度确定

//利用定位加css3 transform

  <div id="box">
     <div id="inner">
          内容
     </div>
  </div>

   #box{
       width: 300px;
       height: 300px;
       background: #999;
       position: relative;
    }
    #inner{
       position: absolute;
       top: 50%;
       left: 50%;
       width: 100px;
       height: 100px;
       background:red;
       transform:translate(-50%,-50%);
       -ms-transform:translate(-50%,-50%);
       -webkit-transform:translate(-50%,-50%);
    }

方法一浏览器显示效果
//绝对定位和负边距

  <div id="box">
     <div id="inner">
          方法二
     </div>
  </div>

    #box{
       width: 300px;
       height: 300px;
       background: #999;
       position: relative;
    }

    #inner{
       position: absolute;
       top: 50%;
       left: 50%;
       width: 100px;
       height: 100px;
       background:red;
       margin-top: -50px;//自己高度的的一半
       margin-left: -50px; //自己宽度的一半
       text-align: center;
    }

方法二浏览器效果
//table-cell

 <div id="box">
     <div id="inner">
          方法三
     </div>
  </div>

  #box{
       width: 300px;
       height: 300px;
       background: #999;
        display: table-cell;
        vertical-align: middle;
        text-align: center;  
    }
    #inner{
       margin: 0 auto;
       width: 100px;
       height: 100px;
       background:red;
       text-align: center;
    }

方法三到浏览器显示效果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,664评论 0 30
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,511评论 0 5
  •   DOM 1 级主要定义的是 HTML 和 XML 文档的底层结构。   DOM2 和 DOM3 级则在这个结构...
    霜天晓阅读 1,483评论 1 3
  • 什么是选择器 每一条css样式声明(定义)由两部分组成,形式如下: 在{}之前的部分就是“选择器”,“选择器”指明...
    小挠许阅读 348评论 0 1
  • CSS格式化排版 1、字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例...
    张文靖同学阅读 1,310评论 0 3