如何使用 CSS 设置(覆盖)Vuetify v-autocomplete 列表框(结果区域)的高度?

发布于 2025-01-10 05:52:07 字数 1448 浏览 0 评论 0原文

我想增加 Vuetify v-autocomplete 的高度,它固定为 304px(可能是计算值,YMMV)。

<v-autocomplete
    class="flex-grow-0 ml-16 mr-6 largecontent"
    prepend-inner-icon="mdi-magnify"
    v-model="select"
    :items="items"
    item-text="name"
    item-value="id"
    :search-input.sync="search"
    hide-no-data
    label="Search anything (press /)"
>
    <template #item="{ item }">
        <v-list-item to="item.route">
            <v-list-item-content>
                <v-list-item-title v-text="item.name"/>
                <div
                    v-if="item.desc"
                    v-html="item.desc"
                />
            </v-list-item-content>
        </v-list-item>
    </template>
<v-autocomplete/>

这两者都有效,但会将样式应用于 ALL v-autocomplete,这是我们不想要的:

<style>
    .v-autocomplete__content {
        max-height: 600px !important;
    }
</style>

<style>
    .v_menu__content {
        max-height: 600px !important;
    }
</style>

所以,我想对其进行范围化

<style scoped>
    .v-autocomplete__content {
        max-height: 600px !important;
    }
</style>

或添加一个条目到我的全局 css 文件,类似于:

.largecontent.v-autocomplete__content  {
  max-height: 600px !important;
}

但似乎没有任何效果,也尝试了 Vuetify 深度选择器,但它们似乎只在存在父子层次结构时才起作用,而这里的情况并非如此。

I'd like to increase the height of the Vuetify v-autocomplete, which is fixed at 304px (might be a calculated value, YMMV).

<v-autocomplete
    class="flex-grow-0 ml-16 mr-6 largecontent"
    prepend-inner-icon="mdi-magnify"
    v-model="select"
    :items="items"
    item-text="name"
    item-value="id"
    :search-input.sync="search"
    hide-no-data
    label="Search anything (press /)"
>
    <template #item="{ item }">
        <v-list-item to="item.route">
            <v-list-item-content>
                <v-list-item-title v-text="item.name"/>
                <div
                    v-if="item.desc"
                    v-html="item.desc"
                />
            </v-list-item-content>
        </v-list-item>
    </template>
<v-autocomplete/>

These both work, but would apply the style to ALL v-autocomplete, which we don't want:

<style>
    .v-autocomplete__content {
        max-height: 600px !important;
    }
</style>

<style>
    .v_menu__content {
        max-height: 600px !important;
    }
</style>

So, I'd like to either scope it

<style scoped>
    .v-autocomplete__content {
        max-height: 600px !important;
    }
</style>

Or add an entry to my global css file, something like:

.largecontent.v-autocomplete__content  {
  max-height: 600px !important;
}

But nothing seem to work, also tried the Vuetify deep selectors, but they seem to only work when there's a parent-child hierarchy, which is not the case here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

牛↙奶布丁 2025-01-17 05:52:07

有一个 menu-props 属性,您可以传递给 v-autocomplete 以自定义其下拉菜单(包括最大高度)。

<v-autocomplete :menu-props="{ maxHeight: 500 }">...

There is a menu-props property, that you can pass to v-autocomplete in order to customize its dropdown menu (including max-height).

<v-autocomplete :menu-props="{ maxHeight: 500 }">...
怪我闹别瞎闹 2025-01-17 05:52:07

您是否尝试过放置 lang=scss 并使用 ::v-deep ?
也许“深入”可以帮助你按照你想要的方式改变风格

Did you tried put the lang=scss and use ::v-deep?
Maybe "deep" helps you to change the style in the way you want

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文