如何实现div分列显示,第一列竖向排满,自动换到下一列继续排

一、需求

  • div、css怎么实现内容的分栏,先把左侧排满,高度不够时排到第二列
  • 要求内容竖向排列,先第一列,第一列满了排第二列,以此类推

二、方案

  • 可以通过竖向排列的方式,将子div设置为行内块即可,具体实现:
  • 外层div设置 writing-mode: vertical-lr
  • 外层超出宽度需要滚动的话加上 overflow: auto
  • 内容div设置 display: inline-block
  • 内容如果需要控制文字正常横排 需要设置 writing-mode: horizontal-tb

三、直接看代码,一目了然、里面有注释,拷贝出来可以直接运行看效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>如何实现div分列显示,第一列竖向排满,自动换到下一列继续排</title>
    <style>
        #main {
            width: 300px;
            height: 300px;
            border: solid 1px #aa00ff;
            padding: 1px;
            /* div里的内容竖向排列 */
            writing-mode: vertical-lr;
            /* 如果内容超出div了,想在此div中滚动的话需要加上overflow: auto; */
            overflow: auto;
        }

        .item {
            width: 100px;
            height: 50px;
            display: inline-block;
            background-color: #129FEA;
            margin: 1px;
            /* 文字横排 */
            writing-mode: horizontal-tb;

        }
    </style>
</head>
<body>
<div id="main">
    <div class="item">第1条内容</div>
    <div class="item">第2条内容</div>
    <div class="item">第3条内容</div>
    <div class="item">第4条内容</div>
    <div class="item">第5条内容</div>
    <div class="item">第6条内容</div>
    <div class="item">第7条内容</div>
    <div class="item">第8条内容</div>
    <div class="item">第9条内容</div>
    <div class="item">第10条内容</div>
    <div class="item">第11条内容</div>
    <div class="item">第12条内容</div>
    <div class="item">第13条内容</div>
    <div class="item">第14条内容</div>
    <div class="item">第15条内容</div>
    <div class="item">第16条内容</div>
</div>
</body>
</html>

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×