私の目標は、左側の文字を非表示にし、省略記号も左側にすることを除いて、オーバーフローと省略記号を非表示にした要素を作成することです。これはほとんどのブラウザで機能します。
CSS:
#mydiv {
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
direction:rtl;
}
HTML:
<div id="mydiv">foobar foobar foobar</div>
#mydivがその内容よりも狭い場合、次のようになります。
... obar foobar
しかし、私が言えることから(そして、これを試みる他の人への公正な警告、私はdirection:rtl
他のいくつかの場所で解決策を見たので)、これを正しく行う唯一の主要なブラウザはFirefoxのようです。SafariとGoogleChromeはどちらも省略記号をテキストの左側に配置しますが、とにかく右側を次のように切り捨てます。
... foobar foob
IE9とOperaはまったく混乱します。IEは右側で切り捨てられ、テキストが省略記号と重なるようにします。Operaは、これまでで最もクリエイティブであり、しばらくの間(つまり、要素が狭くなるにつれて)個々の単語にオーバーフローが表示され、次に左端の単語を右から切り捨て始めます。また、省略記号のレンダリングに失敗し、私が行った1つの実験では、™文字を左端まで移動しました。本当に。したがって、「foobarfoobarfoobar™」は次のようになります。
™foobfoobar
追記として、Webkitブラウザの(非常に厄介な)潜在的なオプションの1つ-webkit-rtl-ordering:visual
は、左側で切り捨てる設定を行うことですが、文字通り文字を逆の順序でレンダリングすることもできます。
... boofraboof
したがって、ブラウザまたはある種のあいまいな機能をスニッフィングすることで、理論的にはそのプロパティを設定し、要素のテキストを動的に反転させることができます。
単純なクロスブラウザーの回避策、または複雑なJSベースの回避策はありますか?