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

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

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

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

CSS

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

Q&A

解決済

2回答

3562閲覧

display: flexで横並びにすると左に寄ってしまう。

chaco0o0o

総合スコア2

HTML5

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

CSS

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

0グッド

0クリップ

投稿2021/08/29 21:08

display: flaxで横並びにした画像が左に寄ってしまうので、左右の隙間を空けつつ、等間隔で並べたいです。

html

1 <div class="gallery"> 2 <div id="about" class="about_gallery"> 3 <h1>【 gallery 】</h1> 4 </div> 5 <ul> 6 <li><img src="images/イラスト9.png" alt="小日向イカちゃん"> 7 <h1>小日向イカちゃん</h1></li> 8 <li><img src="images/aka.jpg" alt="ボールペン画"> 9 <h1>赤の女の子</h1></li> 10 <li><img src="images/魔法イカちゃん.png" alt="魔法イカちゃん"> 11 <h1>魔法イカちゃん</h1></li> 12 </ul> 13 </div>

css

1#main,.gallery { 2 background-color: #151526; 3} 4.gallery ul { 5 position: relative; 6 justify-content: center; 7 display: flex; 8 width: 100%; 9 padding-top: 120px; 10} 11.gallery li { 12 display: block; 13 width: 100%; 14 font-size: 2vw; 15 color:rgb(255, 255, 255); 16} 17.gallery img { 18 object-fit: contain; 19}

ブラウザでの表示は以下のような感じで、左に寄っています。
イメージ説明

marginやpaddingでの設定は試しましたが、無効化されています。
お力添えお願い致します。

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

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

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

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

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

guest

回答2

0

flex で横並びにしているなら justify-content: space-around; を加えてあげればよいかと思います。

投稿2021/08/30 00:58

agumon

総合スコア271

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

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

chaco0o0o

2021/08/30 07:35

加えてみましたが、変わらずでした・・・。
agumon

2021/08/30 10:07

li に width: 100%; がかかっているのでそれ外したらどうでしょうか。
chaco0o0o

2021/08/30 10:12

3枚目(一番右)の画像が小さく表示されてしまいます。
agumon

2021/08/30 10:17

質問に対しての期待された動作は満たしているかと思いますのであとは調整次第だと思います。
guest

0

ベストアンサー

左に寄っているのは、li要素の内容(画像と見出し)ですから、text-align: center;を付けてやればいいのでは。
修正分: width: 100%;を削除。h1要素の見出しより画像の幅が広ければ、これでli要素の幅は画像とほぼ一致するようになる。

diff

1.gallery li { 2 display: block; 3- width: 100%; 4 font-size: 2vw; 5 color: rgb(255, 255, 255); 6+ text-align: center; 7+ /* border: red solid 1px; */ /* 確認用 */ 8} 9

もし、質問文に書かれていない部分でマージンやパディングのリセットを行なっていないのであれば、ul要素の左側のパディングも0にしてください。
修正分: li要素の横幅を狭くしたことで生まれる隙間を、justify-content: space-evenly;で均等に配置。これで、左端、中央左、中央右、右端の4箇所の隙間がすべて同じ幅になる。もし、中央左と中央右の隙間を左右端の隙間の2倍取りたいのであれば、値をspace-aroundに変更すること。

diff

1.gallery ul { 2 position: relative; 3 justify-content: center; 4 display: flex; 5 width: 100%; 6 padding-top: 120px; 7+ padding-left: 0; 8+ justify-content: space-evenly; 9}

さらに追加:
画像の実サイズが「2200x1900」「1472x1664」「1000x1100」と、画面サイズに対してかなり大きいことが判明したので、実サイズによらず画面の幅に対して一定の割合で表示するようにする。

diff

1.gallery img { 2- object-fit: contain; 3+ width: 25vw; 4}

サンプル画像

投稿2021/08/29 22:42

編集2021/08/31 05:52
Daregada

総合スコア11990

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

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

chaco0o0o

2021/08/30 07:40

ありがとうございます!加えてみたところ、一番左に余白ができました! ただ、左の余白に比べて右の余白が大きいです。 原因としては右の画像が縦長の為余白が多いように見えてしまうのだと思いますが、どのように設定すれば改善されるでしょうか?
Daregada

2021/08/30 07:47

回答に「確認用」とコメントが書いてある「border: red solid 1px;」の前後の「/*」と「*/」を削除すると、それぞれのli要素に赤い枠線が表示されます。 さらに、「.gallery ul」の{}内にも「border: green solid 1px;」を追加すると、ul要素に緑の枠線が表示されます。 その上で、その「右の余白」がどの部分にあるのか教えてください。 もし、緑の枠線の外側にあるのなら、 .gallery { border: yellow solid 1px; } をCSSに追加して、「右の余白」が黄色い枠線の内か外のどちらにあるのかも教えてください。
chaco0o0o

2021/08/30 08:43

赤枠は緑枠の内側にあり、赤枠の内側に余白があります。赤枠が3つとも正方形なのに対して1枚目の画像は横長で2、3枚目は縦長なのでそこで余白の差が出来ている感じです。 伝え方下手で申し訳ないです・・・。
Daregada

2021/08/30 11:23

質問に含まれる画像は、実際に使っている画像ではないってことですよね? 3つの画像のおおよそのサイズを提示してください。 そして、あなたが実際にやりたいことは「li要素(赤い枠)を同じ幅にする」ことではなく、「画像の周囲の隙間をすべて同じ幅にする」ということでいいのかな?
chaco0o0o

2021/08/31 05:26

質問文にあるコードは全て実際に使っているものです。画像も使っています。 画像のサイズは左から2200×1900、1472×1664、1000×1100pxです。 その解釈で間違いないです。
chaco0o0o

2021/08/31 15:57

ありがとうございます!正直ここまできっちりと理想の回答が出てくるとは思わなかったので感激しております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問