element-plus [Component] [link, text] el-text 和 el-link 互相嵌套时无法同时起作用

kokeuurv  于 5个月前  发布在  其他
关注(0)|答案(4)|浏览(117)

Bug Type: Component

Environment

  • Vue Version: 3.2.13
  • Element Plus Version: 2.7.3
  • Browser / OS: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0
  • Build Tool: Vue CLI

Reproduction

  • el-link
  • el-text

Element Plus Playground

Steps to reproduce

src/components/TestLinkAndTextComponent.vue

<template>
  <div style="width: 300px;">
    <el-text class="w-150px mb-2" size="large" truncated>
      <!-- {{ props.title }} -->

      <el-link
        type="default"
        :href="props.href"
        target="_blank"
        class="news-title"
      >
      {{ props.title }}
      </el-link>
    </el-text>
  </div>
</template>

<script lang="js" setup>
const props = defineProps({
title: {
type: String,
default: "标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题标题题标题标题标题标题标题标题标题标题",
},
href: {
type: String,
default: "https://www.baidu.com",
},
});
</script>

<style lang="scss" scoped></style>

src/App.vue

<template>
  <div id="app">
    <TestLinkAndTextComponent></TestLinkAndTextComponent>
  </div>
</template>

<script>
import TestLinkAndTextComponent from './components/TestLinkAndTextComponent.vue';

export default {
name: "App",
components: {
TestLinkAndTextComponent
},
setup() {
return {

};
},
};
</script>

<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>

What is Expected?

  1. 显示省略号 2. 有下划线且高亮文本
    可以同时显示两个功能

What is actually happening?

  1. 显示省略号 2. 有下划线且高亮文本
    只能成功显示其中一个功能

Additional comments

(empty)

9cbw7uwe

9cbw7uwe2#

对我试了一下,的确将浏览器去掉勾选.el-link_inner{ display: inline-flex} 和 .el-link{display: inline-flex} 之后就可以显示省略号了

同时我也发现了新的问题:

在我原来的代码基础之上对el-text加上type="success"之后发现居然没有被染色:

同时我对el-text的size从smal、default、large三者进行切换的时候, 发现文字大小并没有改变, 可以看到设置size=large之后依旧是上面图片的大小:

在此基础上我在浏览器将.el-link_inner{ display: inline-flex} 和 .el-link{display: inline-flex} 取消勾选之后, 发现了新的问题: 1. 省略号变色了,但是文本颜色保持不变 2. 字体大小也保持不变(就是依旧没被size=large改变)

当注释掉el-link后(即el-text单独使用):

所以因为某种原因, el-linkel-text 无法共同使用

qni6mghb

qni6mghb3#

el-linkel-text 样式会相互干扰,或许不应该嵌套使用。🤔

ymdaylpp

ymdaylpp4#

@btea 我想也是, 其实用a标签包裹 el-text 也不是不可以,那就没有 el-link 的漂亮的多种样式了(除非自己定制),如果要达到 el-text 和 el-link 两者共同作用的效果, 只能是让 el-text 继承 el-link 的全部样式, 最后仅使用el-text即实现。这应该算是个需求了。

相关问题