はじめに
この記事は、ランディングページ(LP)を手早く作成するために、どのLPにも使える共通部分や、書く際の作法をまとめたものです。
復習と備忘も兼ねて、本記事を執筆いたしました。
本記事記載のソースコードを起点に、コンテンツの追加、CSSの変更、Bootstrap等のフレームワーク実装を行っていただき、各々が目指すデザインのページへと進展させていただければ幸いです。
前提条件として以下の点にご留意願います。
- ここでいうLPは縦長のレイアウトのページを指す
- HTML及びCSSのみ使用のシンプルなLP(JSやその他の言語・フレームワークは使用しない)
- メニューはシンプルな横並びのもの
- レスポンシブに関するCSSは省略
LPの意味に関しては下記記事が参考になります。
ランディングページ(LP)とは何か?初心者にもわかりやすく解説!
出来上がり見本
本記事記載のソースコードを用いると下記画像のようになります。
見やすくするため、下記2点が本記事のソースコードと異なります。
- hogeセクションを2回記述
- style.cssの各種カラープロパティの値を以下の値に指定
- body及びa要素の文字色:
#222
- hogeセクションの背景色:
#ddd
- footer要素の背景色:
#aaa
- footer要素の文字色:
white
- body及びa要素の文字色:
ディレクトリ構造
基本構造(一例)。
css/
├ reset.css
└ style.css
img/
├ top-bg.png
├ XXXX.png
└ ・・・
favicon.ico
index.html
各ファイルのソースコード
画像ファイルとfavicon以外のindex.html
, reset.css
, style.css
の型となるソースコードを以下に示す。
index.htmlの型
作法的なもの
- bodyタグ内の基本構造は
header
section(トップタイトル用)
section(*n)
footer
- ヘッダー、各セクション、フッター内に
.container
クラスを持ったdiv要素を作り、その中にコンテンツを記述。 - トップセクション以外の各セクションに
.section
クラスを付けて、共通のレイアウトを適用。
<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="favicon.ico">
<title>Document Title</title>
<meta name="description" content="メタディスクリプション(ページの概要・要約)">
<link rel="stylesheet" href="./css/reset.css">
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<header>
<div class="container clear">
<div class="header-left">
<h1 class="header-title">ヘッダーに表示するタイトル</h1>
</div>
<div class="header-right">
<ul class="header-nav">
<li class="header-nav-item"><a href="#">メニュー名</a></li>
<li class="header-nav-item"><a href="#">メニュー名</a></li>
<!-- メニューの数だけ li を作成 -->
</ul>
</div>
</div>
</header>
<section class="top">
<div class="container">
<p class="top-title">
トップタイトル
</p>
<p class="top-subtitle">
トップサブタイトル
</p>
</div>
</section>
<!-- hogeセクション(必要な数だけ繰り返し記述) -->
<section class="hoge section">
<div class="container">
<h2 class="section-title">Hoge</h2>
<!-- ここに hogeセクションの内容を記述 -->
</div>
</section><!-- /hogeセクション -->
<footer>
<div class="container">
<p class="copyright">Copyright(C) Hogehoge All Rights Reserved.</p>
</div>
</footer>
</body>
</html>
リセットCSS
各ブラウザは、デフォルトで適用するCSSを持っているため、ブラウザによって見え方が若干異なることがある。
以下のリセットCSSを書くことにより、ブラウザ毎の表示の差異をなくす。
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
html, body, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, div, span, img, a, table, tr, th, td {
margin: 0;
padding: 0;
border: 0;
font-weight: normal;
font-size: 100%;
vertical-align: baseline;
}
header, footer, nav, section, article, aside, figure, figcaption {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
list-style-type: none;
}
style.cssの型
/*==============================
ページ全体の共通部分
==============================*/
body {
color: #222;
font-family: Verdana, Geneva, Tahoma, sans-serif;
line-height: 1.5;
}
img {
width: 100%;
height: auto;
}
a {
text-decoration: none;
color: #222;
}
a:hover {
opacity: 0.7;
}
.container {
width: 90%;
max-width: 980px;
margin: auto;
}
.clear::after {
content: "";
clear: both;
display: block;
}
/*==============================
header
==============================*/
header {
padding: 20px 0;
}
.header-left {
float: left;
}
.header-title {
font-weight: bold;
font-size: 24px;
}
.header-right {
float: right;
}
.header-nav {}
.header-nav-item {
float: left;
margin-left: 50px;
}
.header-nav-item a {
font-size: 15px;
font-weight: 600;
line-height: 36px;
}
/*==============================
top
==============================*/
.top {
background-image: url(../img/top-bg.png);
-webkit-background-size: cover;
background-size: cover;
padding: 80px 0;
}
.top-title {
font-size: 48px;
font-weight: bold;
text-align: center;
margin-bottom: 20px;
}
.top-subtitle {
font-size: 18px;
text-align: center;
}
/*==============================
section (各セクション共通部分)
==============================*/
.section {
padding: 60px 0;
}
.section-title {
font-size: 32px;
font-weight: bold;
text-align: center;
margin-bottom: 40px;
}
/*==============================
hoge (各セクション名)
==============================*/
.hoge {
background-color: #ddd;
}
/*==============================
footer
==============================*/
footer {
background-color: #aaa;
color: white;
padding: 20px 0;
}
.copyright {
font-size: 12px;
}
float 及び Flexboxについて (おまけ)
Flexboxが主流になってきているが、両方の性質を理解して使い分けをできるようにしたい。
以下はfloat及びFlexboxを使用する際の留意事項をまとめた。
float
floatさせたい要素のcssにfloat: left;
もしくはfloat: right;
を記述。
floatさせる要素の親要素に.clear
クラスを付加することで、要素の浮遊によるレイアウトの崩れを解消。
Flexbox
Flexboxを適用させるには、親要素に.hoge-wrapper
クラスを付け、
そのクラスに対してdisplay: flex;
及びその他Flexbox関連のCSSを記述。