若依系统左侧导航栏 宽度不够 logo和title不能显示在一行 导致title换行

若依系统左侧导航栏 宽度不够 logo和title不能显示在一行 导致title换行 但是title换行后就直接隐藏了
在改变$base-sidebar-width的宽度情况下 怎么让title正常显示出来

  • 参考GPT的内容和自己的思路:

  • 如果你想要让title正常显示出来,可以尝试以下方法:

  • 缩短title的文本长度
    可以尝试缩短title的文本长度,使得它可以在较小的宽度下显示。这可以通过截断字符串或者使用缩写来实现。

  • 使用CSS white-space属性
    使用CSS的white-space属性来控制文本的换行方式。例如,设置white-space: nowrap; 可以防止文本换行,从而使title在单行内显示。

  • 使用CSS Flexbox布局
    使用CSS Flexbox布局可以使得logo和title在宽度不足的情况下也能够在同一行内显示。你可以设置logo和title的容器为flex容器,然后使用flex属性来控制它们在同一行内的位置和大小。
  • 例如,在以下HTML代码中,我们可以将logo和title的容器设置为flex容器,并使用flex属性来控制它们的位置和大小:
<div class="sidebar">
  <div class="logo">Logo</div>
  <div class="title">Title</div>
</div>


  • 然后,在CSS代码中,我们可以这样设置:
.sidebar {
  display: flex;
  align-items: center;
}

.logo {
  flex: 0 0 auto;
}

.title {
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


  • 这将使得logo固定在左侧,title自动填充右侧,并且在宽度不足时可以通过使用CSS的text-overflow属性来截断文本并添加省略号。

“Devil组”引证GPT后的撰写:
用JavaScript检测标题是否超出父元素的宽度,并将其缩小以适应。以下是实现此功能的代码示例:


// 获取标题元素
const title = document.querySelector('.sidebar-title');

// 获取标题的父元素
const titleContainer = document.querySelector('.sidebar-title-container');

// 获取标题的宽度
const titleWidth = title.offsetWidth;

// 获取标题容器的宽度
const containerWidth = titleContainer.offsetWidth;

// 如果标题宽度大于容器宽度,则缩小标题
if (titleWidth > containerWidth) {
  // 计算缩小比例
  const ratio = containerWidth / titleWidth;
  
  // 设置标题的缩放比例
  title.style.transform = `scale(${ratio})`;
}

这只是一个基本示例,要根据具体情况进行修改。还应该考虑在窗口大小调整时重新计算标题大小。