SOURCE

console 命令行工具 X clear

                    
>
console
<p class="bold">1 给父容器设置text-align实现子元素居中</p>
<em>注意text-align是可以继承的,所以这里所有的span div都是文字居中的。
所以text-align不是让块元素居中,块元素其实只是平铺了宽度,100%的宽度。但是文字居中了
</em>
<div class="rb" style="text-align:center">
  使文字居中 i am center <br>
  <span class="rb">i am  a span in center</span>
  <div class="rb">i am a div in center too,但是如果给我width我就不居中了</div>
</div>

<p class="bold">2 固定宽度。使用margin+width实现元素自身居中.(不是父元素,也不是子元素,是自身)</p>

  <div class="rb" style="margin:0 auto;width:300px;">i am in center。但是我是div</div>


<p class="bold">3 不固定宽度。使用text-align+display: inline-block实现</p>
<em>给子元素设置inline-block。具有包裹性。包裹了内容。注意:这里是inline-bloock。不是inline元素。text-align对inline元素无效</em>
<div class="rb" style="text-align:center">
  啊啊啊啊啊
  <span>asfasdf</span>
  <div class="rb m5" style="display:inline-block">i am inline-block</div>
</div>

<p class="bold">4 不固定宽度。只设置子元素。设置子元素display为table。+margin实现</p>
<em>display为table和上面display为inline-block一样具有包裹性。但是这里和上面不一样的是这里使用margin设置div实现div居中</em>

  <div class="m5 bcgreen" style="display:table;margin:0 auto">i am in center</div>


<p class="bold">5 不固定宽度。只设置父容器。但是父容器是table。即使用table包裹div.给table设置margin实现</p>
<table style="margin:0 auto">
  <tr>
    <td>
      <div class="bcgreen">i am in center</div>
    </td>
  </tr>
</table>

<p class="bold">6 使用float+position:relative实现</p>
<div class="clearfix">
<div style="float:left;position:relative;left:50%;">
  <div class="bcgreen" style="position:relative;left:-50%">i am in center</div>
  
</div>
  </div>


<p class="bold">7 使用flex实现</p>
<div style="display:flex;justify-content:center;">
  <div class="bcgreen">i am in center</div>
</div>

<br /><br /><br />
<hr />

<ul>
  <li>margin:0 auto 是的div元素自身居中</li>
  <li>text-align有继承性,所以你设置了父元素,子元素也会继承,但是对行内元素不适用</li>
  <li>display:inlnie-block,table,或者table包裹都具有包裹性</li>
  <li>还有注意clearfix的两种方式,一种是clear属性,这个需要给float元素的相邻元。而after伪类方式是给float元素的父元素。</li>
  <li>一个div设置了margin:0 auto后,要么设置width要么设置display为table</li>
</ul>
.rb{
  border:1px solid red;
}
.bcgreen{
  background-color:green;
}

.bold{
  font-weight:bold;
}

.m5{
  margin:5px;
}

.clearfix:after{
  content:'';
    display:block;
  height:0;
    overflow:hidden;
    clear:both
  
}

em{
  font-size:12px;
  background-color:#ccc;
}