css - 带省略号和换行的多行截断

标签 css flexbox

我想实现以下设计,其中文本环绕标题并在第二行后通过省略号截断。

Desired result


我可以使用 Flexbox 和行夹紧来实现截断,但无法将文本环绕标题。

enter image description here

下面的片段:

#container {
  max-width: 500px;
  display: flex;
}
#header {
  background-color: lightgreen;
}
#text {
  background-color: lightblue;

  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
}
<div id="container">
  <span id="header">Ad</span>
  <span id="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
</div>


我尝试使用 float ,但是使用 display: -webkit-box; 使文本表现得像 block 元素,并且不会环绕标题。

enter image description here

下面的片段:

#container {
  max-width: 500px;
}
#header {
  background-color: lightgreen;
  
  float: left;
}
#text {
  background-color: lightblue;

  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
}
<div id="container">
  <span id="header">Ad</span>
  <span id="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
</div>


有关如何截断文本并环绕标题的任何指示?谢谢。

最佳答案

您是否尝试过将行钳位移至父项并让子项内联?

#container {
  max-width: 500px;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
}

#header {
  background-color: lightgreen;
}

#text {
  background-color: lightblue;
}
<div id="container">
  <span id="header">Ad</span>
  <span id="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</span>
</div>

关于css - 带省略号和换行的多行截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62938570/

相关文章:

css - 如何解决此 Codepen 上的这两个问题?

html - 2 列列表项之间的尴尬间距

css - 在 HTML5 中可以使用类似于 photoshop 的混合模式吗?

css - Flexbox 列子项的高度 100%

javascript - 单击另一个 div 从页脚上方滑动 div

PHP 将列分成 3(数学和额外的 div 问题)

css - Flexbox 布局上从绝对元素到固定元素

html - 将 Div #2 和 Div #3 堆叠在 Div #1 旁边

css - 减小 Bootstrap 3 中下拉菜单的大小

css 3d 转换和 zindex 战斗