2013-02-16 116 views
2

是否可以在浮動divs之間創建保證金父母雙方邊緣無邊距僅浮動div之間的邊距

所以基本上:

no margin <div> |margin| <div> |margin| <div> |margin| <div> no margin 
no margin <div> |margin| <div> |margin| <div> |margin| <div> no margin 
no margin <div> |margin| <div> |margin| <div> |margin| <div> no margin 
no margin <div> |margin| <div> |margin| <div> |margin| <div> no margin 
no margin <div> |margin| <div> |margin| <div> |margin| <div> no margin 

這樣。

回答

2

使用first-childlast-child選擇指定沒有左/右邊緣,分別是:

http://jsfiddle.net/ExplosionPIlls/bzSgp/1

如果你有第一個/最後一個div之間出現的其他元素,你可以使用first-of-type/last-of-type代替。

+2

你的例子只工作,如果有一行浮動的div,這裏是升級示例http://jsfiddle.net/bzSgp/3/ – Somebody 2013-02-16 20:57:53

+0

@有人知道有多少個div會有「每行?」 – 2013-02-16 20:59:03

+0

沒有隨機照片,隨機大小。 – Somebody 2013-02-16 21:12:27

3

對不起,挖一上來,但該主題谷歌搜索後,只是出現了:

這就是爲什麼我想指出的是,有使用僅CSS的解決方案切緣陰性上,當包含元素的寬度,已知的包裝DIV(我這裏主要是使用百分比)

.wrapper { 
    margin: -1em; 
    overflow:hidden; /* or other clearfix if you need overflow */ 
} 
.item { 
    margin: 1em; 
    float:left; 
    /* ... */ 
} 

我也把一個快速demo pen

例如,Bootstrap的網格系統以類似的方式工作!

-

這種方法的一大優點是,你不必知道到底有多少項目將適合在一排(因爲你必須知道的:第n個孩子()方法)。因此,處理不同的屏幕尺寸要容易得多。