# 布局定位

# Flex 定位

该部分主要讲解布局定位 flex 样式

# 基本示例

测试

<template>
  <div class="box" style="height: 80px;border: 1px red solid;">
    <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
  </div>
  <div style="height: 20px"></div>
  <div class="box" style="height: 80px;border: 1px red solid;">
    <el-button type="primary">测试</el-button>
  </div>
</template>
<style>
</style>
Expand Copy

# 水平垂直

水平垂直居中
测试
水平垂直靠左
测试
水平垂直靠右
测试

<template>
  <el-card class="card">
    <div slot="header" class="clearfix">
      <span>水平垂直居中</span>
    </div>
    <div class="box1" style="height: 80px;border: 1px red solid;">
      <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
    </div>
    <div style="height: 20px"></div>
    <div class="box1" style="height: 80px;border: 1px red solid;">
      <el-button type="primary">测试</el-button>
    </div>
  </el-card>

  <el-card class="card">
    <div slot="header" class="clearfix">
      <span>水平垂直靠左</span>
    </div>
    <div class="box11" style="height: 80px;border: 1px red solid;">
      <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
    </div>
    <div style="height: 20px"></div>
    <div class="box11" style="height: 80px;border: 1px red solid;">
      <el-button type="primary">测试</el-button>
    </div>
  </el-card>

  <el-card class="card">
    <div slot="header" class="clearfix">
      <span>水平垂直靠右</span>
    </div>
    <div class="box12" style="height: 80px;border: 1px red solid;">
      <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
    </div>
    <div style="height: 20px"></div>
    <div class="box12" style="height: 80px;border: 1px red solid;">
      <el-button type="primary">测试</el-button>
    </div>
  </el-card>
</template>
<style>
  .el-card.card {
    margin: 20px;
  }

  .box1 {
    display: flex;
    justify-content: center;
    align-items: center; /* 垂直居中 */
    width: 100%;
    height: 100vh; /* 可选:使容器高度为视口高度以便更好观察居中效果 */
  }

  .box11 {
    display: flex;
    justify-content: flex-start;
    align-items: center; /* 垂直居中 */
    width: 100%;
    height: 100vh; /* 可选:使容器高度为视口高度以便更好观察居中效果 */
  }

  .box12 {
    display: flex;
    justify-content: flex-end;
    align-items: center; /* 垂直居中 */
    width: 100%;
    height: 100vh; /* 可选:使容器高度为视口高度以便更好观察居中效果 */
  }
</style>
Expand Copy

# 水平居中

测试

<template>
  <div class="box2" style="height: 80px;border: 1px red solid;">
    <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
  </div>
  <div style="height: 20px"></div>
  <div class="box2" style="height: 80px;border: 1px red solid;">
    <el-button type="primary">测试</el-button>
  </div>
</template>
<style>
  .box2 {
    display: flex;
    justify-content: center;
  }
</style>
Expand Copy

:::

# 垂直居中

测试

<template>
  <div class="box3" style="height: 80px;border: 1px red solid;">
    <div style="height: 40px;border: 3px blue solid;width: 40px">测试</div>
  </div>
  <div style="height: 20px"></div>
  <div class="box3" style="height: 80px;border: 1px red solid;">
    <el-button type="primary">测试</el-button>
  </div>
</template>
<style>
  .box3 {
    display: flex;
    align-items: center; /* 垂直居中 */
  }
</style>
Expand Copy

# RA定位

该部分主要讲解布局定位 RelativeAbsolute 样式

# 水平垂直居中

测试

<template>
  <div class="parent" style="height: 80px;border: 1px red solid;">
    <div style="height: 40px;border: 3px blue solid;width: 40px" class="child">测试</div>
  </div>
  <div style="height: 20px"></div>
  <div class="parent" style="height: 80px;border: 1px red solid;">
    <el-button type="primary" class="child">测试</el-button>
  </div>
</template>
<style>
  .parent {
    position: relative; /* 设置父元素为相对定位 */
    height: 300px;
    border: 1px solid black;
  }

  .child {
    position: absolute; /* 设置子元素为绝对定位 */
    top: 50%; /* 相对于父元素顶部的50% */
    left: 50%; /* 相对于父元素左侧的50% */
    transform: translate(-50%, -50%); /* 将子元素的中心对齐到父元素的中心 */
  }
</style>
Expand Copy

# 角落定位

测试

<template>
  <div class="parent1" style="height: 80px;border: 1px red solid;">
    <div style="height: 40px;border: 3px blue solid;width: 40px" class="child1">测试</div>
  </div>
  <div style="height: 20px"></div>
  <div class="parent1" style="height: 80px;border: 1px red solid;">
    <el-button type="primary" class="child1">测试</el-button>
  </div>
</template>
<style>
  .parent1 {
    position: relative; /* 设置父元素为相对定位 */
    height: 300px;
    border: 1px solid black;
  }

  .child1 {
    position: absolute;
    top: 10px; /* 调整这个值来控制按钮的垂直位置 */
    right: 10px; /* 调整这个值来控制按钮的水平位置 */
    z-index: 100; /* 确保按钮在其他元素之上 */
  }
</style>
Expand Copy