關(guān)于這個(gè)問題,網(wǎng)上通常給出答案是預(yù)設(shè)一個(gè)
.mt-15 {margin-top: 15px;}
.mb-15 {margin-bottom: 15px;}
然后根據(jù)需要給row加class谈秫。
但是從國外開發(fā)者做的bs模板來看扒寄,通常他們不會(huì)給row加margin
,而是給row里面的小區(qū)塊設(shè)置margin
拟烫。我認(rèn)為该编,國外開發(fā)者這種思路的道理是:
row與row之間不應(yīng)該設(shè)間距,視覺上的間距應(yīng)該由內(nèi)部的小區(qū)塊來產(chǎn)生硕淑,因?yàn)閞ow表示行容器课竣,不應(yīng)該帶樣式嘉赎。row里面的小區(qū)塊可能有很多,比如有四個(gè)列表區(qū)塊豎排于樟,這時(shí)候公条,如果給這些列表設(shè)置統(tǒng)一的margin-bottom
,那么第一迂曲、二靶橱、三個(gè)列表的margin-bottom
會(huì)撐開兩個(gè)列表中間的距離,第四個(gè)列表的margin-bottom
會(huì)從視覺上撐開本row跟下面row的距離路捧,就實(shí)現(xiàn)了小區(qū)塊之間有間距关霸,row之間也有間距。
然后杰扫,我們看看中國網(wǎng)友的建議队寇,即:給row設(shè)margin-bottom
,row內(nèi)部的小區(qū)塊拉開間距也用margin-bottom
章姓。由于margin疊加現(xiàn)象佳遣,row內(nèi)最后一個(gè)小區(qū)塊的下方的視覺間距就等于自身的margin-bottom
與 row的margin-bottom
的高的那個(gè)值。
對(duì)比一下可以看到啤覆,row上設(shè)間距其實(shí)是廢的苍日,沒什么用。
所以窗声,總結(jié)一下:
- 如果你就是想要row跟row之間的間距相恃,比小區(qū)塊之間的間距大,那么就給row內(nèi)的col內(nèi)專門放一個(gè)容器笨觅,給它設(shè)上大的
margin-bottom
拦耐,小區(qū)塊設(shè)置小的margin-bottom
。 - 如果你不需要row之間有更明顯的間距见剩,那么不要專門放個(gè)容器杀糯。
- 可能你依然會(huì)說,如果row里面只有一個(gè)小區(qū)塊苍苞,給row設(shè)個(gè)
margin
有啥不行固翰?不行的原因是:row本身的語義是表示行,這個(gè)語義表示的是一個(gè)區(qū)域概念羹呵,而不是樣式概念骂际。所以應(yīng)該優(yōu)先給里面的小區(qū)塊設(shè)置margin-bottom
,保持row本身的代碼干凈冈欢、統(tǒng)一歉铝。如果用F12工具檢查row,應(yīng)該是沒有上下間距才對(duì)凑耻。也就是說太示,如果給row設(shè)margin-bottom
柠贤,那么就應(yīng)該所有row全設(shè),于是問題就又繞回來了类缤,見上面加粗的文字臼勉。