【问题标题】:Child div's evenly spaced and flushed to side of parent: how to?子 div 均匀分布并冲到父级的一侧:如何?
【发布时间】:2012-01-30 20:55:29
【问题描述】:

抱歉标题,但我真的不知道如何措辞。我一直在寻找 google 和 SO 并试图找到类似的东西,我相信人们之前已经问过,所以如果我的搜索不够彻底,我深表歉意。

我正在尝试整理一个看起来像这样的布局

我试图弄清楚是否有一种纯 CSS 方式来执行此操作,而不必为顶行/底行和每行的开始/结束分配特殊类。这也是为了在超过 6 个框时动态填充和滚动而创建的。把滚动条的高度/宽度从图片中去掉,有没有办法用纯 CSS 创建这个布局,还是我必须看看 javascript 解决方案?

我研究过使用 flexbox,但我需要它至少兼容 IE8,所以我不能真正走这条路。

非常感谢。

【问题讨论】:

  • 内盒和外盒有固定高度还是流动高度?
  • 此时的内盒和外盒都有固定的宽度,但是如果我们决定改变内盒的大小,我宁愿外盒没有固定的宽度/高度.我们的 CTO 的全部信条是所有容器元素都应该是流动的,这样我们就可以根据需要编辑子元素并将它们粘贴进去。这是因为我们的很多内容都是动态生成的,所以我们需要一个响应速度非常快的容器ui 方案。

标签: html css


【解决方案1】:

您可以通过浮动它们或将它们显示在行内块中来轻松实现这一点。

<div class="inline-block">
    <span></span><span></span><span></span><span></span><span></span><span></span>
</div>

<div class="float">
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>
div {
    background: blue;
    margin: 0 0 10px;
    width: 330px; }
span {
    background: red;
    width: 100px;
    height: 50px;
    margin: 5px; }
.inline-block { 
    line-height: 0; }
.inline-block span { display: inline-block; }
.float { overflow: hidden; }
.float span { float: left; }

预览:http://jsfiddle.net/Wexcode/upFPC/

【讨论】:

  • 我真的很感激这个答案......这实际上就是我现在正在做的事情。我的所有内部元素都有 10 像素的边距……但是设计师给我的模型在内部和外部框之间的间距为 0。当我为盒子编写功能时,我可能也会添加定位。虽然我知道机会很小,但我想看看是否有一种方法可以在没有 js 的情况下完成。
  • 我喜欢这个解决方案...我会为负边距声明而抓狂,但是...它会起作用的。我猜这是使它工作的唯一方法。谢谢@wex
  • 好吧,我相信他们会更乐意看到负边距而不是表格 ;) - 很乐意提供帮助。
  • 这与这个问题非常相似,可能会让您深入了解CSS fluid columns, fixed margins; the holy grail of holy grails
  • @benvie - 我只是看着代码和设计就头疼。
猜你喜欢
  • 1970-01-01
  • 2017-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
相关资源
最近更新 更多