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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Q&A

解決済

2回答

209閲覧

内部divを右寄せしつつ、全体の幅を揃えたい

no1knows

総合スコア3365

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

0グッド

0クリップ

投稿2020/03/11 06:23

編集2020/03/11 06:57

下記の名前・部署の幅を青色の線のように揃えながら右寄せしたいです。

モダンブラウザに対応できればよいので、flexboxで実現しようとしたのですが長さを固定にする以外、うまく実装できませんでした。

jQueryで計算せず、CSSだけで実装することは可能でしょうか?

イメージ説明

html

1<article> 2 <div class="content">たひてぞぽぞばれぐてひろどにらぼもぎゎぃそんつぢゅぴぢにどくぁぶはぇきぼねおひろ</div> 3 <div class="flex"> 4 5 <div class="flex-bottom flex-calc"> 6 <p>八木 歓菜</p> 7 <p class="gray">部署 4</p> 8 </div> 9 10 <div class="flex-bottom"> 11 <p>ここは固定長のアイコンが入ります。</p> 12 </div> 13 </div> 14</article> 15 16<article> 17 <div class="content">ぷゎょゎぼむべぁうくれげゑうぃちぽびぽじふすらざまぴせぴろとぜげゎぜこをあこでべ</div> 18 <div class="flex"> 19 20 <div class="flex-bottom flex-calc"> 21 <p>安達 和樹</p> 22 <p class="gray">部署 4</p> 23 </div> 24 25 <div class="flex-bottom"> 26 <p>ここは固定長のアイコンが入ります。</p> 27 </div> 28 </div> 29</article> 30 31<article> 32 <div class="content">ぅひみぺつぇげでいぎみがちぢかひげずふをけぬそへられべゑやまぇげかぷい</div> 33 <div class="flex"> 34 35 <div class="flex-bottom flex-calc"> 36 <p>泉 恵華</p> 37 <p class="gray">部署 2</p> 38 </div> 39 40 <div class="flex-bottom"> 41 <p>ここは固定長のアイコンが入ります。</p> 42 </div> 43 44 </div> 45</article>

*Railsで構築しており、人名などはDBから取得します。
*人名・部署名などはGemを利用しランダムで作成しております。

CSS

