naiveUI 的 n-ellipsis

前言

这个帖子的诞生是因为目前项目是开发个低代码平台,整体框架基于naiveUI开发,这个组件库不知道有没有人用(难用的一批qwq),最麻烦的是遇到个问题搜都搜不到!!!很多东西比较原生,比如表格用的h函数(菜鸡的我因为这个组件库硬生生会用了这个qwq)

废话有点多了,其中可视化大屏需要增加文本超出省略号展示,组件库有个n-ellipsis,如下()确实,复杂度不会消失,只会转移:

image.png

起因

前言也说了,需要增加组件,便于搭建大屏(作为开发,我真的好奇,什么人会喜欢用低代码啊!!!!)

原框架带的文本组件只是基础的功能,在我的杂七杂八属性填充下算是丰富很多,但是!文本省略被搭建的人提出了,确实属于我的疏忽,在增加后,我本准备使用 弹出提示 Tooltip,但是考虑到Tooltip增加后,无论有无超出都会有提示,刚好发现组件库还有文本省略n-ellipsis,索性直接拿来用,然后开始了痛苦面具——

问题的诞生

本来我以为只是个组件的简单使用,如下

<template>
  <n-ellipsis
      :style="`
        color:${fontColor};
        padding: ${paddingY}px ${paddingX}px;
        fontSize:${fontSize}px;
        width: 100%;
        boxSizing: border-box;
        letter-spacing: ${letterSpacing}px;
        writing-mode: ${writingMode};
        font-weight: ${fontWeight};
        border-style: solid;
        border-width: ${borderWidth};
        border-radius: ${borderRadius};
        border-color: ${borderColor};
        background-color: ${backgroundColor};
        font-family: ${fontFamily}, sans-serif;
        text-align: ${textAlign};
        overflow:hidden;
      `"
      :line-clamp="ellipsisRowShow"
  >
    <div @click="click">
      {{ option.dataset }}
    </div>
  </n-ellipsis>
</template>

结果这样出现了:

image.png

image.png

排查

起初我以为是因为

overflow:hidden;

但是仔细排查并未忽略添加,我又以为是多嵌套了div的情况,结果不是,根据f12,我去尝试逐个去除css样式,发现组件内的元素不知道从哪里加了个height,还去不掉!!!我用属性强制覆盖,但是估计内部有逻辑处理导致不生效(已经在崩溃边缘),百度了一遍也找不到根本原因和解决办法,用这个组件的实在是太少了qwq——————

解决问题

本来我已经准备纯手写了,但是!我仔细看了一下,内部div实际上高度是对的,只是父级不知道为什么高度被设置了,

image.png

灵光一闪!我本身可以对div进行操作,我只是想要组件的超出才提示功能而已,所以我给嵌套的div又加了个css样式处理:

image.png

image.png

成功解决!但是还是不知道具体导致问题生成的原因,看到的大佬如果有思路可以指点一下,前端菜鸟先再次谢过了qwq