vue 显示企业标签,有多个,宽度有限制,超过宽度,截断内容显示,添加省略号 用vue createVNode render实现
时间: 2024-12-16 17:31:42 浏览: 9
在Vue中,你可以使用`createVNode`以及模板渲染机制来实现这样的需求。假设你有一个数组`tags`存储企业的标签,每个标签都有`name`属性,你需要限制其宽度并超出部分添加省略号。下面是一个简单的示例:
```html
<template>
<div class="tag-container">
<span v-for="(tag, index) in tags" :key="index" :style="{ width: '100px', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }">
{{ tag.name }}
<span v-if="tag.name.length > 10">...</span>
</span>
</div>
</template>
<script>
export default {
data() {
return {
tags: [
{ name: '这是一个非常长的企业标签,可能会超出行高' },
// ...其他标签
]
};
}
};
</script>
<style scoped>
.tag-container {
display: flex;
}
</style>
```
在这个例子中:
1. `v-for`指令遍历`tags`数组,并为每个标签创建一个新的`span`元素。
2. 每个`span`元素的`:style`属性设置了一个CSS样式,限制了宽度为100像素,当内容溢出时启用`overflow: hidden`隐藏多余的字符,`textOverflow: 'ellipsis'`用于在结尾添加省略号,`whiteSpace: 'nowrap'`保持文本在同一行内。
3. 使用`v-if`判断标签名称长度是否超过10字符,如果超过,则显示省略号。
阅读全文