崩溃漂浮在父母的孩子



我在wrapperdiv中有子元素,当父元素的高度小于wrapperdiv:

时,我想将其浮动到新行http://jsfiddle.net/vm57t/207/

<div class='wrapper'>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
</div>
.wrapper{
   position:relative;
   top:5px;
   left:5px;
   width:30px;
   background:green;
   overflow:auto;   
}
.child{
   position:relative;
   top:0px;
   left:0px;
   width:30px;
   height:30px;
   background: #ccc;
   margin-bottom:3px;
}

:

1
2
3
4

然后当窗口大小变小时,它们开始在右侧创建新列:

1 4
2
3

如何使用列?

column-count: 2; /* or 3 or whatever */
column-fill: auto;

我已经更新了你的小提琴:http://jsfiddle.net/pMbtk/952/

Column CSS是提示,但没有列计数规则:http://codepen.io/gc-nomade/pen/YXGYpV

.child {
  background: gray;
  width: 30px;
  height: 30px;
  display: inline-block;
  margin: 0 0 3px;
  box-shadow: 0 3px green;
  text-align: center;
  line-height: 30px;
}
.wrapper {
  counter-reset: ulli;
  column-width: 30px;
  column-gap: 1px;
  -moz-column-width: 30px;
  -moz-column-gap: 1px;
  display: inline-block;
}
html,
body,
.wrapper {
  height: 100%;
  margin: 0;
}
.child:before {
  counter-increment: ulli;
  content: counter(ulli);
}
<div class='wrapper'>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
    <div class='child'></div>
</div>

要知道哪个浏览器可以理解:http://caniuse.com/#feat=multicolumn

如果你想包含IE8,那么你需要写入模式。演示

另一个解决方案-使用display: flex。但它只适用于现代浏览器。

示例如下:https://jsfiddle.net/vm57t/212/

.wrapper {
    display: flex;
    flex-flow: column wrap;
    position: absolute;
    top: 0; bottom: 0;
    left: 0; right: 0;
    border: 1px solid red;
}
.child {
    width: 30px;
    height: 30px;
    border: 1px solid blue;
}

以下是flexbox的详细手册:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

最新更新