想要这样的效果
每个
div
宽度固定,高度不固定;div
换行时,上下两个div
紧贴在一起;
请各位指教,先谢谢大家。。。
纯css貌似做不到...
用js的实现方法有几种,
用css+div写4列, 然后用js按顺序先将每列填充1个, 从第五个开始, 计算出高度最小的列, 往里面填充第五个, 按第五个的规则, 一直循环到最后一个
用绝对定位, 用js计算每个的top和left
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>1</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
li {
width: 20%;
float: left;
}
li + li {
border-left: 1px solid red;
}
p { margin-bottom: 10px; text-align: center;}
</style>
</head>
<body>
<ul id="list">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<script>
var list = document.querySelector('#list').querySelectorAll('li');
for (var i = 0; i <= 50; i++) {
var j = i % 4;
list[j].insertAdjacentHTML('beforeEnd', '<p>' + i + '</p>');
}
</script>
</body>
</html>
3 回答5.2k 阅读✓ 已解决
5 回答2.1k 阅读
3 回答1.5k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
3 回答2.5k 阅读
可以用flex-box
效果: