コーディング制作の進行イメージ
コーディングの生産性と品質を保つため、制作のポイントや注意する点を記載しています。
フロントエンド実装を除いた、HTMLコーディングの範囲となります。
- 記載内容は一例となります。プロジェクトの要件やスケジュールに基づいて参考にしてください。
- 前提: 以下の場合を想定しています。実施すると、プロジェクト全体の進行がスムーズになります。
- プロジェクト:
- 大規模なプロジェクトの場合
- 長期的な運用や改修を見据えたプロジェクトの場合
- 体制: 複数の会社や担当者が関わり、分担して作業する場合
- プロジェクト:
はじめに
CMS上で再利用可能なコンポーネント設計思想でコーディングをすることが重要です。
コンポーネント化の一例
- ヘッダ
- フッタ
- 見出し
- ボタン
- 記事の一覧
- 一覧に表示するカードUI
- ページネーション など
資料の確認
事前に以下を確認してください。
- ページリスト(サイトマップ)
- 画面設計書、ワイヤーフレーム
ページリストから「CMSテンプレート化する動的ページ」か、「静的なページ」なのかを確認します。
ページ単位の確認
- 「CMSで出力する項目」と「そうでないもの」を確認します。
- なかでも、「CMSのエディタ入力(HTMLで出力する項目)」は運用に関する考慮が必要なものとなりますので後述します。
- CMSで出力する項目においては、「パターン違い」や「要素の有無」での表示がどうなるか等も確認します。
1. 基本的なポイント
CSSの設計 | 影響範囲や用途が分かるように、CSSの設計や命名規則をルール化します。リポジトリのREADMEまたはコンポーネント一覧に記載しましょう。例として、弊社では主に以下を採用しています。
|
---|---|
変数の使用 | 全体のスタイル統一のため、サイト共通で使用するスタイルはCSS変数またはSassの変数で定義します。
|
ユーティリティclass | CSSフレームワークを利用しない場合は、余白やフォントサイズ、displayの調整用スタイルを用意しておきます。 |
レスポンシブ対応 |
|
コンポーネント化 |
|
リンク設定 |
|
その他 |
|
2. 再利用可能なコーディングのポイント
スタイルは特定のページだけで使えるものではなく、他のページでもソースが再利用可能なコーディングをします。
全体
NG h4.heading
OK .heading
NG .link a
OK .link-title
NG #column-page .heading
OK .column-heading
フロントエンド実装時に<div>
などのwrapper要素を追加することがあります。
wrapper要素を追加しても破綻しないように設計します。
NG #column-page > #column-pickup > .column-list
OK .column-list
フォーム
Kuroco側でname属性を設定するため、jsやcssのセレクターはidやclass、data属性などを使用してください。
NG input[name="company-name"]
OK .input-company-name
3. パフォーマンスへの対応
ローカル環境やモックアップの環境では問題がなくても、実装後のサイト環境では、ファイルの読み込みでページの表示速度が遅くなったり、表示がカクついたりする場合があります。
Webフォント | ネットワーク環境が遅い場合でも対応できるようにしてください。
|
---|---|
画像 |
|
スライダー | 2枚目以降LazyLoadingオプションを設定するなどを考慮します。 |
4. WYSIWYGエディタ用のコーディング
WYSIWYGエディタに入力したHTMLにスタイルを当てる場合の確認点や注意点を記載します。 事前に画面設計書でエディタを使用するエリアがあるかを確認してください。
全体
WYSIWYGエディタにスタイルを当てる場合、wrapper要素のセレクターのみを指定し、要素にスタイルを指定します。
// html
<div class="editor">
// エディタから出力されたHTMLが入ります
</div>
// scss
.editor {
h1 { }
p { }
ul:not([class]) { } // class付与時とスタイルを分けたい場合の記述
}
要素の確認
使用するツールバーのボタンを確認し、一通り標準的なデザインが当たっているかを確認します。特にreset.cssを入れていて、classを付与しないとスタイルが当たらない状態になっている場合はご注意ください。
<h1>
<h2>
<h3>
<h4>
<p>
<strong>
<i>
<u>
<a>
<figure>
<img>
<oembed>
<table>
<ul>
<ol>
<blockquote>
CKEditorの仕様による注意点
Kurocoでは CKEditor5を利用しています。エディタ内で以下のコーディングはできませんのでご注意ください。 複雑なHTMLを入力したい場合は、入力欄の形式をWYSIWYGエディタからHTML形式に変更してください。
OK <i>nbsp;</i>
NG <i></i>
OK <a href="#"><span>Inline text</span></a>
OK <a href="#"><img src="path.png"></a>
NG <a href="#"><div>Div Block</div></a>
NG <a href="#"><p>Text Block</p></a>
OK <span>SpanText</span>
NG <span>SpanText<span>Child</span></span>
// class名をつける、且つ別のclass名を使う必要があります
OK <div><span class="span1">span1</span><span class="span2">span2</span></div>
NG <div><span>No ClassName</span><span>No ClassName</span></div>
NG <div><span class="span1">span1</span><span class="span1">span1</span></div>
以下のような場合(インライン要素)に<p>
タグが差し込まれます。
<!-- 記述時 -->
Text <span>SpanText</span>
<!-- 変換後 -->
<p>Text<span>SpanText</span></p>
<!-- <p>に変換されない記述方法 -->
<div>Text<span>SpanText</span></div>
<!-- 記述時 -->
<img src="path.png">
<!-- 変換後 -->
<p><img src="path.png"></p>
<!-- <p>に変換されない記述方法 -->
<div><img src="path.png"></div>
<!-- 記述時 -->
<a href="#">ButtonLink</a>
<!-- 変換後 -->
<p><a href="#">ButtonLink</a></p>
<!-- <p>に変換されない記述方法 -->
<div><a href="#">ButtonLink</a></div>
<!-- 記述時 -->
<dl>
<dt>Heading</dt>
<dd>Content</dd>
</dl>
<!-- 変換後 -->
<dl>
<dt><p>Heading</p></dt>
<dd><p>Content</p></dd>
</dl>
5. その他の注意点
- metaタグまわりを設定します
- 画面仕様書を確認してページタイトルやURLを適切に設定します
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。