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

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

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

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

HTML5

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

Q&A

解決済

2回答

3274閲覧

flexboxで横並びに配置した画像の余白をなくし親要素の幅いっぱいに画像のみで広げたい

girlstalk

総合スコア12

CSS3

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

HTML5

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

0グッド

0クリップ

投稿2022/03/04 15:49

HTMLとCSSの基礎学習を終え簡単なHPを制作しています。
記事を検索してもわからないため、質問をさせて頂きます。

質問タイトルに記載の通り、
flexboxで横並びにした画像4枚を親要素の幅いっぱいに同じ横幅サイズで
かつ、余白無しで配置したいのですが、
①画像間の余白を無くす事ができない。
②親の横幅サイズにならない。

上記二つを解決したいですが、どのようにコーディングすれば良いでしょうか?
ご教示いただければ幸いです。
(※コーディングが素人で見にくいこと、画像の余白を消そうとCSSには無駄な記述が
多いかもしれません m(_ _)m)

<HTML>

<div class="main"> <div class="space"> <p>---- space</p> <h2>大人が愉しめる、癒しの空間</h2> <p>鹿児島・天文館ラウンジ「璃音」は、カウンター席とボックス席があるゆったりとくつろげる空間のお店です。<br> 接客経験豊富なカウンターレディーが、大切なお客様ひとりひとりの「大切な夜」に丁寧かつ楽しくお付き合いさせていただきます。 </p> <p>落ち着いて会話を楽しみたいときやお一人様のご利用にも、ぜひラウンジ「璃音」をご利用ください。みなさまのお越しを心より お待ちしております。 </p> </div> </div>   <div class="picture"> <ul> <li><img src="img/image-テーブル.jpeg" alt="テーブル席"></li> </ul> <ul> <li><img src="img/image-ボトル.jpeg" alt="ボトル"></li> </ul> <ul> <li><img src="img/image-入口.jpeg" alt="入口"></li> </ul> <ul> <li><img src="img/image-看板.jpeg" alt="看板"></li> </ul> </div>

<CSS>

.picture { display: flex; width: 600px; align-items: center; justify-content: center; text-align: center; margin: 0; padding: 0; flex-wrap: nowrap; } .picture ul li { margin: 0; padding: 0; gap: 0; } .picture ul li img { align-items: center; height: 150px; object-fit: cover; display: block; } .picture ul { width: calc(100% / 4); } .picture ul + li { margin-left: 0; }

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

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

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

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

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

guest

回答2

0

ulをFlex要素の親としてdisplay: flex;を指定します。
その子要素liがFlex要素となります。

Flex要素をどう伸縮させるかは、各要素のflexプロパティで指定します。
そしてそのliの幅の100%を、子要素imgの幅として指定します。

CSS

1.picture { 2 width: 600px; 3 margin: 0; 4 padding: 0; 5} 6 7.picture ul { 8 display: flex; 9 flex-wrap: nowrap; 10 margin: 0; 11 padding: 0; 12 list-style: none; 13} 14 15.picture ul li { 16 flex: 1 1 auto; 17} 18 19.picture ul li img { 20 display: block; 21 width: 100%; 22}

HTML

1   <div class="picture"> 2 <ul> 3 <li><img src="img/image-テーブル.jpeg" alt="テーブル席"></li> 4 <li><img src="img/image-ボトル.jpeg" alt="ボトル"></li> 5 <li><img src="img/image-入口.jpeg" alt="入口"></li> 6 <li><img src="img/image-看板.jpeg" alt="看板"></li> 7 </ul> 8 </div>

投稿2022/03/04 16:35

itagagaki

総合スコア8402

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

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

girlstalk

2022/03/04 18:21

すごく分かりやすいご回答ありがとうございます!! また、早急なご対応をいただき大変感謝いたします m(_ _)m
guest

0

ベストアンサー

まず、HTMLですが、リスト(ul)内に要素(li)が一つ、その中に画像が入ってますが、リストは本来複数の要素をグループ化するものですので、リスト内に要素が一つというのは違和感があります。
4つの画像を一つのグループとして扱いたいのなら、ul一つにしてその中にli要素を4つ入れるという設計になると思います。

上記の点を考慮すると下記のようなHTMLになります。

html

1<div class="picture"> 2 <ul> 3 <li><img src="img/image-テーブル.jpeg" alt="テーブル席"></li> 4 <li><img src="img/image-ボトル.jpeg" alt="ボトル"></li> 5 <li><img src="img/image-入口.jpeg" alt="入口"></li> 6 <li><img src="img/image-看板.jpeg" alt="看板"></li> 7 </ul> 8</div>

cssは下記でいいでしょう。

css

1.picture { 2 max-width: 600px; 3} 4 5.picture ul { 6 display: flex; 7 flex-wrap: nowrap; 8 margin: 0; 9 padding: 0; 10 list-style: none; 11} 12 13.picture li { 14 width: calc(100% / 4); 15} 16 17.picture li img { 18 width:100%; 19 height: 150px; 20 object-fit: cover; 21}

投稿2022/03/04 16:44

hatena19

総合スコア34362

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

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

girlstalk

2022/03/04 18:25

早急なご対応ありがとうございます!! すぐに腑に落ちました!感謝いたします!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問