让el-option和el-select宽度保持一致

直接上代码!!!以下写法为 vue3

<el-select
           v-model="columnContentList"
           placeholder="请输入关键词"
           ref="columnContentSelect"
           class="column-content-list">
    <el-option
               v-for="item in columnContentListOptions"
               :key="item.value"
               :label="item.label"
               :style="{'width': selectOptionWidth}"
               :value="item.value">
    </el-option>
</el-select>
// 设置选项框与输入框同宽度
const selectOptionWidth = ref('')
const columnContentSelect = ref(null)
onMounted(()=> {
    nextTick(() => {
        selectOptionWidth.value = columnContentSelect.value.$el.offsetWidth + "px";
    });
})

原理:DOM挂载完毕后,获取 el-selcet宽度,并赋值给 el-option 。

如果 el-select 宽度不确定,可以在 focus 时获取 el-select 宽度,赋值给 el-option

posted @ 2022-06-17 11:20  生命在于折腾Up  阅读(2579)  评论(0)    收藏  举报