element-plus修改el-select下拉框的位置

一、效果图对比

没有修改之前:
在这里插入图片描述
可以明显看到下拉框的位置距离输入框较高,并且有小三角形。

修改之后:
在这里插入图片描述
可以看出高度上明显有变化,并且我还修改了图标、选中时的边框样式(这边我这部分就不写了,主要写如何调整位置)

二、修改思路

对于element库有了解的话可以知道无论是element-ui还是element-plus组件中关于下拉的部分都是用了.el-popper这个样式,但是这个样式默认是加在body元素下的,并不是父级元素下,并且是通过absolute绝对定位计算位置。在element-plusel-select有如下两个属性可以修改:
在这里插入图片描述
把下拉框禁止插入到body元素中,而是插入到父级元素中。示例如下:

<el-select
   class="search-select"
   v-model="queryParams.exceptionType"
   placeholder="选择工作状态"
   :suffix-icon="IconDropDown"
   clearable
   :fit-input-width="true"
   popper-class="search-select-option"
   :teleported="false"
 >
   <el-option label="正常" value="0"></el-option>
   <el-option label="异常" value="1"></el-option>
 </el-select>

样式代码:

// el-select 自定义样式(用于选择框)
.search-select {
  .el-input__wrapper {
    border-radius: 8px;
    height: 44px;
    padding: 0 10px 0 10px;
  }
  .el-input__suffix-inner>:first-child {
    margin: 0;
    width: 32px;
    height: 44px;
  }
  .el-popper {
    top: 46px !important;
  }
}

.search-select-option {
  box-shadow: none !important;
  border-radius: 8px;
  .el-select-dropdown {
    border: 1px solid #147AFC !important;
    box-shadow: none !important;
    border-radius: 8px;
  }
  .el-select-dropdown__item {
    padding: 0;
    margin: 0 16px;
    height: 39px;
    line-height: 39px;
    border-bottom: 1px solid #E8EBF0;
    color: #84878D;
    font-size: 16px;
    font-family: 'AlibabaPuHuiTi-2-55-Regular';
    font-weight: normal;
  }
  .el-select-dropdown__item:last-child {
    border-bottom: none;
  }
  .el-select-dropdown__list {
    margin: 9px 0 !important;
  }
  .el-select-dropdown__item.hover, .el-select-dropdown__item:hover {
    background-color: transparent;
  }
  .el-select-dropdown__item.selected {
    color: #147AFC;
  }
}

最主要的代码部分就是:teleported="false",我这边试了下:popper-append-to-body="false" 这个属性好像不太管用,所以还是建议大家用另外一个,然后就可以通过.el-popper进行修改位置了。注意我这边用的是scss,所以用了嵌套的语法。如果只是修改下拉框的样式,那么可以使用popper-class属性自定义一个样式。注意我这里是用的全局修改样式的方法,如果是想要通过scope修改样式,那么先把下拉框插入到父级元素后,用穿透的方法进行修改样式。不过我觉得如果穿透用的不是很好的话也可以直接写独一的样式类进行修改也行,注意不要冲突。不过建议还是UI在设计的时候样式进行统一会比较好。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据引用\[1\]中提到的问题,可以通过修改样式代码来设置element-plus的el-select长度。引用\[2\]中给出了一个示例的样式代码,其中可以通过修改.el-input__wrapper的padding属性来调整el-select的长度。另外,还可以通过设置.el-select-dropdown__item的margin属性来调整下拉选项的宽度。这样可以根据需要来自定义el-select的长度。 另外,引用\[3\]中提到了element-plus的el-select组件有一个属性叫做fit-input-width,可以将下拉框的宽度设置为与输入框的宽度相同。这样可以确保el-select的长度与输入框的长度一致。 综上所述,可以通过修改样式代码或使用fit-input-width属性来设置element-plus的el-select长度。 #### 引用[.reference_title] - *1* [element-plus的el-select实现触底加载更多(新版本报错踩坑)](https://blog.csdn.net/qq_21473443/article/details/131169526)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [element-plus修改el-select下拉框位置](https://blog.csdn.net/qq_43651168/article/details/130712253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值