碰到一个需求,我这里使用el-autocomplete,因为列表的内容可能很长,导致显示不全,影响阅读。
所以需要修改一下下拉列表的宽度为auto,使得其适应内容宽度,而不是继承父元素宽度。

在这里插入图片描述

一开始使用深度作用选择器,发现作用样式不生效,查看dom结构发现是因为下拉列表的class是插入至body下的,而不是vue app 下。所以无法作用到。

解决方法:
将popper-append-to-body设为false,然后再使用深度作用选择器。

在这里插入图片描述
上代码

                <template v-slot:acc_no_edit="{ row }">
                  <el-autocomplete
                    class="inline-input"
                    ref="accNoSearch"
                    v-model="row.acc_name"
                    :popper-append-to-body="false"
                    :fetch-suggestions="querySearch"
                    size="medium"
                    @select="handleSelect($event,row)"
                    clearable
                    @clear="clearSelect(row)"
                    @keydown.enter.native="handleSelect(null,row)"
                    value-key="acc_title"
                  />
                </template>
// 修改下拉列表的宽度,使得其可以自动适应内容。
::v-deep.el-autocomplete .el-popper{
    width: auto !important;
}

效果如下

在这里插入图片描述

Logo

前往低代码交流专区

更多推荐