ブログ記事や技術文書を書いている時、複数の画像を横に並べて表示したいと思うことがあります。
しかし、標準的なMarkdown記法だけでは横並び表示は難しいのが現状です。
この記事では、初心者にもわかりやすく、画像を横並びにする実用的な方法をご紹介します。
標準Markdownの限界を理解する

通常のMarkdown記法
標準的なMarkdownでは、以下のように画像を表示します:

複数画像を並べる時の問題
複数の画像を連続して書いても、多くの環境では縦に並んでしまいます:



結果:多くの場合、画像は縦に一列に並んで表示されます。
環境による違い
Markdownの表示結果は、使用するプラットフォームによって大きく異なります:
縦並びになりやすい環境:
- GitHub
- はてなブログ
- WordPress(テーマによる)
- 多くの静的サイトジェネレーター
横並びになることがある環境:
- 一部のMarkdownエディター
- 簡易プレビューアー
- カスタムCSSが適用されている環境
HTMLタグを使った基本的な横並び方法

imgタグによる基本的な方法
最も確実で柔軟な方法は、HTMLの<img>
タグを使うことです。
基本的な書き方:
<img src="image1.jpg" width="150">
<img src="image2.jpg" width="150">
<img src="image3.jpg" width="150">
表示結果:画像が横に並んで表示されます。
画像サイズの統一
横並びにする時は、画像のサイズを統一することが重要です:
<img src="before.jpg" width="200">
<img src="after.jpg" width="200">
ポイント:
width
属性で幅を指定- 高さは自動的に調整される
- 統一された見た目になる
画像の間隔調整
画像同士がくっついて見えるのを防ぐため、間隔を調整しましょう:
<img src="image1.jpg" width="150" style="margin-right: 10px;">
<img src="image2.jpg" width="150" style="margin-right: 10px;">
<img src="image3.jpg" width="150">
スタイル属性の説明:
margin-right
:右側の余白margin-left
:左側の余白margin
:上下左右の余白
テーブルを使った横並び表示
tableタグの活用
HTMLのテーブル機能を使うと、より整った横並び表示ができます:
<table>
<tr>
<td><img src="image1.jpg" width="150"></td>
<td><img src="image2.jpg" width="150"></td>
<td><img src="image3.jpg" width="150"></td>
</tr>
</table>
キャプション付きの表示
テーブルを使うと、画像にキャプション(説明文)を簡単につけられます:
<table>
<tr>
<td><img src="before.jpg" width="200"></td>
<td><img src="after.jpg" width="200"></td>
</tr>
<tr>
<td align="center">変更前</td>
<td align="center">変更後</td>
</tr>
</table>
テーブルのメリット
テーブルを使った方法には以下の利点があります:
- 整列がきれい:自動的に高さが揃う
- キャプション追加:説明文を簡単に配置
- レスポンシブ対応:画面サイズに応じて調整
- セル単位の装飾:個別にスタイル設定可能
実践的な横並び表示例

Before/After比較
商品改善やデザイン変更を見せる時によく使います:
<table>
<tr>
<td>
<img src="old_design.jpg" width="250">
</td>
<td>
<img src="new_design.jpg" width="250">
</td>
</tr>
<tr>
<td align="center"><strong>変更前</strong></td>
<td align="center"><strong>変更後</strong></td>
</tr>
</table>
手順説明での活用
操作手順を説明する時にも効果的です:
<table>
<tr>
<td><img src="step1.jpg" width="150"></td>
<td><img src="step2.jpg" width="150"></td>
<td><img src="step3.jpg" width="150"></td>
</tr>
<tr>
<td align="center">手順1: ファイルを開く</td>
<td align="center">手順2: 設定を変更</td>
<td align="center">手順3: 保存する</td>
</tr>
</table>
商品紹介での活用
複数の角度から撮影した商品写真を表示:
<table>
<tr>
<td><img src="front.jpg" width="120"></td>
<td><img src="side.jpg" width="120"></td>
<td><img src="back.jpg" width="120"></td>
<td><img src="detail.jpg" width="120"></td>
</tr>
<tr>
<td align="center">正面</td>
<td align="center">側面</td>
<td align="center">背面</td>
<td align="center">詳細</td>
</tr>
</table>
スタイル属性による詳細調整
基本的なスタイル属性
より細かい調整をしたい場合は、CSSスタイルを活用します:
<img src="image1.jpg" style="width: 200px; margin: 5px; border: 1px solid #ccc;">
<img src="image2.jpg" style="width: 200px; margin: 5px; border: 1px solid #ccc;">
よく使うスタイル属性
サイズ調整:
width: 200px
:幅を指定height: 150px
:高さを指定max-width: 100%
:最大幅を制限
間隔調整:
margin: 10px
:四方向の余白margin-right: 15px
:右側の余白padding: 5px
:内側の余白
装飾:
border: 1px solid #ccc
:枠線border-radius: 5px
:角を丸くするbox-shadow: 2px 2px 4px rgba(0,0,0,0.1)
:影をつける
レスポンシブ対応
スマートフォンでも見やすくするための工夫:
<div style="display: flex; flex-wrap: wrap; justify-content: center;">
<img src="image1.jpg" style="width: 30%; min-width: 150px; margin: 5px;">
<img src="image2.jpg" style="width: 30%; min-width: 150px; margin: 5px;">
<img src="image3.jpg" style="width: 30%; min-width: 150px; margin: 5px;">
</div>
各プラットフォームでの対応状況
主要サービスでの対応
プラットフォーム | imgタグ | tableタグ | styleサポート | 推奨方法 |
---|---|---|---|---|
GitHub | ✅ | ✅ | 一部制限 | imgタグ |
Qiita | ✅ | ✅ | ✅ | tableタグ |
はてなブログ | ✅ | ✅ | ✅ | 両方OK |
WordPress | △ | △ | △ | テーマ依存 |
Notion | ❌ | ❌ | ❌ | 独自方法 |
✅:完全対応 △:制限あり ❌:非対応
プラットフォーム別の推奨方法
GitHub:
<img>
タグが最も確実style
属性は一部制限ありwidth
属性を使用
Qiita:
- HTMLタグ全般をサポート
<table>
でのレイアウトが効果的- CSSスタイルも利用可能
はてなブログ:
- 柔軟なHTML対応
- 独自のMarkdown拡張もあり
- デザインテーマとの調和を考慮
WordPress:
- テーマによって制限が異なる
- 事前にプレビューで確認
- プラグインでの拡張も検討
よくある問題と解決方法

