CSS解決方案
你可以設置一個高度,做溢出隱患。
span {
display: inline-block;
border: black 1px solid;
width: 300px;
height: 40px;
overflow: hidden;
}
例:http://jsfiddle.net/imoda/REs2Q/
PHP解
服務器雙面替代方法是使用substr
<?php
$string = "Oh squiggly line in my eye fluid. I see you lurking there on the peripheral of my vision. But when I try to look at you, you scurry away. Are you shy, squiggly line? Why only when I ignore you, do you return to the center of my eye? Oh, squiggly line, it's alright, you are forgiven.";
echo charlimit($string, 100);
function charlimit($string, $limit) {
return substr($string, 0, $limit) . (strlen($string) > $limit ? "..." : '');
}
?>
例:http://codepad.org/OetkaMh6
這將輸出100個字符的字符串,然後附加...
把戲與這是你將不得不改變字符的數量,以最適合你的情況。由於它是服務器端的,因此它不會知道在每種情況下只觸發一次回車所需的字符數。
或者,你可以限制的單詞數:
<?php
$string = "Oh squiggly line in my eye fluid. I see you lurking there on the peripheral of my vision. But when I try to look at you, you scurry away. Are you shy, squiggly line? Why only when I ignore you, do you return to the center of my eye? Oh, squiggly line, it's alright, you are forgiven.";
echo wordlimit($string, 20);
function wordlimit($string, $limit) {
$overflow = true;
$array = explode(" ", $string);
$output = '';
for ($i = 0; $i < $limit; $i++) {
if (isset($array[$i])) $output .= $array[$i] . " ";
else $overflow = false;
}
return trim($output) . ($overflow ? "..." : '');
}
?>
例:http://codepad.org/WYJFPaD5
但它同樣的事情,你必須調整它爲 「最適合」
希望有所幫助。
感謝確保它充分利用寬度在兩行中,但我不能用這種方法顯示省略號我猜...有沒有什麼辦法可以預先處理服務器端的字符串以達到所需的行爲? –
是的,您可以使用任何服務器端技術在服務器端使用字符串操作函數將字符串截斷爲期望的長度,問題是您在服務器端使用的是什麼環境或者您最熟悉哪種服務器端技術?你可以做的另一件事是使用客戶端JavaScript截斷文本。 –
@Sainath我已經添加了一個服務器端替代。 –