我在我的Nuxt 3
应用程序中使用vue-select
和vee-validate
,但问题是,当选择的选项文本太大时,<input>
会转到下一行,因此整体字段高度会增加,这是我想避免的。对于选择的文本,如果选项文本不大,则一切正常。这只发生在大文本上。
下面是我的代码:
<template>
<div class="flex flex-col items-center max-w-md">
<Field :name="name" v-model="fieldItem">
<vSelect
ref="selectDropdownRef"
v-model="item"
:options="options"
:selectable="(option) => !option.disabled"
:getOptionLabel="
(option, concatValue) =>
concatValue
? option.text.toLowerCase() === option.value.toLowerCase()
? option.text
: `${option.text} ${option.value ? `(${option.value})` : ''}`
: option.text
"
class="w-full bg-gray-50 dark:bg-gray-700 rounded p-1"
:class="`${isDarkMode === 'dark' ? 'dark' : ''}`"
appendToBody
>
<template #search="{ attributes, events }">
<input class="vs__search w-full" v-bind="attributes" v-on="events" />
</template>
</vSelect>
</Field>
<div class="text-center">
<ErrorMessage :name="name" class="text-red-500 mt-2 italic" />
</div>
</div>
</template>
<script setup>
import { Icon } from "@iconify/vue";
import { Field, ErrorMessage } from "vee-validate";
import vSelect from "vue-select";
</script>
<style src="vue-select/dist/vue-select.css"></style>
<style>
.vs__dropdown-menu,
.vs__dropdown-option--disabled {
@apply bg-white dark:bg-slate-800;
}
.vs__dropdown-option,
.vs__selected,
.vs__search,
.vs__dropdown-option--disabled {
@apply text-primary dark:text-white;
}
.vs__dropdown-option--disabled {
@apply font-bold text-lg;
}
.vs__clear svg {
@apply secondary-fill;
}
.vs__open-indicator {
@apply secondary-fill;
}
</style>
字符串
对于较小的文本,该字段显示如下:
对于大文本,该字段显示如下:
正如我们所看到的,当有较大的文本时,该字段会扩展,当我在Chrome的检查选项卡中检查时,我可以看到由于我要避免的大文本,<input>
正在转移到下一行。我想确保该字段不会扩展。
我尝试添加几个Tailwind CSS样式:
.vs__selected {
display: block;
white-space: nowrap;
text-overflow: ellipsis;
max-width: 100%;
}
型
这是使图标超越:
1条答案
按热度按时间pbossiut1#
额外的空间是由于文本换行以及输入搜索元素:
的数据
我们可以通过应用
white-space: nowrap
来停止文本换行:字符串
要停止
input
Package ,我们可以从 Package 中删除flex布局:型
的字符串