# 1 flex 与 inline-flex 布局,都是弹性布局,盒状容器布局。

Flex 布局是什么?_w3cschool
# 2 下面一个实例来说明一下:
有一个要求,要求 item 增多的时候,不会换行,并且 container 容器也会随时 item 的数量的增多,自动的变宽,让容器去适应 item 数量。
# 2.1 以下是二种不同的效果:
- flex

- inline-flex

说明:
1)display:flex 的时候,不管 item 有多少个,最多显示初始一屏宽度。
2)display:inline-flex 的时候,会随 item 的个数,自动放大宽度,也就是随内容,容器会自动放宽,以便所有的 item 都在容器里。
# 3 测试代码:
| <template> | |
|   <div> | |
|     <div class="flex-container"> | |
|       <div class="flex-item" v-for="item in flexItems" :key="item.id"> | |
|       </div> | |
|     </div> | |
|   </div> | |
| </template> | |
| <script lang="ts" setup> | |
| import { onMounted, reactive } from "vue"; | |
| const flexItems = reactive([] as any[]); | |
| onMounted(() => { | |
|   for (let i = 1; i <= 30; i++) { | |
|     flexItems.push({ id: i, name: `Item ${i}` }); | |
| } | |
| }); | |
| </script> | |
| <style scoped> | |
| .flex-container { | |
| display: inline-flex; | |
| flex-wrap: nowrap; /* 可选,如果你想让子项在多行显示 */ | |
| background-color: antiquewhite; | |
| min-width: 100px; | |
| } | |
| .flex-item { | |
| margin: 5px; /* 可选,为了美观 */ | |
| padding: 10px; /* 可选,为了美观 */ | |
| width: 150px; | |
| box-sizing: border-box; /* 可选,确保内边距和边框不会导致项目溢出 */ | |
| border: solid 1px #000; | |
| } | |
| </style> | 
