在使用auto中始终有许多疑惑,现将auto经常使用的几种用法总结如下:

width:auto

width的值是auto是最开始让我迷惑的地方。理解起来很简单,auto的意思是自动适应,也就是说整个元素会撑开至父元素的宽度。用公式表示就是:width+padding+margin=父width。
其中最容易混淆的就是width:100%了,用公式表示就是:width=父width,也就是说 width+padding+margin>父width。

margin:auto使元素左右居中

要使元素左右居中,只需要给元素设置宽度,然后将其margin的值为auto即可,则margin-left和margin-right会自动调节相等使得元素居中

  1. <style>
  2. .center{
  3. width:700px;
  4. background-color:red;
  5. margin:0 auto;
  6. }
  7. </style>
  8. <div class="center">
  9. <p>我是中国人</p>
  10. <p>我爱我的国家</p>
  11. <p>我从小生长在这里</p>
  12. </div>

position:absolute和margin:auto联用使元素居中

有时候我们需要元素上下左右居中,而该元素的宽带和高度未知,可以使用绝对定位的方式来实现。

首先需要设置定位的父元素的position属性

  1. <style>
  2. .outer{
  3. width: 300px;
  4. height: 300px;
  5. position: relative;
  6. border: 1px solid red;
  7. }
  8. </style>
  9. <div class="outer">
  10. </div>

设置需要居中元素的position相关属性,将其top、bottom、left、right等都设置为零后,再将其margin值设置为auto,margin值将自动调整为满足top、bottom、left、right为零。此时,元素居中。

  1. <style>
  2. .outer{
  3. width: 300px;
  4. height: 300px;
  5. position: relative;
  6. border: 1px solid red;
  7. }
  8. .inner{
  9. width: 100px;
  10. height: 100px;
  11. position: absolute;
  12. top: 0;
  13. right: 0;
  14. bottom: 0;
  15. left: 0;
  16. margin: auto;
  17. background-color: aqua;
  18. }
  19. </style>
  20. <div class="outer">
  21. <div class="inner"></div>
  22. </div>