標籤:

全局樣式加 float:left 導致 div{margin:0 auto;} 不起作用,為什麼?

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,

form,fieldset,input,textarea,p,blockquote,th,td,span,img

{

padding:0;

margin:0;

float:left;

font-size:12px;

}

導致

.top

{

width:980px;

margin:0 auto;

}

不能用 為什麼。?


你把所有主要標籤都reset為float的做法是非常恐怖的。濫用float會導致各種bug,諸如:Incorrect Float Shrink-Wrap Bug、Float Squeeze Weird Gap Bug、Float Squeeze Duplicate Last Character Bug、Image Float Bullet Chaos Bug、Staircase Bug、Double Margin Bug、Italics Float Bug、3px Jog Bug、Scared of Floats Bug、Escaping Floats Bug、IE6 Peekaboo Bug......等等。所以在實際使用中有個原則,盡量不同時用2個或以上的float(比如可以用inline-block替代float)。

單就你的問題來說,需要重新溫習一下float的特性:

1. 脫離當前的文檔流,變換到容器的邊緣,或是另一個浮動box的邊緣,若空間不夠則向下移動直到可以放下

2. 文檔流中的line box, inline box將圍繞float box

3. float box若不設寬度將是它實際內容的寬度

4. 把box都變成block-level box,形成一個新的block formatting context

5. top/left/right/bottom, z-index無效

(http://www.slideshare.net/kejun/ss-9015786 49頁)

在第1條的基礎上,margin的值是auto或不指定在渲染時會被當做0處理。


所有元素加浮動是為了閉合浮動吧?其實閉合浮動有很多方法的。建議搜索這方面的技巧。

{margin: 0 auto;} 可以讓有寬度屬性的塊級元素水平居中。但它通常只對靜態元素(無浮動、無定位)起作用。這裡就不展開說了。

從問題來看,提問者可能處在「會用一些技巧但不太明白原理」的學習階段。建議耐心打好基礎,系統學習一下相關教材(推薦看書,不推薦網上教程),CSS 並不難學的。


當元素被聲明為浮動元素,它的布局會被移出文檔流,auto的居中就不生效了。

margin auto會居中這一點本身也不過是特殊規定而已。


float慎用。

有很多標籤是默認沒有margin,padding的。

樓主可以自己去試試,

分享個resetCss

body,h1,h2,h3,h4,h5,h6,p,dl,dd,form,ul,ol,pre,blockquote,textarea,input{ margin:0;}

ul,ol,th,td,button,textarea,input{ padding:0;}

ul,ol{list-style:none;}

img{border:none;}


如果你想重置所有html元素的margin和padding為0,那麼你可以這樣寫* { margin:0; padding:0 },『*』號代表所有的Element,實際上給元素一個float:left屬性值,元素就脫離了文檔流,但並沒有分層,也就是沒有z-index值,至於你說的margin:0 auto失效,沒有html上下文ta失效的種類就不止一個了...不過千萬不要強加給html元素不必要的屬性,要給每個html元素自由它才能發揮最佳作用,你可以將特定的屬性值寫在特定或者自定義的類裡面,這樣會更好些。


我勒去,全局樣式你也用float,看來你是float控了

1.寫頁面時不要總用浮動(尤其是全局樣式)

2.用了浮動就要清除浮動

3.特殊模塊要緊密或行內緊密排列要用浮動

4.margin:0 auto; 的居中效果不一定在所有瀏覽器內起最用

5.float:left;+margin:0 auto =》 float:left;


剛遇到你這個問題,我的建議是布局不要用bootstrap的標籤,坑爹啊!


建議你不要全局浮動

所以沒有後面的問題了。


推薦閱讀:

各大網站的 CSS 布局對行級元素是不是有些濫用?
請問怎麼通俗的理解css中的行框和行內框?
為什麼排版引擎解析 CSS 選擇器時一定要從右往左解析?
如何寫一個類似 LESS 的編譯工具?
關於 CSS 的好書有哪些?

TAG:CSS |