1.何時應當使用margin:需要在border外側添加空白時。空白處不需要背景(色)時。上下相連的兩個盒子之間的空白,需要相互抵消時。如15px + 20px的margin,將得到20px的空白。何時應當時用padding:需要在border內測添加空白時。空白處需要背景(色)時。上下相連的兩個盒...
1.
何時應當使用margin:
需要在border外側添加空白時。
空白處不需要背景(色)時。
上下相連的兩個盒子之間的空白,需要相互抵消時。如15px + 20px的margin,將得到20px的空白。
何時應當時用padding:
需要在border內測添加空白時。
空白處需要背景(色)時。
上下相連的兩個盒子之間的空白,希望等於兩者之和時。如15px + 20px的padding,將得到35px的空白。
2.
1. 內聯樣式表的權值最高 1000;
2. ID 選擇器的權值為 100
3. Class 類選擇器的權值為 10
4. HTML 標簽選擇器的權值為 1
5. 繼承的權值最低,算個0.1吧
3.
!DOCTYPE 的作用是:讓頁面按照W3C的標準進行解析
4.
普通流在第一層,浮動在第二層,相對定位+絕對定位在第三層。
普通層裡面的margin和padding值相互影響,對浮動和絕對定位一點影響都沒有。
浮動層的margin和padding值對普通層的文字和圖片產生影響(浮動是為文字和圖片而生),對第三層絕對定位的margin和padding相互影響,因為他們是近親。(隻影響塊中的實質內容,不影響塊的邊框和背景等)
絕對定位對普通層的文字和盒子視窗一概不產生任何影響,對浮動層的margin和padding值產生影響,但是又獨立於浮動層,在浮動層之上。
另外,不論是普通層,浮動層,絕對定位層,裡面又可以包含普通層(第一層),浮動層(第二層),絕對層(第三層)......理論上可以無限包裹下去。也就是,我們所以說的margin,padding值的相互影響,或者是第一層,第二層,抑或是第三層,都是相對於同一個父容器。並且這裡所以的絕對定位沒有加left(right),top(bottom)值,如果加了,這個絕對定位就跑到他最近的父輩(relative)的同一個層去了。
都脫離了普通層,但浮動跟沒有設置left(right),top(bottom)的絕對定位元素在同一個層,而且相互影響。其次,絕對定位對普通層的表現跟浮動一樣,但不會將文字和圖片擠出跟自己重合的區域。
abosute最好別單獨用,因為如果頁面嵌套太深,有時不記得父標簽設置了position:relative值(我今天犯了這個錯誤),這樣這家伙會 一直往上找它父輩元素的relative(只有IE6會一直找,其它瀏覽器都是找父元素,不會找祖父輩元素,這是我剛纔修改頁面的時候驚奇發現的。)
在和dl dt dd混合的時候,也最好別單獨用abosute,不然在IE6/7裡面會出現讓你頭疼的相容問題。總之,遇到問題能不用則不用,如果用的話,最好跟position:relative一起用。
5.關於id和class: 根據經驗,最好把id用於js,class用於css
6.