我有一个项目列表,有些项目的结尾我想添加一个图标(或者其中几个 - 它是动态的)。 Items的容器有一个固定的宽度,如果item的文本大小太大 - 我想添加省略号 所以问题是在文本旁边添加了图标,如果文本很长 - 图标会移出容器。所有项目的模板必须相同 注意:并非所有项目都有图标,而某些图标可能包含多个图标 注2: javascript解决方案不适用,想在纯CSS中制作它。
实际:
:
非常感谢任何帮助。
body {
font-size: 20px;
}
.container {
width: 150px;
background: #ff0;
list-style: none;
padding: 0px;
margin: 0px;
}
.container li {
border-bottom: 1px solid #000;
}
.item {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.icon {
background: #0f0;
}
<ul class="container">
<li>
<div class="item">
<span class="text">Text 1</span>
<span class="icon">12</span>
</div>
</li>
<li>
<div class="item">
<span class="text">Text 2 Text 2</span>
<span class="icon">12</span>
</div>
</li>
<li>
<div class="item">
<span class="text">Text 3 Text 3 Text 3</span>
<span class="icon">12</span>
</div>
</li>
<li>
<div class="item">
<span class="text">Text 4 Text 4 Text 4</span>
<span class="icon"></span>
</div>
</li>
</ul>
答案 0 :(得分:5)
如果还有人在寻找解决方案,我想出来了:
标记:
<div class="block-wrap">
<div class="block">
<div class="icon"></div>
<div class="text">Text text text text text text text text text text text text text text text text text text text</div>
</div>
</div>
样式:
.block-wrap {
display: inline-block;
max-width: 100%;
}
.block {
width: 100%;
}
.text {
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.icon {
float: right;
margin-left: 10px;
width: 20px;
height: 14px;
background-color: #333;
}
答案 1 :(得分:0)
请尝试以下操作: Demo
修正.item class
旁边文字的宽度,并使display as inline-block
浮动图标。
CSS:
.item {
width:100%;
overflow: hidden;
}
.item >span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width:70%;
display:inline-block;
}
.icon {
background: #f00;
display:inline-block;
max-width:50px;
}
希望这会有所帮助:)