【问题标题】:"text-overflow: ellipsis" not working well in firefox with floating element around“文本溢出:省略号”在带有浮动元素的 Firefox 中效果不佳
【发布时间】:2014-10-13 07:50:55
【问题描述】:

见 jsfiddle:http://jsfiddle.net/9v8faLeh/1/

我在 .container 中有两个元素 .text.badge,宽度有限制:

<div class="container">
    <span class="badge">(*)</span>
    <span class="text">this is a long long long long text.</span>
</div>

根据数据,.badge 元素可能不存在于.container 中。如果存在.badge,我希望.badge 元素向右浮动。如果.text 太长,则文本应省略。

.container {
    width: 150px;
    border: 1px solid;
    padding: 5px;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.badge {
    float: right;
    margin-left: 5px;
}

如果您在 Chrome 或 IE 中打开 jsfiddle 链接,它会按照我的预期正确显示。
但是如果在 Firefox 中打开,如果文本太长,.text.badge 会被覆盖。

我不想使用任何 JavaScript。如何在 FireFox 中获得相同的结果?

【问题讨论】:

    标签: html css firefox


    【解决方案1】:

    只需将&lt;span class="badge"&gt;(*)&lt;/span&gt; 放入&lt;span class="text"&gt;this is a long long long long text.&lt;/span&gt; 中,如下所示:

    <span class="text">this is a long long long long text.<span class="badge">(*)</span></span>
    

    然后在 CSS 中

    .container {
        width: 150px;
        border: 1px solid;
        padding: 5px;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
        display:block;
    }
    .badge {
        display:inline-block;
    }
    .hide {
        display: none;
    }
    

    【讨论】:

    • 感谢您的回复,但它不起作用。看到jsfiddle.net/9v8faLeh/2徽章消失了……我改得正确吗?
    • 等等,我知道你希望它消失。在您的原始版本中,它在 FF 中根本没有消失
    • 我希望如果徽章没有类 '.hide',它应该始终显示在 div 的右侧。
    • 很抱歉我没有说清楚,.badge 的宽度可能会改变。演示显示(*),也可能是(****),因此在这种情况下固定填充不起作用。
    • 但是如果你在 Chrome 或 IE 中检查 jsfiddle,它可以工作并且没有定义固定的填充。
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2018-02-28
    • 2016-11-15
    • 2012-07-30
    • 2013-01-16
    相关资源
    最近更新 更多