Burada başka üzerine alacak ve üç nokta olmadan yaşamak zorunda değilsiniz!
<html>
<head>
<style>
div.sidebox {
width: 25%;
}
div.sidebox div.qrytxt {
height: 1em;
line-height: 1em;
overflow: hidden;
}
div.sidebox div.qrytxt span.ellipsis {
float: right;
}
</style>
</head>
<body>
<div class="sidebox">
<div class="qrytxt">
<span class="ellipsis">…</span>
Some long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
<span class="ellipsis">…</span>
Some more long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
<span class="ellipsis">…</span>
Short text. Fail!
</div>
</body>
</html>
Bu ile bir kusur metin tam olarak görüntülenir kadar kısa ise, elips yine de gösterilecektir vardır.
[EDIT: 2009/06/26]
Güç-Coder önerisiyle ben bu biraz revize ettik. ": Inline-block ekranda" qrytxt div niteliği yalnızca iki değişiklik, belge türüne eklenmesi (notlara bakınız aşağıda) ve eklenmesi gerçekten vardır. İşte şimdi böyle görünüyor ...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style>
div.sidebox
{
width: 25%;
}
div.sidebox div.qrytxt
{
height: 1em;
line-height: 1em;
overflow: hidden;
display: inline-block;
}
div.sidebox div.qrytxt span.ellipsis
{
float: right;
}
</style>
</head>
<body>
<div class="sidebox">
<div class="qrytxt">
<span class="ellipsis">…</span>
Some long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
<span class="ellipsis">…</span>
Some more long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
<span class="ellipsis">…</span>
Short text. FTW
</div>
</div>
</body>
</html>
Notlar:
IE 8.0, Opera 9, FF 3 Görüntülenen
Düzgün çalışması için: A dokumantipi "inline-block ekranı" almak için IE için gereklidir.
Qrytxt div taşma uzun bir sözcük meydana gelirse, üç nokta ve son görünür kelime arasında geniş bir boşluk var oluyor. Sen örnek görüntüleme ve küçük artışlarla tarayıcı genişliği boyutlandırma bu görebilirsiniz. (Bu belki de orijinal örnekte var, ben sadece o bunu fark etmemiş olabilir)
Yani yine, kusurlu bir CSS-tek çözüm. Javascript etkisi mükemmel alabilirsiniz tek şey olabilir.
[EDIT: 2009/06/27]
İşte tarayıcı belirli uzantıları kullanan bir başka alternatif.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style>
div.sidebox
{
width: 26%;
}
div.sidebox div.qrytxt
{
height: 1em;
line-height: 1em;
overflow: hidden;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
-ms-text-overflow:ellipsis;
-moz-binding:url(ellipsis-xbl.xml#ellipsis);
white-space:nowrap;
}
</style>
</head>
<body>
<div class="sidebox">
<div class="qrytxt">
Some long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
Some more long text which will arbitrarily be cut off at whatever word fits best but will have an ellipsis at the end.
</div>
<div class="qrytxt">
Short text. FTW
</div>
</div>
</body>
</html>
Yukarıdaki örnek çalışması için sırayla, ellipsis-xbl.xml strong>,-moz-bağlayıcı kural tarafından başvurulan xml dosyası oluşturmanız gerektiğini unutmayın. Bu aşağıdaki xml içermelidir bulunuyor:
<?xml version="1.0" encoding="UTF-8"?>
<bindings xmlns="http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<binding id="ellipsis">
<content>
<xul:window>
<xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
</xul:window>
</content>
</binding>
</bindings>