2013-02-16 89 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个孩子()方法)。因此,处理不同的屏幕尺寸要容易得多。