在 CSS 中制作浮动框填充包装器

发布于 2024-11-28 06:39:06 字数 1043 浏览 1 评论 0原文

这让我发疯。

我正在构建一个页面,该页面仅具有预定义的页眉和页脚,它们之间的内容将是一组必须正确放置才能填充包装器的框(动态)。

这是一个示例: http://jsfiddle.net/rdMKQ/1/

HTML:

<div id="wrapper" >
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:80px;height:60px;background-color:yellow"> 3 </div>
    <div class="box" style="width:40px;height:30px;background-color:green"> 4 </div>
</div>

非内联 CSS:

#wrapper{width:180px;}
.box{float:left}

所有的框 float:left 和我使用的大小只是“随机”作为示例,

我可以做什么来定位绿色框 (4) 位于红色框下方(2) 填补空白?

解决方案的要求:

  • 我不能为单个盒子定义特定的样式,样式应该是所有盒子通用的
  • 盒子不能重叠

PD:我已经尝试过 jQuery Masonry Plugin 让他做填补 JS 空白的工作,但不幸的是,没有任何选项可以满足我的需要。

非常感谢您的帮助。

This is driving me crazy.

I am building a page which will only have a predefined header and footer, the content between them will be a set of boxes (dynamic) that have to be properly positioned in order to fill the wrapper.

Here is an example: http://jsfiddle.net/rdMKQ/1/

HTML:

<div id="wrapper" >
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:80px;height:60px;background-color:yellow"> 3 </div>
    <div class="box" style="width:40px;height:30px;background-color:green"> 4 </div>
</div>

Non-Inline CSS:

#wrapper{width:180px;}
.box{float:left}

All the boxes float:left and the sizes I used are just 'random' as a matter of example

What can I do to position the green box (4) just below red one (2) to fill the gap?

Requirements of the solution:

  • I can not define specific styles for a single box, styles should be common to all boxes
  • Boxes can not overlap

PD: I've already tried the jQuery Masonry Plugin to let him make the work filling the gap in JS, but no luck, there's no option that does what I need.

Many thanks in advance for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

川水往事 2024-12-05 06:39:06

这是可以完成的,但不能使用现有的 HTML 流程。

这是一个示例:

<div id="wrapper" >    
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:40px;height:30px;background-color:green"> 4 </div>
</div>
<div class="box" style="width:80px;height:60px;background-color:yellow;"> 3 </div>

并且

#wrapper{width:100px;height:60px;float:left;}
.box{float:left}

It can be done, but not with your existing HTML flow.

Here is an example:

<div id="wrapper" >    
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:40px;height:30px;background-color:green"> 4 </div>
</div>
<div class="box" style="width:80px;height:60px;background-color:yellow;"> 3 </div>

And

#wrapper{width:100px;height:60px;float:left;}
.box{float:left}
总以为 2024-12-05 06:39:06

您是否正在寻找类似这个的内容?唯一的问题是绿色框与其他框重叠。

<div id="wrapper" >
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:80px;height:60px;background-color:yellow"> 3 </div>
    <div class="box green" style="height:30px;background-color:green"> 4 </div>    
</div>

#wrapper{width:180px;}
.box{float:left; z-index:5;}
.green{position:relative; clear:both; width:100%; margin-top:-30px; z-index:3;}

Are you looking for something like this? The only problem with that is the green box is overlapping the others.

<div id="wrapper" >
    <div class="box" style="width:60px;height:60px;background-color:blue"> 1 </div>
    <div class="box" style="width:40px;height:30px;background-color:red"> 2 </div>
    <div class="box" style="width:80px;height:60px;background-color:yellow"> 3 </div>
    <div class="box green" style="height:30px;background-color:green"> 4 </div>    
</div>

And

#wrapper{width:180px;}
.box{float:left; z-index:5;}
.green{position:relative; clear:both; width:100%; margin-top:-30px; z-index:3;}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文