zoukankan      html  css  js  c++  java
  • 卡片展示(不定宽),最后一行左对齐 的几种实现方式

    1. 栅格布局

      栅格布局常见有12,或24栅格,根据每个div的栅格数量,得到宽度占比。 

      平时可以利用一些栅格布局组件, 如antd的Row,Col

      

    // antd采用24栅格, span={8}可根据分辨率自己调整, 不能设置小数
    <Row gutter={16}>
      <Col span={8} />
      <Col span={8} />
      <Col span={8} />
    </Row>

    2. 弹性布局

     2.1 单行数据 

    html:
    
    <ul>
      <li>card 1</li>
      <li>card 2</li>
    </ul>
    css:
    
    ul {
      display: flex;
      justify-content: space-between;
       100%;
    }
    li {
      flex: 1;
    }

    2.2 多行数据

      加占位标签, 使用隐藏的div 填满每行:

    html
    
         <div>
            <ul>
              <li>card 1</li>
              <li>card 2</li>
              <li>card 3</li>
            </ul>
            <ul>
              <li>card 4</li>
              <li style={{visibility: 'hidden'}}>empty</li> // 占位li, 可根据数据格式动态扩展
              <li style={{visibility: 'hidden'}}>empty</li>
            </ul>
          </div>
               
    css:
    
          div {
             100%;
          }
          ul {
            display: flex;
            justify-content: space-between;
          }
          li {
             flex: 1;
          }

       或利用flex属性, 

    flex: 1; 
    flex-grow: 0;    // 禁止div放大
    flex-basis: calc((100% -45px) / 4);   //  4表示每行4个卡片; 45px 则是每个卡片间的间隙为15px, 最后一个卡片没有边距, 因此15px * 3 = 45px

    2.3 每行列数固定, 可用

    <div class="box">
        <div class="item"></div>
        <div class="item"></div>
        <div class="item"></div>
    </div>
    
    
    .box {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;
      }
    
    .box:after {
        content: "";
        flex: auto;
     }
  • 相关阅读:
    亚像素
    dmysql 与QT的连接
    opencv中ptr的使用
    对图片对比度和亮度的理解
    opencv中的各种滤波设计
    人脸检测相关介绍
    opencv中相关的矩阵运算
    形态学处理
    阀值化 threshold
    Python深浅拷贝
  • 原文地址:https://www.cnblogs.com/aloehui/p/11227662.html
Copyright © 2011-2022 走看看