2017-06-19 43 views
0

我想在某些文本後插入一行,但一旦達到最大寬度(170px),我想顯示省略號。省略號在僞元素中的火狐中無法正常工作

但在Firefox每次它顯示我不想要的省略號。

我想在firefox中使用它在Chrome和IE中的工作方式。

div { 
 
    max-width: 170px; 
 
    background-color: #c7bdbd; 
 
} 
 

 
h1 { 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
} 
 

 
h1:after { 
 
    content: ''; 
 
    display: inline-block; 
 
    width: 100%; 
 
    height: 100%; 
 
    margin-right: -100%; 
 
    border-bottom: 1px solid #000; 
 
}
<div> 
 
    <h1>Title</h1> 
 
    <h1>Longer Title</h1> 
 
</div>

+0

Firefox是無法解釋的寬度爲100%正確,因此示出了橢圓總是。要檢查這個嘗試,給僞類 –

+0

一個明確的寬度::因爲它的寬度太大而不適合h1。儘管有負面的權利邊界。你能提供一個例子來說明爲什麼:: after需要嗎?刪除它(或者它的某些屬性,如'display'或'width')會使片段按預期工作。 –

+0

@MrLister後面的僞元素需要在文本之後顯示行。 – Mahi

回答

1

您可以絕對位置的僞元素。我認爲問題在於,省略號樣式是firefox將內聯僞元素當作文本並觸發省略號,然後將省略號附加到實際文本中。對僞元素應用絕對位置將停止這種行爲。

更新:進一步閱讀後,它實際上是一個鉻中的錯誤。 Firefox正確解釋overflow:ellipsis;的規範。

https://bugzilla.mozilla.org/show_bug.cgi?id=1346436

div { 
 
    max-width: 170px; 
 
    background-color: #c7bdbd; 
 
} 
 

 
h1 { 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
    position:relative; 
 
} 
 

 
h1:after { 
 
    content: ''; 
 
    width: 100%; 
 
    height: 100%; 
 
    border-bottom: 1px solid #000; 
 
    position:absolute; 
 
    bottom:8px; 
 
}
<div> 
 
    <h1>Title</h1> 
 
    <h1>Longer Title</h1> 
 
</div>

+0

你是我的英雄。感謝:) – Mahi

+0

bdw我認爲它在firefox中的錯誤:P – Mahi

+0

我也是這樣,但是所有內聯元素,包括具有'overflow:ellipsis;'的僞元素,都會在父元素溢出時觸發省略號。問題是僞元素沒有內容,所以沒有什麼可以將省略號追加到。 – WizardCoder

相關問題