問題1:画像が縦に並んでしまう
原因:
- HTMLタグが認識されていない
- CSSが適用されていない
- プラットフォームの制限
解決方法:
<!-- 確実に横並びにする方法 -->
<p>
<img src="image1.jpg" width="150" style="display: inline-block;">
<img src="image2.jpg" width="150" style="display: inline-block;">
</p>
問題2:画像サイズがバラバラ
原因:
- 元画像のサイズが異なる
- サイズ指定が統一されていない
解決方法:
<!-- 高さを統一する方法 -->
<img src="image1.jpg" height="150" style="margin-right: 10px;">
<img src="image2.jpg" height="150" style="margin-right: 10px;">
問題3:スマートフォンで見切れる
原因:
- 固定幅で指定している
- レスポンシブ対応していない
解決方法:
<!-- パーセンテージで指定 -->
<img src="image1.jpg" style="width: 48%; margin: 1%;">
<img src="image2.jpg" style="width: 48%; margin: 1%;">
問題4:画像の読み込みが遅い
原因:
- 画像ファイルサイズが大きい
- 高解像度の画像を使用
解決方法:
- 画像を事前に最適化
- 適切なサイズにリサイズ
- WebP形式などを検討
より高度なテクニック
Flexboxを使った方法
CSSのFlexboxを使うと、より柔軟な配置ができます:
<div style="display: flex; justify-content: space-around; align-items: center;">
<img src="image1.jpg" style="width: 30%;">
<img src="image2.jpg" style="width: 30%;">
<img src="image3.jpg" style="width: 30%;">
</div>
Gridレイアウトの活用
CSS Gridを使った均等配置:
<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px;">
<img src="image1.jpg" style="width: 100%;">
<img src="image2.jpg" style="width: 100%;">
<img src="image3.jpg" style="width: 100%;">
</div>
画像にリンクを付ける
クリックで拡大表示させたい場合:
<a href="large_image1.jpg" target="_blank">
<img src="thumb_image1.jpg" width="150" style="margin-right: 10px;">
</a>
<a href="large_image2.jpg" target="_blank">
<img src="thumb_image2.jpg" width="150">
</a>
アクセシビリティの配慮

alt属性の重要性
画像には必ずalt属性(代替テキスト)を設定しましょう:
<img src="before.jpg" alt="リニューアル前のウェブサイトデザイン" width="200">
<img src="after.jpg" alt="リニューアル後のウェブサイトデザイン" width="200">
スクリーンリーダー対応
視覚的に読む人だけでなく、音声で読み上げる人への配慮:
<table>
<caption>ウェブサイトリニューアルの比較</caption>
<tr>
<th>変更前</th>
<th>変更後</th>
</tr>
<tr>
<td><img src="before.jpg" alt="旧デザイン" width="200"></td>
<td><img src="after.jpg" alt="新デザイン" width="200"></td>
</tr>
</table>
まとめ
Markdownで画像を横並びにする方法について、重要なポイントをまとめます:
基本的な方法:
- 標準Markdownでは横並び表示は困難
- HTMLタグとの併用が必要
<img>
タグが最も基本的で確実
推奨される方法:
- シンプルな横並び:
<img>
タグ +width
属性 - 整った表示:
<table>
タグを活用 - キャプション付き:テーブルの行を追加
コメント