【初心者向け】【第2回】WPテーマWriteの模写コーディング~ヘッダー~

【初心者向け】【第2回】WPテーマWriteの模写コーディング~ヘッダー~

こんにちは。macco(まっこ)です。

今回は前回に引き続き、WPテーマWriteの模写コーディングの続きを書いていきます。

前回の記事はこちら↓

「全体の大枠としてHTMLを作成したけれど、このあとはどこから始めたらよいか分からない」といった方向けに解説します。

この記事を読むと、Writeのヘッダー部分をどのようにデザインしたらよいか分かります。

模写コーディングを始める前に

必要なファイルを準備します。

フォルダ構成

以下のフォルダ構成で進めていきます。

  • index.html
  • cssフォルダ
    • style.css
  • imgフォルダ
    • Writeで使っている画像ファイル

HTMLの用意

以下のHTMLをindex.htmlとして用意します。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>【初心者向け】【第2回】WPテーマWriteの模写コーディング~ヘッダー~</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- CSS -->
  <link rel="stylesheet" href="https://unpkg.com/modern-css-reset/dist/reset.min.css" >
  <link rel="stylesheet" href="css/style.css">
  <!-- JS -->
  <script src="https://kit.fontawesome.com/19e88b9c54.js" crossorigin="anonymous"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
  <div class="container">
    <header>
      <nav class="gnav">
        <div class="logo-area">
          <a href="#" class="logo">Write</a>
          <p>書くためのテーマ</p>
        </div>
        <div class="menu-area">
          <ul>
            <li class="menu-home">
              <a href="#">ホーム<i class="fas fa-chevron-down"></i></a>
            </li>
            <li class="menu-page">
              <a href="#">ページ<i class="fas fa-chevron-down"></i></a>
            </li>
            <li>
              <a href="#">タイポグラフィー</a>
            </li>
            <li>
              <a href="#">お問い合わせ</a>
            </li>
          </ul>
        </div>
        <div class="search-area">
          <img src="img/search-icon.png" class="search" alt="検索">
        </div>
      </nav>
    </header>
    <main>
      <div>
        <img src="img/cropped-nicole-honeywill-730102-unsplash.jpg" alt="key-visual">
      </div>
      <p class="page-lead">Writeは文章を書く人のためのミニマルなWordPressテーマです。装飾を極限まで省いたデザインは、あなたの文章を主役にします。</p>
      <article>
        <div>
          <header>
            <a href="#">2018年9月1日</a>
          </header>
        </div>
        <div>
          <a href="#">書くためのテーマ</a>
          <p>Writeは文章を書く人のためのミニマルなWordPressテーマです。装飾を極限まで省いたデザインは、あなたの文章を主役にします。</p>
        </div>
      </article>
      <article>
        <div>
          <header>
            <a href="#">2018年3月5日</a>
          </header>
        </div>
        <div>
          <a href="#">画像付きの投稿</a>
          <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。</p>
        </div>
      </article>
      <article>
        <div>
          <header>
            <a href="#">2018年3月5日</a>
          </header>
        </div>
        <div>
          <a href="#">引用付きの投稿</a>
          <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれ…</p>
        </div>
      </article>
      <article>
        <div>
          <header>
            <a href="#">2018年3月5日</a>
          </header>
        </div>
        <div>
          <a href="#">コメント付きの投稿</a>
          <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。 しかもあとで聞くとそ…</p>
        </div>
      </article>
      <article>
        <div>
          <header>
            <a href="#">2018年3月3日</a>
          </header>
        </div>
        <div>
          <a href="#">吾輩は猫である</a>
          <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。 しかもあとで聞くとそ…</p>
        </div>
      </article>
      <article>
        <div>
          <header>
            <a href="#">2018年3月3日</a>
          </header>
        </div>
        <div>
          <a href="#">名前はまだ無い。どこで生れたかとんと見当がつかぬ。</a>
          <p>吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。 しかもあとで聞くとそ…</p>
        </div>
      </article>
      <div class="pagination">
        <a href="#">1</a>
        <a href="#">2</a>
        <a href="#">3</a>
        <a href="#">次へ<i class="fas fa-angle-double-right"></i></a>
      </div>
    </main>
    <footer>
      <div class="footer-top">
        <div class="profile-area">
          <div>
            <img src="img/profile-m.png" class="profile-img" alt="profile-image">
          </div>
          <div class="profile-name-block">
            <p>John Doe</p>
            <i class="fab fa-twitter"></i>
            <i class="fab fa-facebook-f"></i>
            <i class="fab fa-instagram"></i>
          </div>
          <p>これはプロフィールウィジェットです。ここにはプロフィール画像・名前・自己紹介文・ソーシャルリンク(最大7つ)を設定することができます。</p>
        </div>
        <div class="footer-right">
          <p class="footer-title">フッター右</p>
          <p>3つのフッター右ウィジェットエリアはフッターの右側に表示され、使用する数によって幅は自動的に調整されます。1つも使用しない場合は表示されません。</p>
        </div>
        <div class="resent-posts">
          <p class="footer-title">最近の投稿</p>
          <div>
            <a href="#" class="post-title">書くためのテーマ</a>
            <header>
              <p>2018年9月1日</p>
            </header>
          </div>
          <div>
            <a href="#" class="post-title">画像付きの投稿</a>
            <header>
              <p>2018年3月5日</p>
            </header>
          </div>
          <div>
            <a href="#" class="post-title">引用付きの投稿</a>
            <header>
              <p>2018年3月5日</p>
            </header>
          </div>
        </div>
        <div class="category">
          <p class="footer-title">カテゴリー</p>
          <div>
            <a href="#">サンプル投稿</a>
          </div>
          <div>
            <a href="#">投稿フォーマット</a>
          </div>
          <div>
            <a href="#">普通の投稿</a>
          </div>
          <input type="text" placeholder="検索...">
        </div>
      </div>
      <div class="footer-bottom">
        <div>
          <i class="fab fa-twitter"></i>
          <i class="fab fa-facebook-f"></i>
          <i class="fab fa-instagram"></i>
        </div>
        <small>Powered by <a href="">WordPress</a> | Theme: <a href="">Write</a> by Themegraphy</small>
      </div>
    </footer>
  </div>
