Zurb Foundation

Zurb Foundation CSSフレームワークの使い方を、入門者向けにサンプルを交えてご紹介します。この記事自体も、Zurb Foundationを使って作っています。

ただし、見やすさを考慮してHTMLコードに関しては、シンタックスハイライター hilights.js も使用しています。

CSSフレームワーク

Zurb Foundation
公式サイト https://foundation.zurb.com/
開発者 ZURB
ライセンス MIT
グリッド 12列
GitHub stars 28.9k
Twitter @ZURBfoundation
Foundation v6.6.3
モジュールサイズ
foundation.min.css 129KB
foundation.min.js 177KB
foundation.core.js 44.3KB

使い方とサンプル

CDN

<html>
  <head>
    <!-- Foundation CSS -->
    <link rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/foundation-sites@6.6.3/dist/css/foundation.min.css"
      integrity="sha256-Q2fXBbKhtsyhYrSLa7hXCNV+FdhbQhyrjks8Kic0u/U="
      crossorigin="anonymous">
    <!-- jQuery -->
    <script src="https://code.jquery.com/jquery-3.4.1.min.js"
      integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
      crossorigin="anonymous"></script>
    <!-- Foundation JavaScript -->
    <script src="https://cdn.jsdelivr.net/npm/foundation-sites@6.6.3/dist/js/foundation.min.js"
      integrity="sha256-tdB5sxJ03S1jbwztV7NCvgqvMlVEvtcoJlgf62X49iM="
      crossorigin="anonymous"></script>
  </head>
  <body>
    <!-- content -->
  </body>
</html>

.button

<button type="button" class="button">Button</button>

<a href="#" class="button">Link</a>

Link

.secondary

<button type="button" class="secondary button">Button</button>
<a href="#" class="secondary button">Link</a>

Link

.success

<button type="button" class="success button">Button</button>
<a href="#" class="success button">Link</a>

Link

.button-group

<div class="small secondary button-group">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.hollow

<div class="button-group hollow">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.clear

<div class="button-group clear">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.no-gaps

<div class="button-group no-gaps">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.stacked-for-small

ボタングループにstacked-for-smallクラスを指定すると、画面幅が小さいときにボタンが縦(垂直方向)並ぶ。

<div class="stacked-for-small button-group">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.arrow-only

<div class="button-group">
  <a class="button">1</a>
  <a class="dropdown button arrow-only">
    <span class="show-for-sr">Show menu</span">
  </a>
</div>
1 Show menu

.align-center

<div class="button-group align-center">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.align-right

<div class="button-group align-right">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.align-spaced

<div class="button-group align-spaced">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.align-justify

<div class="button-group align-justify">
  <a class="button">1</a>
  <a class="button">2</a>
</div>
1 2

.input-group-field

<div class="input-group">
  <input class="input-group-field" type="text">
</div>

.input-group-label

<div class="input-group">
  <span class="input-group-label">$</span>
  <input class="input-group-field" type="number">
</div>
$

.input-group-button

<div class="input-group">
  <input class="input-group-field" type="text">
  <div class="input-group-button">
    <input type="submit" class="button" value="Submit">
  </div>
</div>
<ul class="menu">
  <li>
    <a href="/css/bootstrap/">Bootstrap</a>
  </li>
  <li>
    <a href="/css/bulma/">Bulma</a>
  </li>
</ul>

.hover

<table class="hover">
Zurb Foundationのtableクラス
クラス説明
hover マウスカーソルを乗せた行の色を変える
unstriped 1行おきに行の色を変えない
stackスタック可能
table-scroll 水平方向にスクロールできるテーブル

.unstriped

<table class="unstriped">
Zurb Foundationのtableクラス
クラス説明
hover マウスカーソルを乗せた行の色を変える
unstriped 1行おきに行の色を変えない
stackスタック可能
table-scroll 水平方向にスクロールできるテーブル

.stack

