• flex布局应用,一种讨巧的header布局方法


    在开发移动端页面的时候,我们时常需要一个页面的header。 例如提供返回,设置菜单,或者标题显示。
    这里提供一种利用flex属性进行响应布局的方法:

    情况一,三栏布局。
    如下图:

    想法是这样的:

    示例demo:

    //vue + vant demo
    <template>
      <div class="my">
        <div class="header">
          <div class="one">
            <div class="goBack">
              <van-button type="default" to="/MainApp/">
                <van-icon name="arrow-left" size="32" />
              </van-button>
            </div>
          </div>
          <div class="two">
            <div class="info">我的信息</div>
          </div>
          <div class="three">
            <div class="setting">
              <van-button type="default" to="/MainApp/">
                <van-icon name="ellipsis" size="32" />
              </van-button>
            </div>
          </div>
        </div>
    
        <van-cell-group>
          <van-cell title="单元格" value="内容" size="large" />
          <van-cell title="单元格" value="内容" size="large" />
          <van-cell title="单元格" value="内容" size="large" />
          <van-cell title="单元格" value="内容" size="large" />
          <van-cell title="单元格" value="内容" size="large" />
          <van-cell title="路由跳转" is-link size="large" to="/MainApp/My/ConnectTheManager" />
        </van-cell-group>
      </div>
    </template>
    <script>
    export default {};
    </script>
    <style scoped>
    @import "~@/assets/css/components/MainApp/My.css";
    </style>
    
    //css
    .My {
        height: 100vh;
        background-color: aquamarine;
      }
      .header {
        justify-content: space-between;
        display: flex;
        height: 3em;
      }
      .header .one {
        display: flex;
        justify-content: flex-start;
        align-content: center;
      }
      .header .two {
        display: flex;
        justify-content: center;
        align-content: center;
      }
      .header .three {
        display: flex;
        justify-content: flex-end;
        align-content: center;
      }
      .header .one,
      .two,
      .three {
         100px;//也可以写auto
      }
      
      
      .header .one *{
        border: none;
        background: transparent;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .header .info {
        font-size: larger;
        display: flex;
        justify-content: center;
        align-items: center;
      }
      .header .three *{
        border: none;
        background: transparent;
        display: flex;
        justify-content: center;
        align-items: center;
      }
    

    情况二,两栏布局
    如下图:

    主要的思路想法是一样的。 只是不同的是,这时候只有两个实际存在的元素,这个时候。 我们需要给三个容器都指定一定的合适宽度,才能实现我们想要的效果。 代码示例如下。
    //vue + vant demo
    <template>
      <div class="ConnectTheManager">
        <div class="header">
          <!-- <router-link to="/MainApp/"> -->
          <div class="one">
            <div class="goBack">
              <van-button type="default" to="/MainApp/">
                <van-icon name="arrow-left" size="32" />
              </van-button>
            </div>
          </div>
          <!-- </router-link> -->
          <div class="two">
            <div class="info">联系管理员</div>
          </div>
          <div class="three">
            <div class="setting"></div>
          </div>
        </div>
        <van-cell-group>
          <van-cell title="单元格" value="内容" size="large" />
        </van-cell-group>
    
        <h2>电话12341234</h2>
      </div>
    </template>
    
    //css
    .ConnectTheManager {
      height: 100vh;
    }
    .header {
      justify-content: space-between;
      display: flex;
      height: 3em;
    }
    .header .one {
      display: flex;
      justify-content: flex-start;
      align-content: center;
    }
    .header .two {
      display: flex;
      justify-content: center;
      align-content: center;
    }
    .header .three {
      display: flex;
      justify-content: flex-end;
      align-content: center;
    }
    .header .one,
    .two,
    .three {
       100px;//特别注意这里。 如果不指定宽度,就无法水平三栏等距分布。
    }
    
    .header .one * {
      border: none;
      background: transparent;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .header .info {
      font-size: larger;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    

    同样的思路,四栏,五栏甚至更多,都能用这种方法实现,自适应的水平,垂直居中。

  • 相关阅读:
    Tensorflow项目中--FLAGS=tf.flags.FLAGS
    霍夫变换--直线,圆的识别
    利用手写数字识别项目详细描述BP深度神经网络的权重学习
    安装Tensorflow
    安装Anaconda
    关于hibernate查询映射时无法反序列化问题
    postgresql安装之后修改默认用户密码
    中文乱码之springboot框架中两工程之间参数传递乱码
    springboot注解小记1
    springboot开发笔记
  • 原文地址:https://www.cnblogs.com/jaycethanks/p/12686811.html
Copyright © 2020-2023  润新知