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

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

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

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

CSS

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

Q&A

解決済

2回答

819閲覧

flexで横並びになったリストの中で、ボタンのみリスト内の最下部に配置したい。

erajera

総合スコア22

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/04/02 03:46

前提・実現したいこと

CodeSandBox
display: flexで縦2列横2列になったリストがあります。
リストの中には内容量が可変するテキストとボタンがあります。

ボタンのみ各リスト内での最下部に配置したいです。
ボタンを各リストの最下部に配置することで、隣同士のボタンの位置を揃えたいです。
テキスト量は可変するため、リストにheightを手動で設定したり、buttonposition: absoluteで浮かせたりはしたくないです。

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

テキストの直下にボタンが配置されているため、ボタンの位置が隣のリストと揃っていません。

該当のソースコード

html

1 <ul> 2 <li> 3 <dl> 4 <dt>dtaiueo</dt> 5 <dd> 6 <p>ddaiueo</p> 7 <button>button</button> 8 </dd> 9 </dl> 10 </li> 11 <li> 12 <dl> 13 <dt>dtaiueo</dt> 14 <dd> 15 <p>ddaiueo</p> 16 <p>ddaiueo</p> 17 <p>ddaiueo</p> 18 <p>ddaiueo</p> 19 <p>ddaiueo</p> 20 <button>button</button> 21 </dd> 22 </dl> 23 </li> 24 <li> 25 <dl> 26 <dt>dtaiueo</dt> 27 <dd> 28 <p>ddaiueo</p> 29 <p>ddaiueo</p> 30 <p>ddaiueo</p> 31 <button>button</button> 32 </dd> 33 </dl> 34 </li> 35 <li> 36 <dl> 37 <dt>dtaiueo</dt> 38 <dd> 39 <p>ddaiueo</p> 40 <button>button</button> 41 </dd> 42 </dl> 43 </li> 44 </ul>

css

1* { 2 box-sizing: border-box; 3} 4 5body { 6 margin: 0; 7} 8 9ul { 10 list-style: none; 11 width: 500px; 12 margin: 0 auto; 13 border: 1px solid black; 14 padding: 1em; 15 display: flex; 16 flex-wrap: wrap; 17} 18 19li { 20 margin-bottom: 1em; 21 width: calc(50% - 0.25em); 22} 23 24li:nth-of-type(odd) { 25 margin-right: 0.5em; 26} 27 28dl { 29 height: 100%; 30 margin: 0; 31 padding: 1em; 32 background-color: #ddd; 33} 34 35dt { 36 font-size: 1.1em; 37 font-weight: bold; 38 margin-bottom: auto; 39} 40 41dd { 42 margin: auto 0 0 0; 43 height: 100%; 44} 45 46p { 47 margin: 0; 48}

試したこと

buttonに下記のスタイルを設定しました。

css

1button { 2 display:block; 3 height: 100%; 4 margin-top: auto; 5}

すると下図のように、ボタンがリストからはみ出してしまいました。
イメージ説明

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

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

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

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

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

Lhankor_Mhy

2021/04/02 03:59

HTMLの変更をするのは構いませんか?
erajera

2021/04/02 04:06

コメントいただきありがとうございます。今後若干HTML構造が変わる可能性があるため、極力は変更しないようにしたいです(とすると当質問も意味をなさなくなるかもですが)。ですが、現状の構造ではどうあっても不可能、という場合であればHTML構造の変更は構いません。
guest

回答2

0

ベストアンサー

これを追加するとどうでしょうか。

css

1dl { 2 display: flex; 3 flex-direction: column; 4} 5 6dd { 7 display: flex; 8 flex-direction: column; 9 align-items: flex-start; 10} 11 12dd > *:nth-last-child(2) { 13 flex-grow: 1; 14}

投稿2021/04/02 04:44

Lhankor_Mhy

総合スコア36158

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

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

erajera

2021/04/02 05:17

できました!ありがとうございました。
guest

0

css

1li { 2 position:relative; 3} 4dd p:nth-last-child(2) { 5 margin-bottom: 10px; 6} 7button{ 8 position:absolute; 9 bottom:0; 10}

投稿2021/04/02 04:27

yambejp

総合スコア115010

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問