1 2article,textarea { 3 text-align: left; 4 padding: 15px 25px 15px 15px; 5 border-radius: 10px; 6 margin: 0 auto 15px auto; 7 width: 95%; 8 box-shadow: 0 5px 10px rgba(0,0,0,0.3); 9 background: #fff; 10 min-height: 100px; 11 border: 1px solid #d9d9d9 !important; 12 13 .field_with_errors &{ 14 border: 1px solid #ff2667 !important; 15 box-shadow: 0 5px 10px rgba(255,38,103,0.3); 16 } 17 p { 18 margin: 5px 0; 19 font-size: 0.875rem; 20 } 21 22 .content { 23 margin-bottom: 10px; 24 } 25 26 .flex { 27 display: -webkit-box; 28 display: -ms-flexbox; 29 display: flex; 30 -webkit-box-pack: end; 31 -ms-flex-pack: end; 32 justify-content: flex-end; 33 34 .flex-calc { 35 margin-right: 30px; 36 } 37 38 .flex-bottom { 39 -ms-grid-column-align: end; 40 align-self: flex-end; 41 } 42 } 43 44 .gray { 45 color: #757575; 46 } 47} 48コード

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

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

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

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

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

kei344

2020/03/11 06:26

書かれている状況が再現するコード(HTML/CSS/)を質問文に追記されたほうが回答を得やすいと思います。
yambejp

2020/03/11 06:27 編集

ソースを提示ください inner は中身が無いのでしょうか? innerの幅は何を前提にきめるのですか?
no1knows

2020/03/11 06:52

失礼しました。修正と追記をさせていただきました。
hatena19

2020/03/11 07:11

画像は理想図ではなく、名前・部署 を青色の線に揃えたいということでしょうか。 で幅は固定ではなく、ランダムに抽出された名前・部署名の最大長に合わせるということでしょうか。
no1knows

2020/03/11 07:26

hatena19さん、おっしゃるとおりです。
guest

回答2

0

Subgrid を使うことでテーブルレイアウトのようにデザインすることができます。

CSS

1.container { 2 display: grid; 3 grid-template-columns: 1fr minmax(100px, max-content) 120px; 4} 5 6.container article { 7 display: grid; 8 grid-template-columns: subgrid; 9 grid-column: 1 / -1; 10} 11 12.container article > * { 13 grid-column: 1 / -1; 14} 15 16.container article .flex { 17 display: contents; 18} 19 20.container article .flex > *:first-child { 21 grid-column: -3 / -2; 22} 23 24.container article .flex > *:last-child { 25 grid-column: -2 / -1; 26}

https://developer.mozilla.org/ja/docs/Web/CSS/CSS_Grid_Layout/Subgrid
Firefox のみ。

入れ子が多いと複雑になるので、とくにこだわりがなければ決め打ちでもいいのではないかと思います。

投稿2020/03/11 08:39

x_x

総合スコア13749

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

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

no1knows

2020/03/12 02:31

ありがとうございます。 Firefox以外もこのような実装ができるようになるとシンプルで美しいですね!
guest

0

ベストアンサー

Flexboxでは無理っぽい。

CSS Grid の出番かな。

とりあえず、下記のような感じ。

html

1<main> 2 3 <div class="box"></div> 4 <div class="content">たひてぞぽぞばれぐてひろどにらぼもぎゎぃそんつぢゅぴぢにどくぁぶはぇきぼねおひろ</div> 5 <div class="box-bottom"> 6 <p>八木 歓菜</p> 7 <p class="gray">部署 4</p> 8 </div> 9 <div class="icon-bottom"> 10 <img src="http://placehold.jp/80x80.png"> 11 </div> 12 13 <div class="box2"></div> 14 <div class="content2">ぷゎょゎぼむべぁうくれげゑうぃちぽびぽじふすらざまぴせぴろとぜげゎぜこをあこでべ</div> 15 <div class="box-bottom2"> 16 <p>安達 和樹</p> 17 <p class="gray">部署 4</p> 18 </div> 19 <div class="icon-bottom2"> 20 <img src="http://placehold.jp/80x80.png"> 21 </div> 22 23 <div class="box3"></div> 24 <div class="content3">ぅひみぺつぇげでいぎみがちぢかひげずふをけぬそへられべゑやまぇげかぷい</div> 25 <div class="box-bottom3"> 26 <p>泉 恵華</p> 27 <p class="gray">部署 2</p> 28 </div> 29 <div class="icon-bottom3"> 30 <img src="http://placehold.jp/80x80.png"> 31 </div> 32 33</main>

css

1main { 2 display: grid; 3 grid-template-columns: 1fr max-content max-content; 4 grid-template-rows: auto auto auto auto auto auto; 5 grid-gap: 5px; 6} 7 8.content { 9 padding: 15px 25px 15px 15px; 10 grid-column: 1 / 4; 11 grid-row: 1 / 2; 12} 13 14.box-bottom { 15 grid-column: 2 / 3; 16 grid-row: 2 / 3; 17} 18.icon-bottom { 19 grid-column: 3 / 4; 20 grid-row: 2 / 3; 21} 22 23.box { 24 grid-column: 1 / 4; 25 grid-row: 1 / 3; 26 box-shadow: 0 5px 10px rgba(0,0,0,0.3); 27 border-radius: 10px; 28} 29 30.content2 { 31 padding: 15px 25px 15px 15px; 32 grid-column: 1 / 4; 33 grid-row: 3 / 4; 34} 35 36.box-bottom2 { 37 grid-column: 2 / 3; 38 grid-row: 4 / 5; 39} 40.icon-bottom2 { 41 grid-column: 3 / 4; 42 grid-row: 4 / 5; 43} 44 45.box2 { 46 grid-column: 1 / 4; 47 grid-row: 3 / 5; 48 box-shadow: 0 5px 10px rgba(0,0,0,0.3); 49 border-radius: 10px; 50} 51 52.content3 { 53 padding: 15px 25px 15px 15px; 54 grid-column: 1 / 4; 55 grid-row: 5 / 6; 56} 57 58.box-bottom3 { 59 grid-column: 2 / 3; 60 grid-row: 6 / 7; 61} 62.icon-bottom3 { 63 grid-column: 3 / 4; 64 grid-row: 6 / 7; 65} 66 67.box3 { 68 grid-column: 1 / 4; 69 grid-row: 5 / 7; 70 box-shadow: 0 5px 10px rgba(0,0,0,0.3); 71 border-radius: 10px; 72}

Codepenサンプル

時間がないので余白とか、冗長な部分はそのままなので、これをたたき台にしてみてください。

投稿2020/03/11 06:53

編集2020/03/11 10:27
hatena19

総合スコア33699

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

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

no1knows

2020/03/11 06:55

ご回答いただきありがとうございます。 質問を追記というか大幅に修正させていただきました。 画像まで貼っていただき本当に申し訳ありません。。。
no1knows

2020/03/12 02:39

ありがとうございます。 理解に時間がかかったのですが、HTML全体をテーブルと見立てていたんですね。 そして<div class="box"></div>で1つのまとまりを表現するという流れですね。 SCSSの@forを利用すればシンプルになりそうなのでこの案を採用させていただきます。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問