</body>
</html>

以下のscriptタグFont AwesomeのKitCodeによるものです。

<script src="https://kit.fontawesome.com/xxxxxxxxxx.js" crossorigin="anonymous"></script>

Font Awesomeをインストールの方法は以下の記事にまとめてありますので、準備ができていないかたはこちらをご参照ください。

CSSの用意

style.cssファイルcssフォルダの中に置いてください。
中身は空のままで大丈夫です。

画像の用意

Writeで使用している画像ファイルすべてを、imgフォルダに入れておきます。

画像ファイルの取得方法については、以下の記事にある「4.2. 参考にするWebサイトの画像を取得する」をご参照ください。

以上で準備完了です。

全体のデザイン

まずヘッダーのデザインを進める前に、全体のデザインを調整しましょう。

フォントの指定とフォントサイズの指定を行います。

html {
  font-size: 18px;
}

body {
  font-family: Georgia, 游明朝, YuMincho, "Hiragino Mincho ProN", Meiryo, serif;
}

全体の幅を指定し、中央に寄せます。

.container {
  max-width: 1024px;
  margin: 0 auto;
}

HTMLのaタグは初期表示として、字の色は青色、下線が引かれます。

これを修正しましょう。

フォントの色の変更と下線を無しにします。

a {
  color: #666;
  text-decoration: none;
}

現時点での画面表示は以下のとおりです。

ヘッダーのデザイン

ここからヘッダーのデザインを進めていきます。

ロゴ(Write)を調整する

左側に表示されているWriteのロゴのデザインを行います。

.logo {
  color: #333;
  display: block;
  font-size: 2rem;
  font-weight: bold;
}

ヘッダーの子要素を横並びにする

ヘッダーの子要素(ロゴ、メニュー、検索アイコン)が縦に並んでいるので、横並びにします。

色々な方法がありますが、今回はCSSのFlexBoxを使います。

横並びに関係しているCSSプロパティと値は以下のとおりです。

  • display: flex;⇒1階層下の子要素を横並びにする(divタグのclass=”logo-area”、class=”menu-area”、class=”search-area”がclass=”gnav”の子要素)
  • justify-content: space-between;⇒水平方向の配置の種類を指定する
  • align-items: flex-end;⇒垂直方向の配置の種類を指定する

レイアウトを組むFlexBoxは、慣れるまで大変ですが、Webデザインのスタンダードなやり方の1つなので、少しずつ慣れていきましょう。

.gnav {
  width: 100%;
  height: auto;
  margin-top: 3rem;
  margin-bottom: 4rem;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

ul、liタグの表示を調整する

メニューを表示している部分の点と余白をCSSで消します。

ul {
  list-style-type: none;
  margin-block-start: 0;
  margin-block-end: 0;
  padding-inline-start: 0;
}

以下の画面表示になり、メニューの先頭に付いていた点やまわりの余白が取り除かれます。

メニューを横並びにする

メニュー(ホーム、ページ、タイポグラフィー、お問い合わせ)を横並びにします。

ここも先ほどと同じようにFlexBoxを使います。

.menu-area ul {
  display: flex;
  justify-content: space-between;
}

メニューまわりのデザインを調整する

各メニュー同士がくっついているのでCSSで調整します。

.menu-area li {
  padding: 1rem 1rem 0 1rem;
}

.menu-area a {
  font-size: .9rem;
}

.menu-area a i {
  font-size: .6rem;
  padding-left: .5rem;
}

各メニュー同士に余白ができ、ほぼWriteと同じようなヘッダーになりました。

最後に

今回はWrite模写コーディングのヘッダー箇所を解説しましたが、いかがでしたでしょうか。

模写コーディングは、完全にピクセル単位でデザインするのが目的ではなく、Webサイトのレイアウトを読み取りに慣れたり、良く使われるCSSプロパティに慣れるのが目的になります。

最初はとても難しく感じますが、少しずつ慣れてくるので挑戦してみてはいかがでしょうか。

模写コーディングが難しいと感じている方々に、少しでもお役に立てたら嬉しいです。

最後までお読みいただきありがとうございました。


続きはこちらになります↓

2020/10/25追記
本テーマのまとめ記事はこちら↓

プログラミングカテゴリの最新記事