icon
icon

CSSで画像を縦に並べる方法を現役デザイナーが解説【初心者向け】

初心者向けにCSSで画像を縦に並べる方法について解説しています。ここではFlexBoxを利用して縦に要素を並べ、幅を合わせる方法を紹介します。サンプルで指定のしかたと画面での表示を確認しましょう。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

橋本 真理

フリーのWebとgraphicのデザイナー。
Webとか、ロゴ、広告など作る人。たまに珈琲屋やさん。バナナ、ラジオ、アート、音楽、踊る、が好きです。
WebデザインとWordPressコースを担当。

CSSで画像を縦に並べる方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

1時間でできる無料体験!

そもそもCSSの記述方法がわからない場合は、 CSSの書き方について解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、CSSに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

画像を縦に並べる方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

画像はそのままだと横に並ぶ

HTMLの要素は大きく分けて、インライン要素とブロックレベル要素があります。

インライン要素は横に並び、ブロックレベル要素は横には並ばず縦に並んでいきます。

画像を配置する際の<img>は、インライン要素になるので、CSSで何も設定しない場合には横に並んでいきます。

HTML

<img src="image.png" alt="">
<img src="image.png" alt="">
<img src="image.png" alt="">

表示結果

CSSで画像を縦に並べる方法

 

画像にdisplay: block;を適用して縦に並べる

ブロックレベル要素なら縦に並ぶので、<img>をブロックレベル要素にするだけで画像は縦に並びます。

上下や左右の間隔はmarginやpaddingで調整が可能です。

 

HTML

<img src="image.png" alt="">
<img src="image.png" alt="">
<img src="image.png" alt="">

CSS

img{
  display:block;
}
img:first-child{
  margin:0 auto;
}
img:nth-child(2){
  margin-left:3em;
}
img:nth-child(3){
  padding-left:10em;
}

 

表示結果

CSSで画像を縦に並べる方法

上記の例では、以下の3つの方法で、ボックスの表示位置を変えています。

  • 1番目の画像は左右のmarginをautoにして中央に表示
  • 2番目の画像は左に3emのmarginを適用
  • 3番目の画像には左に3emのpaddingを適用

 

[PR] Webデザインで副業する学習方法を動画で公開中

display: flex;で縦に並べる

flexboxレイアウトを使用して、画像を縦に並べることも可能です。

flexboxを使う場合は、縦に並べたい画像を囲む要素(<div>など)を作って、display: flex;を適用します。

さらに、縦並びにする場合は、flex-direction: column;も適用します。

 

HTML

<div class="flexbox">
  <img src="image.png" alt="">
  <img src="image.png" alt="">
  <img src="image.png" alt="">
</div>

CSS

.flexbox{
  display: flex;
  flex-direction: column;
}

表示結果
画像を縦に並べる方法

display:flex;を適用した要素の直下に<img>を配置した場合は、align-itemsプロパティの初期値 stretch が適用されるため、画像の幅が指定されていないと画像が親要素の幅に合わせて伸縮します。

align-itemsプロパティの値でstretch以外を適用すると、画像の幅は親要素の幅に合わせて伸縮しなくなると同時に、整列する位置を指定できます。

 

HTML

<div class="flexbox flexbox-left">
  <p>ボックスを左端に整列</p>
  <img src="image.png" alt="">
  <img src="image.png" alt="">
  <img src="image.png" alt="">
</div>
<div class="flexbox flexbox-center">
  <p>ボックスを中央に整列</p>
  <img src="image.png" alt="">
  <img src="image.png" alt="">
  <img src="image.png" alt="">
</div>
<div class="flexbox flexbox-right">
  <p>ボックスを右端に整列</p>
  <img src="image.png" alt="">
  <img src="image.png" alt="">
  <img src="image.png" alt="">
</div>

CSS

.flexbox{
  display: flex;
  flex-direction: column;
}
.flexbox-left{
  align-items: flex-start;
  /*左端に整列*/
}

.flexbox-center{
  align-items: flex-center;
  /*中央に整列*/
}
.flexbox-right{
   align-items: flex-end;
  /*右端に整列*/
}

表示結果

CSSで画像を縦に並べる方法

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

画像を縦に複数行で並べる方法

flexboxを使い、flex-wrap: wrap;(折り返し) を指定すれば、複数行で折り返しながら表示できます。

親要素のボックスの高さを超えるタイミングで、画像が折り返して表示されます。

HTML

<div class="flexbox flexbox-right">
  <img src="image.png" alt="黄">
  <img src="image.png" alt="黄">
  <img src="image-green.png" alt="緑">
  <img src="image.png" alt="黄">
  <img src="image.png" alt="黄">
  <img src="image-green.png" alt="緑">
  <img src="image.png" alt="黄">
  <img src="image.png" alt="黄">
</div>

CSS

.flexbox{
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-items: flex-start;
  height:500px;
}

表示結果

画像を縦に並べる方法

横ではなく、縦に並んでいることがわかりやすいように、3の倍数番目の画像は緑色を配置しました。

左上から縦に、親要素の高さを超えるタイミングで折り返して表示されているのが分かります。

flexboxを使うと、縦並びでもいろいろな並べ方をすることが可能です。

flexboxについては、レイアウトの調整に役立つ!CSSのflexboxの使い方【初心者向け】も参考にしてみてください。

 

画像の縦横比を崩さないために

画像を使用する場合には、縦横比を維持することが重要です。

特に、flexboxで、flexアイテムに直接画像を配置する場合は、画像の縦横比崩れに注意が必要です。

flexアイテムは高さ、または幅を合わせる性質があるので、レイアウトによっては画像の縦横比が崩れる場合があります。

崩さないようにする方法はレイアウトにもよりますが、画像のサイズの指定、align-itemsの適用、imgにheight:auto;を適用、<img>を別のタグで囲むなどの方法があります。

作りたいレイアウトによって最適な方法は異なりますので、いろんな方法を試して検証してみてください。

参考:
CSSで画像の縦横比を維持したまま拡大する方法を現役エンジニアが解説【初心者向け】
CSSでobject-fitを使った画像トリミング方法を現役エンジニアが解説【初心者向け】

 

1時間でできる無料体験!

執筆してくれたメンター

橋本真理

Web/グラフィックのデザイナー

会社・店舗等のWebサイトのデザインから制作一式、ロゴや各種広告などのグラフィックデザインを主に活動しています。テックアカデミーではWebデザインコース・WordPressコースを担当しています。

ラジオとバナナが好き。

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

CSSを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

CSSを学習していて、このように思ったことはありませんか?

テックアカデミーのWebデザインコースでは、第一線で活躍する「プロのWebデザイナー」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたWebデザイナーの手厚いサポートを受けながら、オリジナルのWebサイト制作を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役Webデザイナーから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する