質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

2822閲覧

ブラウザfirefoxで、複数行の文章を省略して文末を「...」にしたいです。

y_43

総合スコア17

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

2クリップ

投稿2016/01/21 18:10

###ブラウザfirefoxで、複数行の文章を省略して文末を「...」にしたいです。

初めまして、プログラミング初心者です。
よろしくお願い致します。

###ソースコード

html

1<div class="explain_box"> 2 <p class="explain_comment"> 3 コメントコメントコメントコメントコメントコメントコメントコメント... 4 </p> 5</div>

上記のhtmlで、コメント部分が長文になった場合、実際にブラウザに表示されるコメントは4行までに省略され、4行目の文末に「...」を表示したいです。

ブラウザfirefoxの場合は、どうやればできますでしょうか?
CSSやjavascriptを用いればできるのでしょうか?
説明がわかりにくかったら申し訳ありません。

わかる方いらっしゃいましたら、すみませんが回答をよろしくお願い致します。

dddd_gond👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

ちょっと強引ですが…
200pxの中でだいたい何文字入るか試してから、文字数で区切ってしまうのはどうでしょうか?
下記では20文字としていますが、これを200pxに収まる文字数にするとか。

javascript

1$(document).ready(function(){ 2 $(".explain_comment").each(function(){ 3 var limit = 20; 4 var comment = $(this).text(); 5 var comment_sub = comment.substring(1,limit); 6 if(comment.length > limit) 7 $(this).text( comment_sub+"..." ); 8 }); 9});

投稿2016/01/22 14:18

jinco

総合スコア432

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_43

2016/01/24 17:13

jincoさん 回答していただきどうもありがとうございます! これを参考に、文字数で区切ってやってみました! ありがとうございました!
guest

0

以前に書いたものの焼き直しなので変なところもあると思いますが、よろしければ。
あと、すみません、jQuery使ってます。
https://jsfiddle.net/no5yrxc8/

javascript

1$.fn.extend({ 2 ellipsize: function(arg) {this.each( function(){ 3 4 var target = $(this); 5 var _max_rows = parseInt(arg); 6 7 8 //measure line-height & text-width 9 target.css({ 10 'max-width': 'inherit', 11 'max-height': 'inherit', 12 'min-height': 'inherit', 13 'width': 'auto', 14 'height': 'auto', 15 'overflow': 'visible', 16 'white-space': 'nowrap', 17 'position': 'absolute' 18 }) 19 .children('br').hide(); 20 var line_height = target.height(); 21 var stretched_width = target.width() 22 target.css({ 23 'max-width': '', 24 'max-height': '', 25 'min-height': '', 26 'width': '', 27 'height': '', 28 'overflow': 'hidden', 29 'white-space': '', 30 'position': '' 31 }) 32 .children('br').show(); 33 34 var _max_height = (_max_rows+.5) * line_height; 35 36 targetText = target.html(); 37 do { 38 targetText = targetText.slice(0, -1); 39 target.html(targetText+'...'); 40 } while ( target.height() > _max_height ) 41 return target; 42 })} 43});

投稿2016/01/22 13:56

Lhankor_Mhy

総合スコア36074

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2016/01/22 13:57

あ、JSFiddleのサンプルは、"exec"ボタンを押してみてください。
think49

2016/01/23 14:03

私の環境(Google Chrome 48.0.2564.82 m)では [exec] ボタンを押したらブラウザが固まりました。
y_43

2016/01/24 17:10

Lhankor_Mhyさん 回答していただきどうもありがとうございます! ぜひ今後の参考にしていただきます!
guest

0

css

1 2.ellipsis { 3 width: 100%; 4 white-space: nowrap; 5 overflow: hidden; 6 text-overflow: ellipsis; 7 -webkit-text-overflow: ellipsis; 8 -o-text-overflow: ellipsis; 9} 10 11 12

width:100% なんで、このCSS は内側のタグに指定する。
外側のタグで幅をきめておく。
overflow: hidden なので、複数行になってしまう文字列は1行で表示されますが、幅固定してるので、内側タグで表示しきれない文字列の5文字くらい手前から...が表示されます。
半角英数と漢字文字では、微妙に ... の位置と大きさが異なります。
外側のタグの幅を広げると ... が消えます。

投稿2016/01/22 01:46

ipadcaron

総合スコア1693

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ipadcaron

2016/01/22 01:49

4行目の末尾だけ、か、、、工夫次第ですね。上記のcss では2 行以上には対応できません。
y_43

2016/01/22 12:54

ipadcaronさん 回答していただきどうもありがとうございます。 そうですね、1行ではなく複数行で省略する場合のやり方ですね。 そうですよね、工夫次第ですよねー。 ただでもその工夫が思いつかないのと、調べてもよくわからなくて困ってるのですー。
guest

0

解答ではないのですが、firefoxにはDeveloper Editionというのがあって開発にはこちらのほうが使い勝手はいいようです。
紹介

投稿2016/01/21 21:43

編集2016/01/21 21:45
cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2016/01/22 11:56

4行と言ってもブラウザの幅を変えれば文字数も変わりますがそれは考えなくてもいいのでしょうか? もしそうなら、表示しようとした文字列が4行に収まらない場合、そこで切って"..."を足せばいいのではないでしょうか? web関連はまったくの初心者なので外してるかも知れませんが・・・
y_43

2016/01/22 12:49

cateyeさん 回答していただきどうもありがとうございます。 Developer Editionというものがあるのですね。今後の参考にさせていただきます。 すみません、書いていなくてわかりにくかったですね。上のhtmlの場合、.explain_boxの幅は例えば200pxなどの特定の幅にし、 その幅の中で4行以内に収まるコメントの場合は、コメント全文を表示し末尾に...は付けず、 逆にその幅の中で4行以降にも続いてしまう場合は4行以降は省略し、4行目の末尾に...を付ける、ということがしたかったのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問