2010-09-09 59 views
20

給定一些佔用大約10行的文本,如何調整其容器大小以僅顯示前3行並隱藏其他行?顯然,這個工作,但我認爲這是不可靠的:如何爲固定行數的文本設置元素高度

.container { 
    height: 7.5ex; /* 2.5ex for each visible line */ 
    overflow: hidden; 
} 

我可以依靠的事實,height of one row = 2.5ex或者是隻是我使用來測試瀏覽器是巧合嗎?

回答

27

如果你要使用這個你應該確保line-height總是2.5ex

.container { 
    line-height: 2.5ex; 
    height: 7.5ex; /* 2.5ex for each visible line */ 
    overflow: hidden; 
} 

Demo

+2

+1爲*確保行高* – 2010-09-09 10:21:23

+1

謝謝,這就是我一直在尋找:) – Tom 2010-09-09 10:55:36

+4

以防萬一有人想知道什麼是'ex'單元:[什麼是css的價值'ex 'unit?](http://stackoverflow.com/questions/918612/what-is-the-value-of-the-css-ex-unit) – Mikel 2016-02-23 09:43:00

4

的前部是字體的x-height(其X形的高度)。我不會在這裏使用它。你應該使用em單元。這是實際的字體高度。 font-height是通過設置line-height屬性來定義的。所以:

.container { 
    height: 3em; /* 1em for each visible line */ 
    overflow: hidden; 
} 

這裏是CSS長度單位一些更多的信息:http://www.w3.org/TR/CSS21/syndata.html#length-units

+0

其實,這是行不通的。只要嘗試一下高度的一些值即可。 – Tom 2010-09-09 10:57:13

+0

奇怪的..我爲我工作,但我使用藍圖;這可能會有所作爲。 – Johan 2010-09-09 15:09:22

+0

我確信我試過了,至少在兩個瀏覽器中失敗了。不記得哪些,但我是積極的失敗,所以在去「跆拳道」後,我來到了SO。 – Tom 2010-09-10 12:07:38

1

你可以設置一個文本行的高度,並用它知道每一行的確切高度,並設置所需高度的容器,只是這樣做:

.container { 
    line-height:25px; 
    height:75px; 
    overflow:hidden; 
} 

現在一切工作的正確:)

0

您可以使用WebKit財產線鉗

.container { 
    overflow: hidden; 
    display: -webkit-box; 
    -webkit-line-clamp: 3; 
    -webkit-box-orient: vertical; 
} 

它不適用於所有瀏覽器,但希望它有一天。

相關問題