You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何旋转MUI菜单列表项文本以查看溢出内容?

解决方案

针对你的需求,这里提供几种无需额外弹出层的实现方案,均通过CSS hover状态修改样式来展示完整文本:

方案一:鼠标悬停旋转文本(符合你的旋转需求)

通过在hover时旋转文本并调整容器高度,让完整文本展示出来:

const useTextMenuItemStyles = () => {
  return css({
    container: {
      minHeight: 'auto',
      // 悬停时扩展容器高度,适配旋转后的文本
      '&:hover': {
        minHeight: 'max-content',
        padding: '8px 16px', // 可选:调整内边距避免文本贴边
      },
    },
    label: {
      whiteSpace: 'nowrap',
      overflow: 'hidden',
      textOverflow: 'ellipsis',
      transition: 'transform 0.3s ease', // 添加平滑过渡动画
      transformOrigin: 'left center', // 设置旋转中心点
      
      '&:hover': {
        transform: 'rotate(-90deg)', // 逆时针旋转90度
        whiteSpace: 'nowrap',
        overflow: 'visible',
        textOverflow: 'unset',
        marginLeft: '16px', // 可选:调整旋转后的文本位置
      },
    },
  });
};

注意事项

  • 旋转后需要调整MenuItem的minHeight为max-content,避免文本被容器裁切
  • transformOrigin控制旋转中心点,确保文本不会偏移到容器外
  • 过渡动画可以提升交互体验,避免旋转效果过于突兀

方案二:悬停时自动换行(最直观简单)

如果不需要旋转,这个方案更易理解且实现简单:

const useTextMenuItemStyles = () => {
  return css({
    container: {
      minHeight: 'auto',
      // 悬停时容器高度自适应内容
      '&:hover': {
        minHeight: 'max-content',
      },
    },
    label: {
      whiteSpace: 'nowrap',
      overflow: 'hidden',
      textOverflow: 'ellipsis',
      
      '&:hover': {
        whiteSpace: 'normal', // 允许文本换行
        overflow: 'visible',
        textOverflow: 'unset',
      },
    },
  });
};

优势

  • 无需复杂的transform调整,用户理解成本低
  • 文本自然展示,符合常规交互习惯

方案三:悬停时横向滚动(跑马灯效果)

适合需要保持行高不变,同时展示长文本的场景:

const useTextMenuItemStyles = () => {
  return css({
    container: {
      minHeight: 'auto',
      overflow: 'hidden', // 容器隐藏溢出内容
    },
    label: {
      whiteSpace: 'nowrap',
      overflow: 'hidden',
      textOverflow: 'ellipsis',
      
      '&:hover': {
        overflowX: 'auto', // 显示横向滚动条
        textOverflow: 'unset',
        animation: 'scroll 10s linear infinite', // 自动滚动动画
      },
      
      // 定义滚动动画
      '@keyframes scroll': {
        '0%': { transform: 'translateX(0)' },
        '100%': { transform: 'translateX(-100%)' },
      },
      
      // 鼠标悬停时暂停动画,方便手动滚动
      '&:hover:hover': {
        animationPlayState: 'paused',
      },
    },
  });
};

特点

  • 保持原行高,不会改变菜单布局
  • 自动滚动展示完整文本,也支持手动拖动滚动条查看

内容的提问来源于stack exchange,提问作者Jeremy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:16:14