css - 如何在 CSS 网格布局中将文本溢出设置为省略号?

标签 css css-grid

<分区>

我有一个类似于下面 header 中的网格布局。 div中有一段文字,其宽度为1fr。我希望该 div 中的文本在太长时被截断。将 text-overflow 添加为 ellpsis 无效。知道怎么做吗?

它必须是网格,我无法更改它。

html,
body {
  height: 100%;
  width: 100%;
  overflow: hidden;
}

body {
  display: flex;
}

.container {
  display: flex;
  flex-direction: column;
  flex: 1;
}

content {
  flex: 1;
  background-color: red;
}

header {
  background-color: limegreen;
  display: grid;
  grid-template-columns: 0fr 1fr 0fr;
}

header div {
  border: 1px solid orange;
}

.long {
  text-overflow: ellipsis;
}
<div class="container">
  <header>
    <div>Left</div>
    <div class="long">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</div>
    <div>Right</div>
  </header>
  <content>
  </content>
</div>

最佳答案

将 .long css 更改为下面

.long {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

之所以需要加white-space和overflow,原因如下:

  1. 你需要 white-space: nowrap 告诉浏览器当文本长度超过包含 block 宽度时不要换行,white-space 属性默认值是正常的,这表明它可以换行,不会出现文字溢出的情况;
  2. overflow 默认值是可见的,当文本超出包含 block 时,它只是显示,所以不需要溢出文本来显示,只要将overflow设置为隐藏。然后,当文本不能完全显示时,它会使用text-overflow属性。

关于css - 如何在 CSS 网格布局中将文本溢出设置为省略号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44430740/

相关文章:

jquery - 如何使用 css 将文本或图像居中放置在固定大小的 div 上

jquery - 滑动 div onclick 然后再次返回 - Jquery

css - Atom 无法识别 CSS 网格命令 "justify-items"和 "justify-self"。为什么?

html - 如何在没有媒体查询的情况下使 ASCII art <pre> 标签响应?

css - 我可以将 css 网格元素推送到具有动态元素长度的 css 网格的最后位置吗?

html - 如何动态打破 FlexBox 列以开始新列

html - 如果网格的宽度大于其父级的 100%,则具有粘性左列的 CSS 网格将滚动

css - 两个div之间出现莫名其妙的空格

javascript - 悬停时平滑按钮增长和按钮收缩动画

javascript - 我们可以在 jquery 中显示图像的一部分吗?