<table class="stack">
Zurb Foundationのtableクラス
クラス説明
hover マウスカーソルを乗せた行の色を変える
unstriped 1行おきに行の色を変えない
stackスタック可能
table-scroll 水平方向にスクロールできるテーブル

.table-scroll

<table class="table-scroll">
Zurb Foundationのtableクラス
クラス説明
hover マウスカーソルを乗せた行の色を変える
unstriped 1行おきに行の色を変えない
stackスタック可能
table-scroll 水平方向にスクロールできるテーブル

テンプレート

<html>
  <head>
    <!-- Compressed CSS -->
    <link rel="stylesheet" href="/css/foundation.min.css">
    <!-- jQuery -->
    <script src="/js/jquery-3.4.1.min.js"></script>
    <!-- Compressed JavaScript -->
    <script src="/js/foundation.min.js"></script>
  </head>
  <body>
  </body>
</html>

Badge

<span class="badge">1</span>

1

Secondary badge

<span class="secondary badge">2</span>

2

Success badge

<span class="success badge">3</span>

3

Alert badge

<span class="alert badge">4</span>

4

Warning badge

<span class="warning badge">5</span>

5

Alert button

<button type="button" class="alert button">Button</button>
<a href="#" class="alert button">Link</a>

Link

Warning button

<button type="button" class="warning button">Button</button>
<a href="#" class="warning button">Link</a>

Link

Tiny button

<button type="button" class="tiny button">Button</button>
<a href="#" class="tiny button">Link</a>

Link

Small button

<button type="button" class="small button">Button</button>
<a href="#" class="small button">Link</a>

Link

Large button

<button type="button" class="large button">Button</button>
<a href="#" class="large button">Link</a>

Link

Expanded button

<button type="button" class="expanded button">Button</button>
<a href="#" class="expanded button">Link</a>

Link

No-bullet list

<ul class="no-bullet">
  <li>first</li>
  <li>second</li>
</ul>

Disc list

<ul class="list-disc">
  <li>first</li>
  <li>second</li>
</ul>

Decimal list

<ol class="list-decimal">
  <li>first</li>
  <li>second</li>
</ol>
  1. first
  2. second

Right aligned menu

<ul class="menu align-right">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Center aligned menu

<ul class="menu align-center">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Expanded menu

<ul class="menu expanded">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Vertical menu

<ul class="vertical menu">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Right aligned vertical menu

<ul class="vertical menu align-right">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Center aligned vertical menu

<ul class="vertical menu align-center">
  <li>
    <a href="#MENU">Menu</a>
  </li>
  <li>
    <a href="#">Button</a>
  </li>
</ul>

Right aligned text

<p class="text-right">
  text-right
</p>

text-right

Center aligned text

<p class="text-center">
  text-center
</p>

text-center

Justified text

<p class="text-justify">
  text-justify
</p>

text-justify

Lead Paragraph

<p class="lead">
  lead
</p>

lead

.grid-x

<div class="grid-x">
  <div class="cell">1</div>
  <div class="cell">2</div>
</div>
1
2

.small-1

Zurb Foundation は横幅を12分割したレイアウトを指定できる。

ウェブブラウザ画面の横幅に応じてスタイルを変えることができる。

Media Queries
Class prefix画面の横幅
smallすべて
medium640px 以上
large1024px 以上
<div class="grid-x">
  <div class="cell small-1">1</div>
  <div class="cell small-1">2</div>
  <div class="cell small-1">3</div>
  <div class="cell small-1">4</div>
  <div class="cell small-1">5</div>
  <div class="cell small-1">6</div>
  <div class="cell small-1">7</div>
  <div class="cell small-1">8</div>
  <div class="cell small-1">9</div>
  <div class="cell small-1">10</div>
  <div class="cell small-1">11</div>
  <div class="cell small-1">12</div>
</div>
1
2
3
4
5
6
7
8
9
10
11
12

.small-2

Foundationのグリッドレイアウトシステムにおいて横幅を12分の2にするには、small-2 クラスを指定する。

