el-form中五个el-form-item,我现在希望其中三个在一行中显示,另外两个分别一行

文章讲述了如何在ElementUI的el-form组件中,通过设置el-row和el-col的栅格布局,使三个el-form-item在一行显示,其余两个分别显示。涉及到了el-select和el-autocomplete的选择项组织。

问:

el-form中五个el-form-item,我现在希望其中三个在一行中显示,另外两个分别一行

回答:

如果你使用 Element UI 中的 el-form 和 el-form-item,并希望其中三个在一行显示,另外两个分别占据一行,可以通过设置不同的栅格布局来实现。以下是示例代码:

<el-row>
        <el-col :span="8">
          <!-- 频道 ?-->
          <el-form-item
            prop="channelId"
            label="频道"
            :rules="{
            required: true, message: '频道不能为空', trigger: 'change'
          }"
          >
            <el-select
              v-model="addDataForm.channelId"
              placeholder="必选"
              v-if="this.addDataForm.channelId == 1 && this.addDataForm.channelId == 2"
              disabled
            >
            </el-select>
            <el-select
              v-model="addDataForm.channelId"
              placeholder="必选"
              >
              <!-- v-if="this.addDataForm.channelId == " -->
              <el-option label="频道页" :value="2"></el-option>
              <el-option label="文章页" :value="3"></el-option>
              <el-option label="视频播放器" :value="4"></el-option>
              <el-option label="音频播放器" :value="5"></el-option>
              <el-option label="专题页" :value="6"></el-option>
              <el-option label="数据通" :value="7"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <!-- 栏目 ?-->
          <el-form-item
            prop="categoryId"
            label="栏目"
            :rules="{
              required: true, message: '栏目不能为空', trigger: 'change'
            }"
            >
            <!-- style="margin-left: 20px;" -->
            <el-select
              v-model="addDataForm.categoryId"
              placeholder="必选"
              >
              <!-- v-if="this.addDataForm.categoryId == 2" -->
              <el-option label="频道页" :value="2"></el-option>
              <el-option label="文章页" :value="3"></el-option>
              <el-option label="视频播放器" :value="4"></el-option>
              <el-option label="音频播放器" :value="5"></el-option>
              <el-option label="专题页" :value="6"></el-option>
              <el-option label="数据通" :value="7"></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            prop="topicId"
            label="专题"
            :rules="{
            required: true, message: '专题不能为空', trigger: 'change'
          }"
          >
            <el-autocomplete
              v-model="state"
              :fetch-suggestions="querySearchAsync"
              placeholder="请输入专题"
              @select="handleSelect"
            ></el-autocomplete>
          </el-form-item>
        </el-col>
      </el-row>

上述将三个下拉框单独摘出来,用el-row和el-col包括,这样就可以实现了,

在使用 Element UI 的 `el-form` 组件时,若希望一行显示两个 `el-form-item`,可以通过对 `el-form` 和 `el-form-item` 应用自定义的 CSS 样式来实现布局调整。具体方法如下: ### 使用 Flex 布局控制 `el-form-item` 排列 可以通过设置 `el-form` 的 `display` 属性为 `flex`,并结合 `flex-wrap: wrap` 来允许子元素换行,同时通过 `justify-content: space-between` 实现子元素之间的间距分布。此外,还需要对 `el-form-item` 设置宽度和 `flex` 属性,以确保其能够在一行显示两个表单项。 ```css .form { display: flex; flex-wrap: wrap; justify-content: space-between; } .el-form--inline .el-form-item { flex: 1 0 40%; /* 控制每个表单项占据容器的40%,留出空间给其他元素 */ align-items: center; } ``` 在模板中,需要将 `el-form` 设置为 `inline` 模式,并为每个 `el-form-item` 添加类名以应用上述样式: ```html <el-form :model="form" label-width="80px" class="form el-form--inline"> <el-form-item label="姓名"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="年龄"> <el-input v-model.number="form.age"></el-input> </el-form-item> </el-form> ``` ### 控制特定项独占一行 如果某些 `el-form-item` 需要独占一行,可以为其添加特定的类名(如 `.form-item-full`),并通过 `flex: 100% !important;` 确保其占据整行[^1]。 ```css .form-item-full { flex: 100% !important; } ``` ### 调整标签宽度 若 `el-form-item` 中的标签(label)与输入框(input)不在同一行显示,可能是由于标签宽度未正确设置。此时,可以通过设置 `label-width` 属性来调整标签的宽度,使布局更加紧凑合理[^3]。 ```html <el-form-item label="标题" label-width="100px"> <el-input clearable></el-input> </el-form-item> ``` 通过以上方法,可以有效地控制 `el-form` 中 `el-form-item` 的排列方式,实现一行显示两个表单项的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值