请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

听雨
金牌服务用户   /  发表于:2025-3-6 14:56  /   查看:150  /  回复:7
1金币
本帖最后由 听雨 于 2025-3-6 14:57 编辑

EL菜单中的文字内容,如果太长(主要涉及到外文字符较长)就会使整个菜单的宽度很宽(以纵向菜单为例),影响主页面的大小(布局会出现滚动条)和整体的美观性。尤其是有二级或者三级菜单时。
这里设置了EL菜单的自适应宽度。但如果不设置,那么多余的文字又不显示(被截短)。


所以如何能让文字能自动换行?(当文字长度达到设定值就自动换行,且此文字所在菜单高度也随之自适应增加)



目前已添加了CSS来控制它的菜单高度和文字大小
  1. .el-menu--horizontal.el-sub-menu__title {
  2.     font-size: 11px !important;
  3.     height: 37px !important;
  4. }
  5. .el-menu--horizontal.el-menu{
  6.     font-size: 11px !important;
  7.     height: 37px !important;
  8. }
  9. :root {
  10.     --el-menu-item-font-size: 11px !important;
  11.     --el-menu-item-height: 37px !important;
  12. }
复制代码


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

大佬,可以试试这个: 这边用红色框加了注释:可以自动换行和固定宽度(换行会自动向下新增一行,自适应);如果还有高度需求可以使用height控制; 红色框的话大佬这边测试没问题后就可以删除掉了哦~ 效果如下: 原:

7 个回复

倒序浏览
最佳答案
最佳答案
Levi.Zhang
超级版主   /  发表于:2025-3-6 14:56:20
来自 6#
本帖最后由 Levi.Zhang 于 2025-3-7 10:08 编辑

大佬,可以试试这个:
这边用红色框加了注释:可以自动换行和固定宽度(换行会自动向下新增一行,自适应);如果还有高度需求可以使用height控制;
红色框的话大佬这边测试没问题后就可以删除掉了哦~

效果如下:


原:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2025-3-6 15:55:15
2#
大佬,固定大小也是一种办法,但是会有限制;可以试试这段CSS,允许在长单词或者连续字符处换行、调整行高和内边距:
.el-menu--horizontal .el-menu-item {
  white-space: normal;  
  word-break: break-word;
  text-align: center;  
  line-height: normal;
  padding: 10px;
}

效果如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
听雨
金牌服务用户   /  发表于:2025-3-6 17:13:58
3#
Levi.Zhang 发表于 2025-3-6 15:55
大佬,固定大小也是一种办法,但是会有限制;可以试试这段CSS,允许在长单词或者连续字符处换行、调整行高 ...

加上没有效果。
因为EL菜单默认的单行文字的菜单高度太高,所以我使用上面的css代码进行设置。但是我想知道,能否同时实现:单行文字时,菜单高度是我css设置的高度,然后文字较长时,能自动换行,菜单高度自动变成2倍我设置的高度(2行文字的情况下),字号还是我css设置的字号。这样固定高度和自动换行是否有冲突呢?
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2025-3-6 17:42:18
4#
本帖最后由 Levi.Zhang 于 2025-3-6 17:43 编辑

大佬,可能会导致冲突的哦,或者大佬可以再试试上面的对于长字符串的自动换行:

原:

加入后:


代码注释如下:

.el-menu--horizontal .el-menu-item {
  white-space: normal;  
  /* 允许单词在必要时断开,以防止溢出 */
  word-break: break-word;
  /* 使菜单项文本居中对齐 */
  text-align: center;  
  /* 让行高保持正常,确保内容居中对齐 */
  line-height: normal;
  /* 设置菜单项的内边距,提高可读性 */
  padding: 10px;
}

如果还不行话大佬可以提供下Demo吗?这边根据场景再看看有没有合适的方案呢~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
听雨
金牌服务用户   /  发表于:2025-3-6 19:10:51
5#
Levi.Zhang 发表于 2025-3-6 17:42
大佬,可能会导致冲突的哦,或者大佬可以再试试上面的对于长字符串的自动换行:

原:

我想要单独控制纵向菜单的换行,横向的不用。这是DEMO,请帮忙看下如何解决。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
听雨
金牌服务用户   /  发表于:2025-3-7 16:40:55
7#
Levi.Zhang 发表于 2025-3-7 09:45
大佬,可以试试这个:
这边用红色框加了注释:可以自动换行和固定宽度(换行会自动向下新增一行,自适应) ...

可以了。结合我之前的设置的CSS,现在能做到换行(且行高和字号符合要求),目前的行高(设定40px)仅能完全容纳2行文字,如果文字更长变成3行或更多行,那么行高依然不会自适应,文字会溢出与其它菜单文字重叠。

现在的情况基本也行了,2行也够了。

十分感谢!
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2025-3-7 17:03:40
8#
不客气哈~
感谢您对活字格的支持!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部