<div class="grid-x">
  <div class="cell small-2">2/12</div>
  <div class="cell small-2">2/12</div>
  <div class="cell small-2">2/12</div>
  <div class="cell small-2">2/12</div>
  <div class="cell small-2">2/12</div>
  <div class="cell small-2">2/12</div>
</div>
2/12
2/12
2/12
2/12
2/12
2/12

.small-3

Foundationのグリッドレイアウトシステムにおいて横幅を12分の3にするには、small-3 クラスを指定する。

<div class="grid-x">
  <div class="cell small-3">3/12</div>
  <div class="cell small-3">3/12</div>
  <div class="cell small-3">3/12</div>
  <div class="cell small-3">3/12</div>
</div>
3/12
3/12
3/12
3/12

.small-4

Foundationのグリッドレイアウトシステムにおいて横幅を12分の4にするには、small-4 クラスを指定する。

<div class="grid-x">
  <div class="cell small-4">4/12</div>
  <div class="cell small-4">4/12</div>
  <div class="cell small-4">4/12</div>
</div>
4/12
4/12
4/12

.small-5

Foundationのグリッドレイアウトシステムにおいて横幅を12分の5にするには、small-5 クラスを指定する。

<div class="grid-x">
  <div class="cell small-5">5/12</div>
  <div class="cell small-7">7/12</div>
</div>
5/12
7/12

.small-6

Foundationのグリッドレイアウトシステムにおいて横幅を12分の6にするには、small-6 クラスを指定する。

<div class="grid-x">
  <div class="cell small-6">6/12</div>
  <div class="cell small-6">6/12</div>
</div>
6/12
6/12

.small-7

Foundationのグリッドレイアウトシステムにおいて横幅を12分の7にするには、small-7 クラスを指定する。

<div class="grid-x">
  <div class="cell small-7">7/12</div>
  <div class="cell small-5">5/12</div>
</div>
7/12
5/12

.small-8

Foundationのグリッドレイアウトシステムにおいて横幅を12分の8にするには、small-8 クラスを指定する。

<div class="grid-x">
  <div class="cell small-8">8/12</div>
  <div class="cell small-4">4/12</div>
</div>
8/12
4/12

.small-9

Foundationのグリッドレイアウトシステムにおいて横幅を12分の9にするには、small-9 クラスを指定する。

<div class="grid-x">
  <div class="cell small-9">9/12</div>
  <div class="cell small-3">3/12</div>
</div>
9/12
3/12

.small-10

Foundationのグリッドレイアウトシステムにおいて横幅を12分の10にするには、small-10 クラスを指定する。

<div class="grid-x">
  <div class="cell small-10">10/12</div>
  <div class="cell small-2">2/12</div>
</div>
10/12
2/12

.small-11

Foundationのグリッドレイアウトシステムにおいて横幅を12分の11にするには、small-11 クラスを指定する。

<div class="grid-x">
  <div class="cell small-11">11/12</div>
  <div class="cell small-1">1/12</div>
</div>
11/12
1/12

.small-12

Foundationのグリッドレイアウトシステムにおいて横幅を12分の12にするには、small-12 クラスを指定する。

<div class="grid-x">
  <div class="cell small-12">12/12</div>
</div>
12/12

.medium-{n}

<div class="grid-x">
  <div class="cell small-6 medium-4">1</div>
  <div class="cell small-6 medium-4">2</div>
  <div class="cell small-6 medium-4">3</div>
</div>
1
2
3

.large-{n}

<div class="grid-x">
  <div class="cell small-6 medium-4 large-3">1</div>
  <div class="cell small-6 medium-4 large-3">2</div>
  <div class="cell small-6 medium-4 large-3">3</div>
  <div class="cell small-6 medium-4 large-3">4</div>
</div>
1
2
3
4

.auto

<div class="grid-x">
  <div class="cell small-6 medium-4 large-3">1</div>
  <div class="cell auto">2</div>
</div>
1
2

.grid-container

<div class="grid-container"">
  <div class="grid-x grid-margin-x">1</div>
</div>
1