CSS 要素を横並びにする方法&パターン3選

一覧ページによく使われる、divliなどのボックス要素を横一列に並べる方法と横並びパターンを3つ紹介します。

flexboxで横一列に並べる

サンプル

See the Pen
css layout horizontal – flexbox
by Aquarium (@aquarium)
on CodePen.

HTML


<div class="item-list">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>

CSS


.item-list{
  display: flex;
  justify-content: center; /* 中央寄せ */
}
.item-list .item{
  box-sizing: border-box;
  padding: 40px 80px;  
}

特徴

  • 親要素に指定。子要素全てに適用

用途

  • 主にdivに使用
  • ul, liにも使用可。その場合はulに指定
  • 横幅いっぱいに要素を横並びにしたい時におすすめ

display: inline-blockでボタンを並べる

サンプル

See the Pen
css layout horizontal – flexbox
by Aquarium (@aquarium)
on CodePen.

HTML


<div class="buttons">
<a class="button" href="#">ボタン1</a>
<a class="button" href="#">ボタン2</a>
<a class="button" href="#">ボタン3</a>
</div>

CSS


.button{
  display: inline-block;
  margin: 0 10px;
}

特徴

  • 要素に適用

用途

  • ボタンを並べる時に使用
  • 文章の横にボタンを並べる時に使用

画像+テキストあり横並び

See the Pen
css layout horizontal – flexbox 02
by kura (@kuranopen)
on CodePen.

画像とテキストが入った要素を横並びに表示。

HTML

<div class="item-list">
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキストテキストテキスト</p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
  </div>
</div>

CSS

.item-list {
  display: flex;
  justify-content: space-between;
}
.item-list .item {
  width: 31%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.item-list .item .image {
  margin: 0;
  padding: 0;
}
.item-list .item .image img {
  width: 100%;
}
.item-list .item .title {
  margin: 10px 0 0;
  padding: 0;
  font-weight: bold;
  font-size: 20px;
}
.item-list .item .description {
  margin: 5px 0 0;
  padding: 0;
  font-size: 16px;
}

画像+テキスト+背景あり横並び

See the Pen
css layout horizontal – flexbox 02
by kura (@kuranopen)
on CodePen.

背景のある画像とテキストが入った要素を横並びに表示。

HTML

<div class="item-list">
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキストテキストテキスト</p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
  </div>
</div>

CSS

.item-list {
  display: flex;
  justify-content: space-between;
}
.item-list .item {
  width: 31%;
  margin: 0;
  padding: 0 0 20px 0;
  box-sizing: border-box;
  background: #eee;
}
.item-list .item .image {
  margin: 0;
  padding: 0;
}
.item-list .item .image img {
  width: 100%;
}
.item-list .item .title {
  margin: 10px 0 0;
  padding: 0 20px;
  font-weight: bold;
  font-size: 20px;
}
.item-list .item .description {
  margin: 5px 0 0;
  padding: 0 20px;
  font-size: 16px;
}

画像+テキスト+ボタンあり横並び

See the Pen
css layout horizontal – flexbox 02
by kura (@kuranopen)
on CodePen.

背景のある画像とテキストとボタンが入った要素を横並びに表示。

HTML

<div class="item-list">
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
    <p class="link"><a href="#">くわしくみる</a></p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
    <p class="link"><a href="#">くわしくみる</a></p>
  </div>
  <div class="item">
    <figure class="image"><img src="https://picsum.photos/id/237/960/540" alt=""></figure>
    <p class="title">タイトル</p>
    <p class="description">テキストテキストテキストテキストテキストテキスト</p>
    <p class="link"><a href="#">くわしくみる</a></p>
  </div>
</div>

CSS

.item-list {
  display: flex;
  justify-content: space-between;
}
.item-list .item {
  display: flex;
  flex-direction: column;
  width: 31%;
  margin: 0;
  padding: 0 0 20px 0;
  box-sizing: border-box;
  background: #eee;
}
.item-list .item .image {
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
}
.item-list .item .image img {
  width: 100%;
}
.item-list .item .title {
  margin: 10px 0 0;
  padding: 0 20px;
  font-weight: bold;
  font-size: 20px;
}
.item-list .item .description {
  margin: 5px 0 20px;
  padding: 0 20px;
  font-size: 16px;
  flex: 1;
}
.item-list .item .link {
  margin: 20px 0 0;
  padding: 0 20px;
  font-size: 16px;
  text-align: center;
}
.item-list .item .link a{
  display: inline-block;
  padding: 10px 20px;
  text-align: center;
  background: blue;
  color: #FFF;
  font-weight: bold;
  text-decoration: none;
  box-sizing: border-box;
  border-radius:  4px;
}

デザイナーのUIメモ帳

レイアウト

ヒーローエリア

フォーム

画像

テキスト

ナビゲーション

コンテンツ

CSSデザインサンプル

モバイルサイト

Javascript

Google Map

Youtube

  • このエントリーをはてなブックマークに追加

プロフィール

kura

個人開発歴5年以上。サイト開発・運営。 ペアでエンジニアとアプリ開発しています。

このサイトではWEBデザイン初心者向けになるべく分かりやすいように解説したり、WEBデザインの便利ツール紹介、開発したりしています。

note