css中auto的用法


—什么是auto?

   +auto是自適應的意思,auto是很多尺寸值的默認值,也就是由瀏覽器自動計算。

   +塊級元素中margin、border、padding以及content寬度之和構成父元素width。

      使用auto屬性后,父元素寬度發生變化,該元素的寬度也會隨之變化。

     下圖中   auto 的值就是margin、border、padding以及content寬度之和

      

   +但是當該元素被設為浮動時,該元素的width就變成了內容的寬度了,由內容撐開,也就是所謂的有了包裹性

      overflow |   position:absolute | float:left/right都可以產生包裹性,替換元素也同樣具有包裹性。

      *|position:relavtive|相對定位      占原來的位置,不能實現模式的轉化,即不具有包裹性。

        所以在具有包裹性的元素上不可以利用width : auto;來讓元素寬度自適應瀏覽器寬。如下圖所示

       

  —有時設置margin:0 auto;不起作用?

     +maigin: 0 auto; 指元素的上下邊距為0,左右邊距根據於父元素(body)寬度自適應,即左右水平居中。如果該設置不起作用大致下面兩種原因。

     +(1)沒有為DIV設置寬度,如果DIV么有寬度,就無法參考父元素的寬度來進行自身的auto。

     +(2)DIV具有包裹性,即脫離標准流,就好比父對象所在的標准流比喻成地表,那包裹性元素就已經上天了。沒有了可供參考的父元素寬度進行auto。

  —以上純屬個人見解,歡迎大神補充糾正!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM