gpt4 book ai didi

css - 如何用省略号截断长文本但始终在省略号后显示图标

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:29 34 4
gpt4 key购买 nike

我想要完成的是一个填充其可用父 div 宽度的标题,但如果它的副本不适合 div,它应该用省略号截断。此外,它后面还应该有一个图标,该图标不应在截断时消失,而是始终显示在省略号之后。

另一个要求是父 div 应该有一个或多个按钮,宽度不特定,位于最右边,但如果调整 div 的大小,它应该截断长标题,允许图标显示在旁边我之前描述的省略号。

在视觉上,我想要的结果是这样的: truncation problem

到目前为止,我已经取得了以下成就:

/* Helper styles not relevant to the example */

/* Simple flag object from @csswizardry */

.flag {
display: table;
width: 100%;
}
.flag .flag__section {
display: table-cell;
vertical-align: middle;
}

/* Right float text from bootstrap */

.text-right {
text-align: right !important;
}


/* Colors for better visibility */

.container {
background-color: #55606d;
color: #333;
padding: 20px;
}
.flag__section--a {
background-color: #22d398;
}
.flag__section--b {
background-color: #91c1f8;
}
.fluid-text__icon {
background-color: #fecb52;
}



/* Styles relevant to the example */

.container {
max-width: 700px;
}
.fluid-text {
text-align: left;
}
.fluid-text__inner {
max-width: 100%;
}
.fluid-text__inner,
.fluid-text__copy {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.fluid-text__copy,
.fluid-text__icon {
float: left;
}
.fluid-text__copy {
padding-right: 5px;
}
.fluid-text__icon {
margin-top: 30px;
}

/* I'd like to not set explicit max width here */
.title {
max-width: 600px;
}
<div class='container'>
<div class='flag'>
<div class='flag__section flag__section--a fluid-text'>
<div class='fluid-text__inner'>
<h1 class='fluid-text__copy title'>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Doloremque earum in, voluptas dolorum sit ab modi facere tempora est, sequi molestiae! Commodi vitae sapiente ipsum, nisi facilis impedit aut? Repellendus!
</h1>
<span class='fluid-text__icon'>icon</span>
</div>
</div>
<div class='flag__section flag__section--b text-right'>
<button>ACTION</button>
</div>
</div>
</div>

但是,我唯一担心的是我必须显式设置 .title max-width,这是不可缩放的,我想避免它。

没有js有什么办法吗?

最佳答案

Flexbox 可以解决这个问题,我们只需将省略号扩展到 .description div 并进行一些小的调整。

* {
box-sizing: border-box;
}
.parent {
width: 80%;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1em;
padding: .5em;
border: 1px solid grey;
}
.description {
display: flex;
align-items: center;
white-space: nowrap;
overflow: hidden;
}
.text {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.icon {
flex: 0 0 auto;
background-color: rebeccapurple;
color: white;
padding: .5em;
margin: 0 .25em;
}
.button {
flex: 0 0 auto;
background-color: #ccc;
padding: .5em;
}
<div class="parent">
<div class="description">
<span class="text">Lorem sit amet, consectetur adipisicing elit doloremque earum in, voluptas dolorum sit ab modi facere tempora est, sequi molestiae! Commodi vitae sapiente ipsum, nisi facilis impedit aut? Repellendus!</span>
<span class="icon">I</span>
<span class="icon">I</span>
<span class="icon">I</span>
<span class="icon">I</span>
</div>
<div class="button">
Button
</div>
</div>

<div class="parent">
<div class="description">
<span class="text">Lorem sit amet</span>
<span class="icon">I</span>
<span class="icon">I</span>
</div>
<div class="button">
Button
</div>
</div>

关于css - 如何用省略号截断长文本但始终在省略号后显示图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39272035/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com