アマゾンプライムデー開催中!6/22まで 

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

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

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;
}
.item-list .item{
  box-sizing: border-box;
  padding: 40px 80px;  
}

特徴

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

用途

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

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

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

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