css - 根据父级的左边距将 div 并排放置

标签 css html positioning

Thing I'm trying to achieve

图片是我想要实现的。基本上,我试图制作一个包装 div,并能够根据父包装最左侧部分的左边距在其中放置可变数量的 div。

我希望能够这样说:

.div1 { margin-left:5%; }
.div2 { margin-left:30%; }
.div3 { margin-left:85%; }

并实现图中所见。 然而,我注意到(我原以为会发生的)div 不愿意合作;当我添加一个 float:left 时,它们似乎将边距添加到彼此(因为在 div2 中除了它的 5% 左边距之外还有一个 margin-left:30%及其 10% 的宽度,使 div2 出现在距包装器最左侧部分 45% 处。

我意识到我可以只考虑之前的边距,并将 div2 的边距左侧设置为 30%-15%=15% 并得到正确的结果,但我想知道是否有一种方法可以只需使用 margin-left 即可?

最佳答案

不要漂浮它们;相反,将它们绝对定位在该位置,以便它们在某种意义上“重叠”;边距将按照您想要的方式将它们分开。

例子:

.green {background-color: green; position: absolute}
.one {width:10%; margin-left:5%}
.two {width:20%; margin-left: 30%}
.three {width:10%; margin-left: 85%}

演示地址:

http://jsfiddle.net/Mu4GU/

关于css - 根据父级的左边距将 div 并排放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966447/

相关文章:

css - 分区重叠

javascript - HTML可变div高度,静态宽度很多div

html - 粘性页脚不适用于全宽 slider

html - 单击外部时如何隐藏 uib-popover

javascript - 使用javascript,如何获取元素的位置

html - 如何水平居中位置为 :absolute 的标题

html - 我需要有关在导航栏(HTML 和 CSS)中定位登录表单的帮助

html - 谁能告诉我如何让这段文字不脱离 div 背景?

javascript - 将样式表加载到头部的替代方法

html - 如何在 HTML5 中内联三个部分