Skip to content

Container 布局容器

用于布局的容器组件,方便快速搭建页面的基本结构:

<s-container>:外层容器。当子元素中包含 <s-header><s-footer> 时,全部子元素会垂直上下排列,否则会水平左右排列。

<s-header>:顶栏容器。

<s-aside>:侧边栏容器。

<s-main>:主要区域容器。

<s-footer>:底栏容器。

TIP

以上组件采用了 flex 布局,使用前请确定目标浏览器是否兼容。此外, <s-container> 的子元素只能是后四者,后四者的父元素也只能是 <s-container>

常见页面布局

Header
Main
Header
Main
Footer
Main
Header
Main
Header
Main
Footer
Header
Main
Header
Main
Footer
<template>
  <Container>
    <Header height="60px">Header</Header>
    <Main>Main</Main>
  </Container>

  <Container>
    <Header>Header</Header>
    <Main>Main</Main>
    <Footer>Footer</Footer>
  </Container>

  <Container>
    <Aside width="200px">Aside</Aside>
    <Main>Main</Main>
  </Container>

  <Container>
    <Header>Header</Header>
    <Container>
      <Aside width="200px">Aside</Aside>
      <Main>Main</Main>
    </Container>
  </Container>

  <Container>
    <Header>Header</Header>
    <Container>
      <Aside width="200px">Aside</Aside>
      <Container>
        <Main>Main</Main>
        <Footer>Footer</Footer>
      </Container>
    </Container>
  </Container>

  <Container>
    <Aside width="200px">Aside</Aside>
    <Container>
      <Header>Header</Header>
      <Main>Main</Main>
    </Container>
  </Container>

  <Container>
    <Aside width="200px">Aside</Aside>
    <Container>
      <Header>Header</Header>
      <Main>Main</Main>
      <Footer>Footer</Footer>
    </Container>
  </Container>
</template>

<script setup>
import Container from '@/components/Container/Container.vue'
import Main from '@/components/Container/Main.vue'
import Header from '@/components/Container/Header.vue'
import Aside from '@/components/Container/Aside.vue'
import Footer from '@/components/Container/Footer.vue'
</script>

<style scoped>
.s-header,
.s-footer {
  background-color: #79bbff;
  color: #333;
  text-align: center;
  line-height: 60px;
}

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

.s-main {
  background-color: #d9ecff;
  color: #333;
  text-align: center;
  line-height: 160px;
}
.vitepress-demo-preview-preview > .s-container {
  margin-bottom: 40px;
}
.s-container + .s-container {
  margin-bottom: 40px;
}

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

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

Container API

Container Attributes

参数说明类型可选值默认值
direction子元素的排列方向stringhorizontal / vertical子元素中有 s-headers-footer 时为 vertical,否则为 horizontal

Container Slots

插槽名说明子标签
default自定义默认内容Container / Header / Aside / Main / Footer

Header API

Header Attributes

参数说明类型可选值默认值
height顶栏高度string60px

Header Slots

插槽名说明
default自定义默认内容

Aside API

Aside Attributes

参数说明类型可选值默认值
width侧边栏宽度string300px

Aside Slots

插槽名说明
default自定义默认内容

Main API

Main Attributes

参数说明类型可选值默认值
height底栏高度string100px

Main Slots

插槽名说明
default自定义默认内容
参数说明类型可选值默认值
height底栏高度string60px
插槽名说明
default自定义默认内容

Released under the MIT License.