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

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

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

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

Q&A

解決済

1回答

2339閲覧

bootstrap card ブートストラップのカードの高さについて

yumaaaa

総合スコア4

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/10/23 16:18

ブートストラップのカードで商品一覧のようなページを作成したいのですが、テキストの文字数によって幅と高さが変わってしまいます。
高さと幅を決め、文字数が多いものについてはtext-overflow: ellips;で...と表示をしていきたいです。
文字数が多いものに合わせるコードは見つけましたが、上記のように表示する方法がわかりません。
通常時
縦長
横長
理想

初歩的な質問ですがお力になっていただきたいです。

コードは以下に添付しております。
aws cloud9

html

<!doctype html> <html lang="ja">
<head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="7.css"> <title>college/company</title>
</head> <div class="row row-cols-1 row-cols-md-3"> <div class="col mb-4"> <div class="card h-100"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">カードのタイトル</h5> <p class="card-text">これは、。</p> </div> </div> </div> <div class="col mb-4"> <div class="card h-100"> <img src="..." class="card-img-top" alt="..."> <div class="card-body"> <h5 class="card-title">カードのタイトル</h5> <p class="card-text">これは短いカードです。</p> </div> </div> </div> <div class="col mb-4"> <div class="card h-100"> <img src="..." class="card-img-top" alt="..."> <div class="card-body">

css
@charset "UTF-8";

.row row-cols-1 row-cols-md-3 {
text-overflow: ellipsis;
}

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

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

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

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

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

Lhankor_Mhy

2020/10/24 01:48

> text-overflow プロパティは、インラインの進行方向にブロックコンテナー要素をはみ出す内容にのみ作用します (例えば、ボックスの下をあふれるテキストには作用しません)。 https://developer.mozilla.org/ja/docs/Web/CSS/text-overflow とのこと、垂直方向には効かないと思いますので、CSS では難しいです。 JavaScriptなど別の方法を考えた方がいいのでは。
yumaaaa

2020/10/24 02:23

回答ありがとうございます。 JavaScriptは全くしたことがないのですが、この場合JavaScriptのどの方法で考えて進めていけばよろしいでしょうか。よろしければ教えて頂きたいです、、、
m.ts10806

2020/10/24 02:27

質問は編集できますので。
Lhankor_Mhy

2020/10/24 02:31

いや、失礼しました。 ブラウザ対応が気になりますが、CSSで他の方法がありました。
guest

回答1

0

ベストアンサー

非標準的な機能ですが、-webkit-line-clamp を使うという手もあるかと思います。
一応、Firefox と Chrome で動作確認しました。

サンプル

css

1.card-text{ 2 display: -webkit-box; 3 -webkit-box-orient: vertical; 4 -webkit-line-clamp: 1; 5 overflow: hidden; 6}

参考:
-webkit-line-clamp - CSS: カスケーディングスタイルシート | MDN

投稿2020/10/24 02:39

Lhankor_Mhy

総合スコア36960

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

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

yumaaaa

2020/10/24 09:47

ご回答ありがとうございます。 早速参考にして進めていきます。
yumaaaa

2020/10/24 09:56

aws cloud9でサンプルで頂いたものをコピペしてみましたが横幅が大きくなってしまうので、 -webkit-line-clampを使う上で幅の設定なども可能でしょうか?
yumaaaa

2020/10/24 09:59

何度も申し訳ございません。 参考サイトを見ながらで無事解決できました! ご丁寧に教えて頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問