通常在Vuetify中,要对图标进行样式设置,我们会做如下操作:
<v-icon large color="primary">comment</v-icon>
当我们在这里使用 prepend-icon
属性时,我们如何获得相同的效果?
<v-list-group prepend-icon="comment">
文档称prepend-icon
使用与v-icon
相同的语法,但没有为我的用例提供具体示例。通常在Vuetify中,要对图标进行样式设置,我们会做如下操作:
<v-icon large color="primary">comment</v-icon>
当我们在这里使用 prepend-icon
属性时,我们如何获得相同的效果?
<v-list-group prepend-icon="comment">
文档称prepend-icon
使用与v-icon
相同的语法,但没有为我的用例提供具体示例。在v-list-group
的模板中使用v-icon
替代prepend-icon
属性放置在prependIcon
插槽中,将为您提供所需的所有灵活性:
<v-list-group>
<v-icon slot="prependIcon" large color="primary">comment</v-icon>
</v-list-group>
顺便提一下,还有一个appendIcon
插槽可用。官方的Vuetify文档列出了可用的插槽,但对任何详细信息都保持沉默。
正确定位并应用样式。
例如在v-list-group
中:
.v-list__group__header__prepend-icon .v-icon {
color: red;
}
请注意例如v-text-field
附加图标
.v-input__icon--append .v-icon {
color: purple;
}
注意: 如果不起作用,并且您正在使用作用域样式,请参见如何解决。
请勿仅使用.v-icon
,因为例如可能会覆盖附加图标,这可能不是您想要的。
此外,!important
不是一个好习惯,在这里我们不需要使用它。
所以根据组件旋转.v-list__group__header__prepend-icon
类,甚至添加自己的类。检查元素以了解前置/附加图标的类别,因为它们并不总是相同的。
(如果您正在使用作用域样式,则可能无需添加自己的其他选择器来针对特定的图标进行目标化)。
注意:我不知道有关于vuetify用于样式化前置/附加图标的专用类或属性。因此,如果这些存在或将来实现,可以使用它们。
许多 Veutify 项目提供插入和前置图标的插槽。通过这些插槽,图标可以像普通的 v-icon 组件一样进行着色/大小调整。
<v-text-field>
<template v-slot:append>
<v-icon color="green"> mdi-arrow-up-bold </v-icon>
</template>
</v-text-field>
顺便提一下:由于它是一个插槽,所以您不仅可以附加图标,还可以附加任何内容,例如工具提示!
文档:https://vuetifyjs.com/en/components/text-fields/#icon-slots
我不能对Annes' answer发表评论,但我猜想重要的是要补充说明,在Vue 3中,您可以这样做来创建内部附加/前置:
<v-text-field>
<template v-icon:appendInner>
<font-awesome-icon icon='eye'>
</template>
</v-text-field>
在开发vuetify 3时,我遇到了相同的问题,为了解决它,我给我的元素添加了一个类,然后使用了:deep
。
例如:
<style scoped>
.item-icon :deep(.v-icon) {
margin-right: 10px;
}
</style>
您可以使用插槽来扩展输入功能,而不是使用prepend / append / append-outer图标。
<v-list-group>
<template v-slot:prepend>
<v-tooltip bottom>
<template v-slot:activator="{ on }">
<v-icon v-on="on" color="yellow">place</v-icon>
</template>
tooltip text
</v-tooltip>
</template>
</v-list-group>