将html网格项对齐为垂直换行
Aligning html grid items to wrap vertically
我有一个生成的div的网格,我需要垂直流动0 - 9,然后将10和下一列包裹起来。当前配置是水平换行:
HTML<div id="item-container"></div>
JavaScript: for (var i = 0; i <= 150; i++) {
$("<li class='items grid'>item " + i + "</li>").appendTo("#item-
container");
}
CSS li.grid {
display: inline-block;
border: 1px solid #333;
background-color: #000;
color: #fff;
padding: 30px 30px 30px 30px;
background-image: linear-gradient(to bottom right, #eee, #ddd);
}
jsfiddle: http://jsfiddle.net/Ldh9beLn/9/
对于inline和inline-block元素,HTML元素的正常流是水平的。您要实现的目标与列有关。您需要将item-container元素划分为列。
第一个选项是使用CSS3列计数或flex。
#item-container{
column-count: 4;
}
如果你也需要支持旧的浏览器,你可以实现js回退。有一个jquery插件可以帮到你。
第二个选项是使用容器元素将元素划分为列。在一个列中每隔10个元素进行换行,并为列包装使用合适的css,如下所示;
for (var i = 0; i <= 150; i++) {
if(i%10 == 0) $("<div class='column'></div>").appendTo("#item-container");
$("<li class='items grid'>item " + i + "</li>").appendTo("#item-container > .column:last-child");
}
.column{
width: 35px;
border: 1px solid;
float: left;
margin: 30px;
}
我找到了解决方案,但根据所需的网格布局,创建两个类在column1
和column7
之间切换。
$('.item-container').removeClass('column7').addClass('column1');
和
$('.item-container').removeClass('column1').addClass('column7');
和相关的CSS类:
.column1{
column-count: 1;
}
.column7{
column-count: 7;
}
相关文章:
- 如何在映射数组中添加换行符
- JQuery:向多个匹配结果添加换行符的最简单方法
- 在文本区域中使用jQuery.text()保持换行符
- Internet Explorer中的文本换行错误
- 从Javascript警报中防止换行
- javascript替换换行符和特殊字符
- 换行符拆分返回“”;未定义”;
- javascript中换行的regexp
- 编辑数据库输入时在文本框上换行
- 在 JS 中添加字符串之前强制换行
- 如何使用web浏览器在NoSQL数据中呈现换行符
- 换行符插入jquery选择器
- jquery使用val()复制值似乎可以删除换行符
- 文本区域-获取每一行,找到换行符
- 处理字段中带有换行符的csv文件-node.js
- 使用jquery将单个换行符替换为span元素
- javascript/jQuery:在title中添加换行符——在IE9中有效,但在IE8中无效
- 删除垂直滚动条而不附加元素换行
- D3 垂直条形图为标签文本添加换行符
- 将html网格项对齐为垂直换行