Flex 弹性容器 组件用于设置内容的间距和对齐方式。
用例 基础用法 放置在容器内的组件预设了 8px
的间距,可以通过 gap
属性重新设置。
show code
< template>
< Flex>
< Button> one</ Button>
< Button> two</ Button>
< Button> three</ Button>
</ Flex>
< br />
< Flex gap = " 30px" >
< Button> one</ Button>
< Button> two</ Button>
< Button> three</ Button>
</ Flex>
</ template>
< script>
import { defineComponent } from 'vue'
import { Flex, Button } from 'comz'
export default defineComponent ( {
components: {
Flex,
Button
}
} )
</ script>
内联元素 容器默认为块级元素,可以添加 inline
属性声明成内联元素。
show code
< template>
some text
< Flex inline >
< Button> one</ Button>
< Button> two</ Button>
</ Flex>
some text
</ template>
< script>
import { defineComponent } from 'vue'
import { Flex, Button } from 'comz'
export default defineComponent ( {
components: {
Flex,
Button
}
} )
</ script>
允许换行 设置 wrap
属性,允许空间不足时换行。
one
two
three
four
five
six
seven
eight
nine
ten
eleven
show code
< template>
< Flex wrap >
< Button> one</ Button>
< Button> two</ Button>
< Button> three</ Button>
< Button> four</ Button>
< Button> five</ Button>
< Button> six</ Button>
< Button> seven</ Button>
< Button> eight</ Button>
< Button> nine</ Button>
< Button> ten</ Button>
< Button> eleven</ Button>
</ Flex>
</ template>
< script>
import { defineComponent } from 'vue'
import { Flex, Button } from 'comz'
export default defineComponent ( {
components: {
Flex,
Button
}
} )
</ script>
垂直排列 vertical
属性可以使元素垂直排列
如果指定了 Flex 组件的高度,可以添加 wrap
使之内容允许换行。
show code
< template>
< div class = " box" >
< Flex flow = " column" >
< Button> one</ Button>
< Button> two</ Button>
< Button> three</ Button>
< Button> four</ Button>
</ Flex>
</ div>
< div class = " box" >
< Flex flow = " column" wrap style = " height : 100px" >
< Button> one</ Button>
< Button> two</ Button>
< Button> three</ Button>
< Button> four</ Button>
</ Flex>
</ div>
</ template>
< script>
import { defineComponent } from 'vue'
import { Button, Flex } from 'comz'
export default defineComponent ( {
components: {
Button,
Flex
}
} )
</ script>
< style scoped >
.box {
display : inline-flex;
height : 100px;
width : 150px;
margin-right : 40px;
outline : 1px rgba ( 0, 0, 0, 0.2) dashed;
}
</ style>
对齐方式 通过 justify
和 align
和 center
属性设置内容的对齐方式。
justify
对应 flex
中 justify-content
属性,设置容器主轴的对齐方式。align
对应 flex
中 align-items
属性,设置容器交叉轴上项的对齐方式。center
属性是预设值,可以使容器项水平垂直居中。 复杂的对齐方式,建议配合 Grid 组件或者使用 css 实现。
show code
< template>
< div class = " box" >
< Flex>
< Button> H</ Button>
< Button> start</ Button>
</ Flex>
</ div>
< div class = " box" >
< Flex>
< Button> H</ Button>
< Button> center</ Button>
</ Flex>
</ div>
< div class = " box" >
< Flex>
< Button> H</ Button>
< Button> end</ Button>
</ Flex>
</ div>
< br /> < br />
< div class = " box" >
< Flex>
< Button> V</ Button>
< Button> start</ Button>
</ Flex>
</ div>
< div class = " box" >
< Flex>
< Button> V</ Button>
< Button> center</ Button>
</ Flex>
</ div>
< div class = " box" >
< Flex>
< Button> V</ Button>
< Button> end</ Button>
</ Flex>
</ div>
</ template>
< script>
import { defineComponent } from 'vue'
import { Flex, Button } from 'comz'
export default defineComponent ( {
components: {
Flex,
Button
}
} )
</ script>
< style scoped >
.box {
display : inline-block;
height : 100px;
width : 150px;
margin-right : 40px;
vertical-align : top;
overflow : hidden;
outline : 1px rgba ( 0, 0, 0, 0.2) dashed;
}
</ style>
API 属性 Attribute Type Default Description inline boolean
false
声明为内联容器 gap <length>
'8px'
项的间距 justify <justify-content>
'flex-start'
主轴的对齐方式 align <align-items>
'flex-start'
交叉轴上项的对齐方式 center boolean
false
容器内容水平垂直居中 vertical boolean
false
是否垂直排列
插槽 Slot Description default 默认插槽