[英]CSS Floating Div Problems
Please take a look at the picture provided above, each box is a div which is working fine, but in some cases the div labelled "BIG BOX" creates some free space on each line. 请看一下上面提供的图片,每个框都是一个工作正常的div,但在某些情况下,标有“BIG BOX”的div会在每一行上创建一些空闲空间。
Is there is anyway to fill the free area with my current css setup: 无论如何用我当前的css设置来填充空闲区域:
.topic_box_small{
z-index:3;
outline: red solid 1px;
display: block;
position: relative;
float:left;
width:115px;
height:115px;
overflow: no-content;
background-color: burlywood;
box-shadow: #999999 0px 0px 2px ;
border-radius:5px;
margin:5px;
}
.topic_box_medium{
z-index:3;
outline: red solid 1px;
display: block;
position: relative;
float: left;
width:240px;
height:115px;
overflow: no-content;
background-color: palegreen;
box-shadow: #999999 0px 0px 2px ;
border-radius:5px;
margin:5px;
}
.topic_box_large{
z-index:3;
outline: red solid 1px;
display: block;
position: relative;
float: left;
width:240px;
height:240px;
overflow: no-content;
background-color: orange;
box-shadow: #999999 0px 0px 2px ;
border-radius:5px;
margin:5px;
}
.category_Heading{
z-index:3;
display: block;
position: relative;
width: 100%;
text-height: 20px;
padding: 5px;
font-size: 15px;
text-align: center;
clear:both;
background-color: #fff;
color:brown;
box-shadow: #999999 0px 0px 2px ;
}
.topic_Wrapper{
display: block;
width: auto;
height: auto;
margin: 5px;
}
HTML HTML
<section class="content_packet">
<h2 class="category_Heading">Category 1 </h2>
<div class="topic_Wrapper" >
<div class="topic_box_medium"> <P>MEDIUM BOX<P> </div>
<div class="topic_box_medium"> <P>MEDIUM BOX<P> </div>
<div class="topic_box_large"> <P>BIG BOX<P> </div>
<div class="topic_box_large"> <P>BIG BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
<div class="topic_box_mini"> <P>MINI BOX<P> </div>
</div>
<h2 class="category_Heading">Category 1 </h2>
<div class="topic_Wrapper" >
<div class="topic_box_large"> </div>
<div class="topic_box_large"></div>
<div class="topic_box_mini"></div>
<div class="topic_box_mini"> </div>
<div class="topic_box_normal"> </div>
<div class="topic_box_medium"></div>
<div class="topic_box_mini"></div>
<div class="topic_box_mini"> </div>
</div>
</section>
You can use more than one CSS class in your tags, Just add a space between them like so. 您可以在标签中使用多个CSS类,只需在它们之间添加一个空格即可。
<div class="CSS-Class1 CSS-Class-2 CSS-Class-3">...</div>
CSS: CSS:
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* force scrollbar, prevents initial gap */
html {
overflow-y: scroll;
}
body {
font-family: sans-serif;
}
/* ---- grid ---- */
.grid {
background: #DDD;
}
/* clear fix */
.grid:after {
content: '';
display: block;
clear: both;
}
/* ---- .element-item ---- */
/* 5 columns, percentage width */
.grid-item,
.grid-sizer {
width: 20%;
}
.grid-item {
float: left;
height: 100px;
background: #0D8;
border: 2px solid #333;
border-color: hsla(0, 0%, 0%, 0.7);
}
.grid-item--width2 { width: 40%; }
.grid-item--height2 { height: 200px; }
HTML HTML
<div class="grid">
<div class="grid-sizer"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2 grid-item--height2"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item grid-item--width2"></div>
<div class="grid-item grid-item--height2"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
The Masonry layout is the way to go as said in the comments, but because you want to have different widths you will have to use some java-script. Masonry布局是评论中所说的方式,但是因为你想要有不同的宽度,你将不得不使用一些java脚本。
Here is a good site to look at. 这是一个很好的网站。 http://isotope.metafizzy.co/layout-modes/masonry.html http://isotope.metafizzy.co/layout-modes/masonry.html
And a Codepen Example to see how it works. 和Codepen示例,看看它是如何工作的。 http://codepen.io/desandro/pen/sqrwo http://codepen.io/desandro/pen/sqrwo
Hope this helps 希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.