popper-append-to-body设置为true时,el-select下拉列表不会随滚动条滚动
时间: 2023-07-24 14:34:26 浏览: 108
当 `popper-append-to-body` 设置为 `true` 时,下拉列表会被插入到 `body` 中,而不再是 `el-select` 的父元素中,因此出现了滚动条不跟随的问题。你可以通过给 `body` 元素添加样式来解决这个问题,例如:
```css
body {
overflow: auto;
position: relative;
}
```
这样就可以让 `body` 元素出现滚动条,并且设置了 `position: relative`,可以避免影响其他元素的布局。
如果你不希望给整个 `body` 添加样式,也可以通过给 `el-select` 组件设置一个父元素,并设置该元素的样式,例如:
```html
<div class="select-container">
<el-select popper-append-to-body>
<!-- options -->
</el-select>
</div>
```
```css
.select-container {
height: 200px;
overflow: auto;
position: relative;
}
```
这样,你就可以在 `select-container` 元素中出现滚动条,并且下拉列表也会跟随滚动条滚动了。
相关问题
给所有的el-select都添加为popper-append-to-body
将所有的el-select添加为popper-append-to-body可以通过修改全局配置来实现。可以在main.js文件中添加以下代码:
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI, {
popperAppendToBody: true // 添加全局配置popper-append-to-body
});
这将在全局范围内启用popper-append-to-body。它将影响整个应用程序,并将应用于所有使用el-select组件的地方,无需逐个修改每个el-select组件。这是一种高效且方便的方式来实现所需的更改。
注意,为了使此更改生效,您需要确保引入了Vue和ElementUI,并且通过Vue.use()方法将ElementUI注入Vue实例中。
添加popper-append-to-body下拉选中之后 再打开 还是会有高亮
如果你设置了 `popper-append-to-body` 属性后,下拉框选中后仍然会有高亮,那么你可以通过添加自定义的 CSS 样式来解决这个问题。
首先,你需要给 `el-select` 组件添加一个自定义的 class 名称,比如 `custom-select`:
```html
<el-select popper-append-to-body class="custom-select">
<el-option label="选项1" value="1"></el-option>
<el-option label="选项2" value="2"></el-option>
<el-option label="选项3" value="3"></el-option>
</el-select>
```
然后,在你的 CSS 文件中添加如下样式:
```css
.el-select__popper.is-popper-append-to-body .el-select-dropdown__item.selected {
background-color: transparent !important;
}
```
这个样式会将 `popper-append-to-body` 属性设置为 true 的 `el-select` 组件中选中的选项背景色设置为透明,从而达到去除高亮的效果。
注意,这里使用了 `!important` 来覆盖原有的样式,如果你的样式优先级足够高,可以省略 `!important`。
阅读全文