CSS盒子用Margin還是用Padding?

來(lái)源 | http://www.hicss.net/use-margin-or-padding/
需要在border外側(cè)添加空白時(shí)。
空白處不需要背景(色)時(shí)。
上下相連的兩個(gè)盒子之間的空白,需要相互抵消時(shí)。如15px + 20px的margin,將得到20px的空白。
需要在border內(nèi)測(cè)添加空白時(shí)。
空白處需要背景(色)時(shí)。
上下相連的兩個(gè)盒子之間的空白,希望等于兩者之和時(shí)。如15px + 20px的padding,將得到35px的空白。
舉個(gè)例子吧
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>用Margin還是用Paddingtitle><style>.top{width:160px; height:50px; background:#ccf;}.middle{width:160px; background:#cfc; border-top:1px solid #ccc;}.middle .firstChild{margin-top:20px;}.middle .secondChild{margin-top:15px;}style>head><body><div class="top">div><div class="middle"><div class="firstChild">我是firstChild,我只是想和我的父元素隔開(kāi)點(diǎn)距離,這樣看起來(lái)舒服。div><div class="secondChild">我要和樓上隔開(kāi)點(diǎn)的距離。恩,能與底邊有點(diǎn)呼吸距離就更好了。div>div>body>html>

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>用Margin還是用Paddingtitle><style>.top{width:160px; height:50px; background:#ccf;}.middle_2{width:160px; background:#cfc; padding:20px 0px;}.middle_2 .firstChild{}.middle_2 .secondChild{margin-top:15px;}style>head><body><div class="top">div><div class="middle_2"><div class="firstChild">我是firstChild,我只是想和我的父元素隔開(kāi)點(diǎn)距離,這樣看起來(lái)舒服div><div class="secondChild">我是secondChild,我要和樓上隔開(kāi)點(diǎn)的距離。恩,能與底邊有點(diǎn)呼吸距離就更好了。div>div>body>html>

1.外觀依舊良好,結(jié)構(gòu)清晰也沒(méi)有破壞布局。
2.不會(huì)產(chǎn)生垂直外邊距合并這樣的問(wèn)題。
3.書(shū)寫(xiě)規(guī)范、代碼量減少、重用性好。
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>用Margin還是用Paddingtitle><style>.top{width:160px; height:50px; background:#ccf;}.middle_3{width:160px; background:#cfc;}.middle_3 .otherChild{font-weight:bold; font-style: italic;}.middle_3 .secondChild{margin-top:10px;}style>head><body><div class="top">div><div class="middle_3"><div class="otherChild">我是新來(lái)的otherChild,我也想和我的父元素隔開(kāi)點(diǎn)距離,這樣看起來(lái)舒服,咦?!為什么我是在頂部?div><div class="secondChild">我是secondChild,我要和樓上隔開(kāi)點(diǎn)的距離。恩,能與底邊有點(diǎn)呼吸距離就更好了。div>div>body>html>

這里你把包裹的div類(lèi)似“封裝”好一個(gè)環(huán)境,而且這個(gè)div內(nèi)已經(jīng)留有足夠的內(nèi)容的“呼吸空間”,你只需要改內(nèi)容,內(nèi)容所要考慮到得位置邊距問(wèn)題,外包的div元素早已經(jīng)幫你預(yù)留好了,你用起來(lái)方便,今后改起來(lái)也方便,直接找到middle修改padding即可。

評(píng)論
圖片
表情
