Skip to content

VaporCSS flex样式写法参考

基础 Flex 布局

CSS 类样式备注
fldisplay:flex; flex-direction:row;水平 Flex 布局
fvdisplay:flex; flex-direction:column;垂直 Flex 布局

Flex 方向

CSS 类样式备注
frrflex-direction: row-reverse;水平反向布局
fcrflex-direction: column-reverse;垂直反向布局

Flex 收缩

CSS 类样式备注
fsflex-shrink:1;允许收缩
fs-0flex-shrink:0;禁止收缩

Flex 增长

CSS 类样式备注
fgflex-grow:1;允许增长
fg-0flex-grow:0;禁止增长

单个项目对齐

CSS 类样式备注
fasaalign-self: auto;自动对齐
fascalign-self: center;居中对齐
fassalign-self: flex-start;顶部对齐
fasealign-self: flex-end;底部对齐
fasbalign-self: baseline;基线对齐
fasstalign-self: stretch;拉伸对齐

项目对齐

CSS 类样式备注
faicalign-items: center;居中对齐
faisalign-items: flex-start;顶部对齐
faiealign-items: flex-end;底部对齐
faibalign-items: baseline;基线对齐
faistalign-items: stretch;拉伸对齐

内容对齐

CSS 类样式备注
faccalign-content: center;居中对齐
facsalign-content: flex-start;顶部对齐
facealign-content: flex-end;底部对齐
facbalign-content: baseline;基线对齐
facstalign-content: stretch;拉伸对齐

主轴对齐

CSS 类样式备注
fjcsjustify-content: flex-start;起始对齐
fjcejustify-content: flex-end;结束对齐
fjccjustify-content: center;居中对齐
fjcbjustify-content: space-between;两端对齐
fjcajustify-content: space-around;环绕对齐
fjcsejustify-content: space-evenly;均匀对齐

换行

CSS 类样式备注
fwwflex-wrap: wrap;允许换行
fwnflex-wrap: nowrap;禁止换行
fwwrflex-wrap: wrap-reverse;反向换行

盒模型

CSS 类样式备注
bznbox-sizing: none;默认盒模型
bzbbox-sizing: border-box;边框盒模型
bzxbox-sizing: content-box;内容盒模型

使用示例

水平布局

vue
<!-- 水平居中对齐 -->
<view class="fl fjcc faic h-100 bg-gray-100">
  <view class="w-50 h-50 bg-blue-100"></view>
  <view class="w-50 h-50 bg-green-100 ml-10"></view>
  <view class="w-50 h-50 bg-red-100 ml-10"></view>
</view>

<!-- 两端对齐 -->
<view class="fl fjcb h-80 bg-gray-100 p-10">
  <view class="w-40 h-40 bg-blue-100"></view>
  <view class="w-40 h-40 bg-green-100"></view>
  <view class="w-40 h-40 bg-red-100"></view>
</view>

垂直布局

vue
<!-- 垂直居中对齐 -->
<view class="fv fjcc faic h-200 bg-gray-100">
  <view class="w-80 h-40 bg-blue-100"></view>
  <view class="w-80 h-40 bg-green-100 mt-10"></view>
  <view class="w-80 h-40 bg-red-100 mt-10"></view>
</view>

<!-- 垂直分布 -->
<view class="fv fjcs faist h-200 bg-gray-100 p-10">
  <view class="w-80 h-40 bg-blue-100"></view>
  <view class="w-80 h-40 bg-green-100"></view>
  <view class="w-80 h-40 bg-red-100"></view>
</view>

复杂布局

vue
<!-- 混合布局 -->
<view class="fl fjcs faist h-200 bg-gray-100 p-10">
  <view class="w-60 h-180 bg-blue-100"></view>
  <view class="fv fjcc faic flex-1 ml-10">
    <view class="w-full h-50 bg-green-100 mb-10"></view>
    <view class="w-full h-50 bg-red-100 mb-10"></view>
    <view class="w-full h-50 bg-yellow-100"></view>
  </view>
</view>

<!-- 响应式布局 -->
<view class="fl fww fjca p-10">
  <view class="w-100 h-100 bg-blue-100 mb-10 mr-10"></view>
  <view class="w-100 h-100 bg-green-100 mb-10 mr-10"></view>
  <view class="w-100 h-100 bg-red-100 mb-10 mr-10"></view>
  <view class="w-100 h-100 bg-yellow-100 mb-10 mr-10"></view>
</view>

最佳实践

  1. 语义化使用:根据布局需求选择合适的 Flex 类
  2. 组合使用:灵活组合不同的 Flex 类,实现复杂布局
  3. 响应式设计:结合媒体查询,实现响应式布局
  4. 性能优化:避免嵌套过深的 Flex 容器
  5. 浏览器兼容性:注意 Flexbox 在不同浏览器中的兼容性
  6. 盒模型:合理使用 bzb 类,简化布局计算

常见布局模式

居中布局

vue
<!-- 水平垂直居中 -->
<view class="fl fjcc faic h-200 bg-gray-100">
  <view class="w-100 h-100 bg-blue-100"></view>
</view>

导航栏布局

vue
<!-- 导航栏 -->
<view class="fl fjcs faic h-80 bg-white border-b">
  <view class="w-60 h-60 flex-1">
    <text class="s-24 sfwb">Logo</text>
  </view>
  <view class="fl fjce flex-1">
    <view class="mr-20"><text class="s-16">首页</text></view>
    <view class="mr-20"><text class="s-16">产品</text></view>
    <view class="mr-20"><text class="s-16">关于我们</text></view>
    <view><text class="s-16">联系我们</text></view>
  </view>
</view>

卡片布局

vue
<!-- 卡片网格 -->
<view class="fl fww fjca p-10">
  <view class="w-150 h-200 bg-white rounded-md shadow-sm p-10 mb-10 mr-10">
    <view class="h-100 bg-blue-100 rounded-md mb-10"></view>
    <text class="s-16 sfwb">卡片标题</text>
    <text class="s-14 c-gray-600 mt-5">卡片描述</text>
  </view>
  <!-- 更多卡片... -->
</view>

表单布局

vue
<!-- 表单行 -->
<view class="fl fjcs faic h-60 mb-10">
  <view class="w-120"><text class="s-16">用户名:</text></view>
  <view class="flex-1">
    <input class="w-full h-40 border rounded-md px-10" placeholder="请输入用户名" />
  </view>
</view>

通过 VaporCSS Flex 布局系统,您可以轻松实现各种复杂的布局效果,提高开发效率,同时保持代码的清晰和可维护性。