[解決済み】CSSで長い文字列を切り捨てる:まだ実現可能か?
質問
プレーンなHTMLとCSSでテキストを切り捨てて、動的なコンテンツを固定幅・高さのレイアウトに収める良い方法はないでしょうか?
今までサーバーサイドで切り捨てるのは 論理的 しかし、'w' は 'i' よりも幅が広いので、これは最適とは言えない傾向があり、また、固定幅ごとに文字数を推測し、調整し続けなければなりません。 理想的には、切り捨てはブラウザで行われ、ブラウザは 物理的 レンダリングテキストの幅
私は、IEが
text-overflow: ellipsis
プロパティは、まさに私が望むことを実現してくれますが、クロスブラウザである必要があります。 このプロパティは
は、(ある程度?)標準的なようです。
が、Firefoxではサポートされていません。 私が見つけたのは
いろいろ
回避策
に基づいています。
overflow: hidden
しかし、それらは省略記号を表示しないか(コンテンツが切り捨てられたことをユーザーに知らせたい)、または常に表示します(コンテンツが切り捨てられなかったとしても)。
あるいは、サーバーサイドで論理的な幅で切り捨てるのが、今のところ一番良い方法なのでしょうか?
解決方法は?
更新してください。
text-overflow: ellipsis
がサポートされました。
Firefox 7 (2011年9月27日リリース) より。やったー 私の最初の回答は、歴史的な記録として以下の通りです。
Justin Maxwellは、クロスブラウザCSSソリューションを提供しています。しかし、Firefoxではテキストを選択できないという欠点があります。チェックアウト マット・スナイダー氏のブログへのゲスト投稿 をご覧ください。
このテクニックは、JavaScript で
innerHTML
プロパティを使用します。回避策については、この記事の最後を参照してください。
CSS
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
-moz-binding: url('assets/xml/ellipsis.xml#ellipsis');
}
ellipsis.xml
ファイルコンテンツ
<?xml version="1.0"?>
<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>
ノードの内容を更新する
Firefoxで動作する方法でノードの内容を更新するには、以下を使用します。
var replaceEllipsis(node, content) {
node.innerHTML = content;
// use your favorite framework to detect the gecko browser
if (YAHOO.env.ua.gecko) {
var pnode = node.parentNode,
newNode = node.cloneNode(true);
pnode.replaceChild(newNode, node);
}
};
関連
-
[解決済み] font-face は OpenType 埋め込み許可チェックに失敗しました。パーミッションはインストール可能である必要があります。
-
[解決済み] ChromeでCSSカスタムスタイルのボタンから青枠を削除する
-
[解決済み] モバイル端末でCSSを使用したフルハイトの背景画像
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] CSSでdivのアスペクト比を維持する
-
[解決済み] 最初の要素にクラスを指定するCSSセレクタ
-
[解決済み] .css()関数で追加したスタイルを削除するにはどうしたらいいですか?
-
[解決済み] CSS画像を背景で伸縮させる - CSSのみで可能
-
[解決済み] CSS 100% height と padding/margin の関係
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "セレクタ(CSS)にIDを使うな "なら、IDの代わりに何を使えばいい?
-
[解決済み] ネストしたdivのcssを簡素化
-
[解決済み] cssのフォントサイズ14px/26pxってどうなってるの?
-
[解決済み] ChromeでCSSが効かない
-
[解決済み] CSS text-overflow: ellipsis; が効かない?
-
[解決済み】CSSで、複数行のブロックがはみ出した場合、「...」を使用する。
-
[解決済み】HTMLのtext-overflowの省略記号の検出
-
[解決済み] 解決済み】複数行のテキストに省略記号を適用する [重複] [重複]
-
[解決済み] コンテンツが広すぎる場合、HTMLタグに省略記号(...)を挿入する
-
[解決済み] 長い単語でdivが壊れないようにするには?