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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Q&A

解決済

2回答

575閲覧

3つのカードの高さを揃えるため、時間の上の余白を調節したい。

spn

総合スコア37

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

1グッド

1クリップ

投稿2023/04/07 06:51

実現したいこと

1.下記写真のように、3つのカードの高さを揃えるために、日付の上に余白をつけたい。
2. 写真のアスペクト比を高さ260/横389で維持したい。

↓見本(2枚)
イメージ説明
イメージ説明

前提

1.日付にmargin-top: auto;を使用したが、効かなかった。
2. 写真のアスペクト比を維持するために.blog-card_thumb &:beforeに
padding-top :calc((260/389)*100%)で設定したが、
写真の上に余白ができてしまった。

発生している問題・エラーメッセージ

現状は以下の写真です。
初歩的でお恥ずかしいですが、宜しくお願い致します。

イメージ説明

該当のソースコード

SASS

1/* blog 2------------------------------------------------------ */ 3.blog-card { 4 box-shadow: 0px 3px 6px #00000029; 5 display: flex; 6 flex-direction: column; 7 margin-bottom: 20px; 8 background: #fff; 9} 10.blog-card_thumb { 11 position: relative; 12 overflow: hidden; 13 order: -1; 14 &:before { 15 content: ""; 16 display: block; 17 } 18 >img { 19 position: absolute; 20 left: 0; 21 top: 0; 22 width: 100%; 23 height: 100%; 24 max-width: none; 25 object-fit: cover; 26 transition: 0.5s; 27 } 28} 29.card-body { 30 padding: 15px 30px 15px 15px; 31 span{ 32 margin-top: auto; 33 font-size: clamp(14px,2.8vw,16px); 34 text-align: right; 35 } 36} 37.card-body_text { 38 font-size: clamp(14px,2.8vw,18px); 39 line-height: 1.5; 40 text-align: left; 41} 42/* blog--col2 43------------------------------------------------------ */ 44.blog-cards { 45 display: flex; 46 flex-direction: column; 47 margin-bottom: -20px; 48} 49@include small { 50 .cards--col3 { 51 flex-direction: row; 52 justify-content: space-between; 53 flex-wrap: wrap; 54 } 55 .blog-card { 56 width: calc((100% - 30px)/2); 57 } 58 59} 60 61/* blog--col3 62------------------------------------------------------ */ 63 64@include medium { 65 .blog-card { 66 width: calc((100% - 60px)/3); 67 } 68}

HTML

1<section class="blog _bg"> 2 <div class="section-inner"> 3 <h2 class="section-ttl"> 4 <span class="section-ttl_main">ブログ</span><!-- /.section-ttl_main --> 5 <span class="section-ttl_sub">Blog</span><!-- /.section-ttl_sub --> 6 </h2><!-- /.section-ttl --> 7 <div class="blog-cards cards--col3"> 8 <div class="blog-card"> 9 <div class="card-body"> 10 <p class="card-body_text">サイトをリニューアルオープンしました。</p><!-- /.card-body_text --> 11 <span><time datetime="2020.01.23">2020-01-23</time></span><!-- /.datetime --> 12 </div><!-- /.card-body --> 13 <div class="blog-card_thumb"> 14 <figure><img src="img/austin-distel-wawEfYdpkag-unsplash.png" alt=""></figure> 15 </div><!-- /.blog-card_thumb --> 16 </div><!-- /.blog-card --> 17 <div class="blog-card"> 18 <div class="card-body"> 19 <p class="card-body_text">WebサイトでSEO内部施策に適したコー ディングでどれぐらいサイトが早くなるの か検証してみました</p> 20 <!-- /.card-body_text --> 21 <span><time datetime="2020.01.24">2020-01-24</time></span><!-- /.datetime --> 22 </div><!-- /.card-body --> 23 <div class="blog-card_thumb"> 24 <figure><img src="img/dylan-gillis-KdeqA3aTnBY-unsplash.png" alt=""></figure> 25 </div><!-- /.blog-card_thumb --> 26 </div><!-- /.blog-card --> 27 <div class="blog-card"> 28 <div class="card-body"> 29 <p class="card-body_text">ユアコーディングではデザイナーの方を 広く募集しています。</p><!-- /.card-body_text --> 30 <span><time datetime="2020.01.25">2020-01-25</time></span><!-- /.datetime --> 31 </div><!-- /.card-body --> 32 <div class="blog-card_thumb"> 33 <figure><img src="img/brooke-cagle-g1Kr4Ozfoac-unsplash.png" alt=""></figure> 34 </div><!-- /.blog-card_thumb --> 35 </div><!-- /.blog-card --> 36 </div><!-- /.blog-cards cards--col3 --> 37 </div><!-- /.blog-inner --> 38 39 </section><!-- /.blog -->

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

shinoharat👍を押しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

提示のコードでは動作しないので、一部修正していますが、ご希望のことは下記のようなものでしょうか。

CodePentサンプル

上記のサンプルについての解説

1.下記写真のように、3つのカードの高さを揃えるために、日付の上に余白をつけたい。

日付をspanで囲んでいますが、spanではインライン要素のためmargin、text-alignなどは効きません。
ここは、spanではなくdivなどのブロック要素にするか、display: block; でブロックタイプに変換すべきでしょう。
そのうえで、親要素である.card-bodyに下記のように設定すればいいでしょう。

css

1.card-body { 2 flex-grow: 1; /* 高さを拡張する */ 3 display: flex; 4 flex-direction: column; /* 垂直方向に並べる */ 5 justify-content: space-between; /* 両端揃え */

2.写真のアスペクト比を高さ260/横389で維持したい。

aspect-ratio で設定できます。

aspect-ratio - CSS: カスケーディングスタイルシート | MDN

投稿2023/04/08 01:28

hatena19

総合スコア33715

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

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

spn

2023/04/08 07:29

お陰様でうまいこといきました。 ご丁寧にありがとうございました。
guest

0

とりあえず1番目の課題だけ回答します🙏

1.下記写真のように、3つのカードの高さを揃えるために、日付の上に余白をつけたい。

.card-body の高さを100%にして、日付の span を absolute で右下に指定すればうまく行くと思います。

diff

1 2 .card-body { 3 padding: 15px 30px 15px 15px; 4+ height: 100%; 5+ position: relative; 6 span{ 7- margin-top: auto; 8 font-size: clamp(14px,2.8vw,16px); 9- text-align: right; 10+ display: inline-block; 11+ position: absolute; 12+ right: 1.8em; 13+ bottom: .5em; 14 } 15 } 16

投稿2023/04/07 08:17

編集2023/04/07 08:23
shinoharat

総合スコア1676

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

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

spn

2023/04/08 07:29

わかりやすく丁寧にありがとうございました。 一番早く回答していただいて助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問