新レスポンシブで、画面幅に合わせて長い文章を切り落とす方法

・やりたいこと
新レスポンシブにおいて、おそらく旧レスポンシブにおけるcut off content if the element is not tall enoughをやりたいと考えています。
例えば、12345678910111213141516という文章が画面に入りきらなくなったときに、12345678…のように後ろを切り捨てたいです。

・現状
bubble forumを見ると、max heightを設定すれば良いと書かれていたので、max heightをテキスト一行分の高さにして試してみました。
すると、bubble上のレスポンシブ画面では画面に入りきらない部分が上手く切り落とされていたのですが、プレビュー画面で実際に横幅を変えてみるとそのテキスト全体が消えてしまいました。
他のアプリで試してみても同じ現象が起きたため、他の要素の影響ではないと思われます。

・質問したいこと
新レスポンシブで画面幅に合わせて長い文章の後ろの部分を切り落とす方法が知りたいです。
よろしくお願いいたしますm(__)m

koyakeiさんの望む動きになるかわかりませんが、テキストに表示文字数制限をかけてみてはどうでしょうか。
参考リンク貼っておきます。

「いいね!」 3

ご回答ありがとうございます。
私も最初そう思いましたが、conditionがいくつか必要なのと、何文字にするかの計算が必要なのとでなかなか大変ですよね…
全角と半角で必要なスペースも変わりますし…
難しい…笑

「いいね!」 1

Cut off content if the element is not tall enoughは、日本語環境ではうまく動きません。
Contidionalの操作でも、おっしゃるように全角・半角でも幅が変わるので、レスポンシブに最適とは言えません。

ので、カットしたいエレメントに以下のCSSを適用させてください。

white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;

この時、高さを固定にするか、Fit width to contentにチェックを入れるなどして、親要素・子要素の関係性を見つつCSSが適用されるよううまく調整してみてください。

「いいね!」 4

本当にありがとうございます!
この問題に気づけてよかったです。
助かりました。

「いいね!」 2

@Aki_Sydney
すみません。色々調べつつ頑張ってみたのですが、勉強不足でCSSを適用させることができず…
下のエディタではどこを修正すべきか教えていただきたいです。
どうかお願いしますm(__)m

CSSはちゃんと当たっていますが、一部適用されていない物があるので、
以下のように!importantを付けて最優先事項にしてください。

あと、textエレメントにMinimum widthが付いているので、536pxより縮みません。
この状況では、Minimum widthは0でいいと思います。

「いいね!」 3

本当に何度もありがとうございます!
無事上手くいきました。

@Aki_Sydney
すみません再び質問失礼します。
二行目や三行目まで表示させて、それ以降は切り落とすといったことをしようとした場合にこのCSSでは一行目しか表示されず…
調べてみたところ下のようなCSSでうまくいきそうな気がしたのですが(!importantを一応つけてます)、ドットはついても指定した行数以上表示されてしまいました。
中途半端なheightだと文字が切れて表示されます。
すみません何処かおかしいところがあれば教えていただきたいですm(__)m
お願いします。

display: -webkit-box !important;
-webkit-box-orient: vertical !important;
-webkit-line-clamp: 3 !important;
overflow: hidden !important;

エディタ

「いいね!」 1

きちんと問題なく、3行目で…になっています。
4行目以降が表示されてしまうのは、エレメントのHeightが高すぎるからです。
しっかり3行分に必要な高さを計算して、それをFixed-heightあるいはMax-heightに設定すればOkです。

まず1行分に必要な高さですが、これはFont-size×Line-spacingで求めます。
今回の場合、Font-sizeが16px、Line-spacingが1.4なので、1行に必要な高さは22.4px。
×3で、3行分に必要な高さは67.2px。
小数点は入力できないので、切り上げて68pxをHeightに設定しましょう。

今4行目がはみ出しているのは、Fixed-heightが80pxに設定されているため、
80px - 67.2px = 12.8px が余分に表示されてしまっています。

image

「いいね!」 3

すごく丁寧に説明してくださり本当にありがとうございます!
とても助かりました!

「いいね!」 2