关闭一个bootstrap行并在每个包含div的第n个后面开始新行
我有一个引导行,它将填充,比方说,博客文章缩略图。
content content content content content
</section
我想关闭一行,插入hr标签并在每个第4个后缩略图后打开一个新的引导行。
content content content content
content
有没有办法用jquery做到这一点?
可以做这样的事情:
var $mainElem = $('.row'),/* adjust selector to suit page*/ $parent = $mainElem.parent(), /* remove children after 4th from existing row */ $items = $mainElem.children(':gt(3)').detach(); if ($items.length) { /* create new row for every 4 items removed above */ for (var i = 0; i < $items.length; i = i + 4) { var $row = $('').append($items.slice(i, i + 4)); $parent.append('
').append($row); } }
DEMO
这对我来说效果最好:
var $d = $('.thumbs'); var $p = $('.col-sm-3:gt(3)', $d); if ($p.length) { $('').insertAfter($d).append($p); $('
').insertAfter($d); }
根据您在新行中包装每组列的动机,您可以使用直接CSS为每个第n行设置样式。
在bootstrap中,如果你有额外的列溢出超过12,它们只是换行到新行,所以拥有新行通常是多余的,尽管你可能有一些外部的理由让它保持在你的情况下。
无论哪种方式,这里是一个CSS解决方案,每4个div添加一个页宽水平分隔符:
在jsFiddle和Stack Snippets中演示
.container .row.thumbs div:nth-child(4n) { position: static; } .container .row.thumbs div:nth-child(4n):after { content: ' '; border-top: 1px solid black; display: block; position: absolute; width: 95%; margin-left: 2.5%; left: 0; }
content content content content content content content content content