2016-06-16 62 views
2

我試圖在使用flexbox而不是float的兩段內容之間創建一個省略號。我需要的效果可能永遠不會與浮動工作。CSS:使用flexbox的中間省略號,在safari中的中斷

第一個「列」包含的信息不如第二列中的信息重要,因此應該在第二列之前的任何事情之前截斷。

這種效果在Chrome和FireFox中運行良好,但在Safari中失敗。

我使用的正確版本的Safari根據caniuse顯示完全支持flexbox。

對於真人版,和我所試圖實現纖薄擊落版本:

.parent { 
 
    background-color: lightgrey; 
 
    padding: 10px 0; 
 
    display: flex; 
 
    max-width: 410px; 
 
    margin-bottom: 2px; 
 
} 
 
.less-important { 
 
    background-color: lightpink; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    padding: 0 5px; 
 
} 
 
.more-important { 
 
    background-color: lightgreen; 
 
    white-space: nowrap; 
 
    padding: 0 5px; 
 
}
<div class="parent"> 
 
    <div class="less-important">Truncate this text because it is less important</div> 
 
    <div class="more-important">The important text</div> 
 
</div> 
 

 
<div class="parent"> 
 
    <div class="less-important">No ellipsis</div> 
 
    <div class="more-important">Important stuff</div> 
 
</div> 
 

 
<div class="parent"> 
 
    <div class="less-important">Less important content</div> 
 
    <div class="more-important">Way more important info that will cause ellipsis</div> 
 
</div>


這裏是正在發生的截圖在Safari中: Flexbox in Safari does not keep the content in the parent element

如何正確使用Safari?

回答

5

我得到它的工作通過指定.less-important.more-importantflex:屬性:

.parent { 
 
    background-color: lightgrey; 
 
    padding: 10px 0; 
 
    display: flex; 
 
    max-width: 410px; 
 
    margin-bottom: 2px; 
 
} 
 
.less-important { 
 
    background-color: lightpink; 
 
    white-space: nowrap; 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    padding: 0 5px; 
 
    flex: 0 1 auto; 
 
} 
 
.more-important { 
 
    background-color: lightgreen; 
 
    white-space: nowrap; 
 
    padding: 0 5px; 
 
    flex: 0 0 auto; 
 
}
<div class="parent"> 
 
    <div class="less-important">Truncate this text because it is less important</div> 
 
    <div class="more-important">The important text</div> 
 
</div> 
 

 
<div class="parent"> 
 
    <div class="less-important">No ellipsis</div> 
 
    <div class="more-important">Important stuff</div> 
 
</div> 
 

 
<div class="parent"> 
 
    <div class="less-important">Less important content</div> 
 
    <div class="more-important">Way more important info that will cause ellipsis</div> 
 
</div>

+0

我整天被砸我的臉靠在辦公桌上這個...我不知道如果Safari瀏覽器只需要明確告訴。無論哪種方式,這真棒。謝謝。 – KevBot

+0

Flexbox可以真正挑剔 - 尤其是「默認行爲」 - 從瀏覽器到瀏覽器。如果你還沒有,我強烈建議書籤https://github.com/philipwalton/flexbugs –

+0

感謝您的資源!很有幫助。 – KevBot