+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)沒有為p設置寬度,如果p么有寬度,就無法參考父元素的寬度來進行自身的auto。
+(2)p具有包裹性,即脫離標準流,就好比父對象所在的標準流比喻成地表,那包裹性元素就已經上天了。沒有了可供參考的父元素寬度進行auto。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com