element-plus/website/docs/es/container.md
Xing.Wu fb8db3f3f7
feat(docs): container code for composition (#2161)
Co-authored-by: 无星 <32910694@qq.com>
2021-06-08 13:31:14 +08:00

7.6 KiB

Contenedor

Componentes contenedores para iniciar una estructura básica de un sitio:

<el-container>: Contenedor. Cuando este elemento se anida con un <el-header> o <el-footer>, todos los elementos secundarios se organizan verticalmente. De lo contrario, de forma horizontal.

<el-header>: Contenedor para cabeceras.

<el-aside>: Contenedor para secciones laterales (generalmente, una barra lateral).

<el-main>: Contenedor para sección principal.

<el-footer>: Contenedor para pie de página.

:::tip Estos componentes utilizan flex para el diseño, así que asegúrese que el navegador lo soporta. Además, los elementos directos de <el-container> tienen que ser uno o más de los últimos cuatro componentes. Y el elemento padre de los últimos cuatro componentes debe ser un <el-container>. :::

Diseños comunes

:::demo

<div class="common-layout">
  <el-container>
    <el-header>Cabecera</el-header>
    <el-main>Principal</el-main>
  </el-container>

  <el-container>
    <el-header>Cabecera</el-header>
    <el-main>Principal</el-main>
    <el-footer>Pie de página</el-footer>
  </el-container>

  <el-container>
    <el-aside width="200px">Barra lateral</el-aside>
    <el-main>Principal</el-main>
  </el-container>

  <el-container>
    <el-header>Cabecera</el-header>
    <el-container>
      <el-aside width="200px">Barra lateral</el-aside>
      <el-main>Principal</el-main>
    </el-container>
  </el-container>

  <el-container>
    <el-header>Cabecera</el-header>
    <el-container>
      <el-aside width="200px">Barra lateral</el-aside>
      <el-container>
        <el-main>Principal</el-main>
        <el-footer>Pie de página</el-footer>
      </el-container>
    </el-container>
  </el-container>

  <el-container>
    <el-aside width="200px">Barra lateral</el-aside>
    <el-container>
      <el-header>Cabecera</el-header>
      <el-main>Principal</el-main>
    </el-container>
  </el-container>
</div>

<style>
  .el-header, .el-footer {
    background-color: #B3C0D1;
    color: #333;
    text-align: center;
    line-height: 60px;
  }

  .el-aside {
    background-color: #D3DCE6;
    color: #333;
    text-align: center;
    line-height: 200px;
  }

  .el-main {
    background-color: #E9EEF3;
    color: #333;
    text-align: center;
    line-height: 160px;
  }

  body > .el-container {
    margin-bottom: 40px;
  }

  .el-container:nth-child(5) .el-aside,
  .el-container:nth-child(6) .el-aside {
    line-height: 260px;
  }

  .el-container:nth-child(7) .el-aside {
    line-height: 320px;
  }
</style>

:::

Ejemplo

:::demo

<el-container style="height: 500px; border: 1px solid #eee">
  <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
    <el-menu :default-openeds="['1', '3']">
      <el-submenu index="1">
        <template #title><i class="el-icon-message"></i>Navigator One</template>
        <el-menu-item-group>
          <template #title>Group 1</template>
          <el-menu-item index="1-1">Option 1</el-menu-item>
          <el-menu-item index="1-2">Option 2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="Group 2">
          <el-menu-item index="1-3">Option 3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="1-4">
          <template #title>Option4</template>
          <el-menu-item index="1-4-1">Option 4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
      <el-submenu index="2">
        <template #title><i class="el-icon-menu"></i>Navigator Two</template>
        <el-menu-item-group>
          <template #title>Group 1</template>
          <el-menu-item index="2-1">Option 1</el-menu-item>
          <el-menu-item index="2-2">Option 2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="Group 2">
          <el-menu-item index="2-3">Option 3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="2-4">
          <template #title>Option 4</template>
          <el-menu-item index="2-4-1">Option 4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
      <el-submenu index="3">
        <template #title><i class="el-icon-setting"></i>Navigator Three</template>
        <el-menu-item-group>
          <template #title>Group 1</template>
          <el-menu-item index="3-1">Option 1</el-menu-item>
          <el-menu-item index="3-2">Option 2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="Group 2">
          <el-menu-item index="3-3">Option 3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="3-4">
          <template #title>Option 4</template>
          <el-menu-item index="3-4-1">Option 4-1</el-menu-item>
        </el-submenu>
      </el-submenu>
    </el-menu>
  </el-aside>

  <el-container>
    <el-header style="text-align: right; font-size: 12px">
      <el-dropdown>
        <i class="el-icon-setting" style="margin-right: 15px"></i>
        <template #dropdown>
          <el-dropdown-menu>
              <el-dropdown-item>View</el-dropdown-item>
              <el-dropdown-item>Add</el-dropdown-item>
              <el-dropdown-item>Delete</el-dropdown-item>
          </el-dropdown-menu>
        </template>
      </el-dropdown>
      <span>Tom</span>
    </el-header>

    <el-main>
      <el-table :data="tableData">
        <el-table-column prop="date" label="Date" width="140">
        </el-table-column>
        <el-table-column prop="name" label="Name" width="120">
        </el-table-column>
        <el-table-column prop="address" label="Address">
        </el-table-column>
      </el-table>
    </el-main>
  </el-container>
</el-container>

<style>
  .el-header {
    background-color: #B3C0D1;
    color: #333;
    line-height: 60px;
  }

  .el-aside {
    color: #333;
  }
</style>

<script>
  export default {
    data() {
      const item = {
        date: '2016-05-02',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles'
      };
      return {
        tableData: Array(20).fill(item)
      }
    }
  };
</script>

<!--
<setup>

  import { defineComponent, ref } from 'vue';

  export default defineComponent({
    setup() {
      const item = {
        date: '2016-05-02',
        name: 'Tom',
        address: 'No. 189, Grove St, Los Angeles',
      };

      const tableData = ref(Array(20).fill(item));

      return {
        tableData,
      };
    },
  });

</setup>
-->

:::

Atributos de contenedor

Atributo Descripción Tipo Valores aceptados Por defecto
direction dirección de diseño para elementos secundarios string horizontal / vertical vertical cuando el elemento está anidado con el-header, de lo contrario, horizontal

Atributos de cabecera

Atributo Descripción Tipo Valores aceptados Por defecto
height altura de la cabecera string 60px

Atributos de barra lateral

Atributo Descripción Tipo Valores aceptados Por defecto
width ancho de la barra lateral string 300px

Atributos de pie de página

Atributo Descripción Tipo Valores aceptados Por defecto
height altura del pie de página string 60px