在html中,我有一个按钮,其中包含两个图标和一个带文本的跨度。 在css中,我使用flex和overflow属性,以便在文本太长时截断文本。该代码适用于所有浏览器,IE除外。 以下是jsfiddle的示例:https://jsfiddle.net/fu6kfhw9/1/
HTML
<button>
<div class="container">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
<span>TestTestTestTest</span>
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</div>
</button>
CSS
body, button {
max-width: 100px;
}
.container {
width: 100%;
display: flex;
span {
flex: 1;
overflow: hidden;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
提前致谢, 标记
答案 0 :(得分:3)
您可以删除flex
上的span
媒体资源。
body,
button {
max-width: 100px;
}
.container {
width: 100%;
display: flex;
}
span {
overflow: hidden;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<button>
<div class="container">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
<span>TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest</span>
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</div>
</button>
答案 1 :(得分:1)
浏览器有不同的CSS flex'。这个应该适用于IE: HTML
<button>
<div class="container">
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
<span>TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest</span>
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
</div>
</button>
CSS:
body, button {
max-width: 100px;
}
.container {
width: 100%;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex; /* NEW - Chrome */
display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
span {
flex: 1;
-ms-flex: 1 0 auto;
overflow: hidden;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
工作jsfiddle:https://jsfiddle.net/fu6kfhw9/7/
你可能能够删除所有不同的弯曲,只保留正常的和IE浏览器。
答案 2 :(得分:0)
如果要保留弹性框,可以为范围设置固定宽度:
body, button {
max-width: 100px;
}
.container {
width: 100%;
display: flex;
display: -ms-flexbox; /* ie Flex */
span {
flex: 1;
-ms-flex: 1 0 auto; /* ie Flex */
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 50px; /* fix width of span */
}
}