Container布局容器,方便快速布局
总结:
-
使用
flex布局 -
使用语义化标签
section,main,aside,footer -
el-container组件里会判断直接子组件中是否有el-header,el-footer,如果有,则设置为垂直布局,否则是水平布局-
判断代码:
this.$slots && this.$slots.default ? this.$slots.default.some(vnode => { const tag = vnode.componentOptions && vnode.componentOptions.tag; return tag === 'sx-header' || tag === 'sx-footer' }) : false;
-
-
headerfooter默认高度是60px,允许传入自定义的; -
aside默认宽度是300px,允许自定义传入 -
mian的flex:1,这样main主体部门就占据了除了header,footer剩下的全部空间
el-main
<template>
<main class="el-main">
<slot></slot>
</main>
</template>
<script>
// el-main的 flex:1 这样就会占据除了header,footer剩下的全部空间
export default {
name: 'SxMain',
componentName: 'SxMain',
}
</script>
el-aside
<template>
<aside class="el-aside" :style="{width: width}">
<slot></slot>
</aside>
</template>
<script>
export default {
name: 'SxAside',
props: {
width: {
type: String,
default: '300px'
}
}
}
</script>
el-footer
<template>
<footer class="el-footer" :style="{height: height}">
<slot></slot>
</footer>
</template>
<script>
export default {
name: 'SxFooter',
props: {
height: {
type: String,
default: '60px'
}
}
}
</script>