Contact Form 7 CSSカスタマイズ完全ガイド|コピペOKのデザインテンプレート3選

mirokuのアバター

執筆

Contact Form 7を設置したはいいけど、デフォルトのデザインが地味すぎる……そう感じたことはありませんか?

実はContact Form 7はCSSを書く前提で作られており、デフォルトは意図的にシンプルになっています。つまりCSSを少し書くだけで、プロが作ったようなフォームに仕上げられます。

この記事では以下の内容を解説します。

  • CSSを書く場所(3つの方法)
  • 入力欄・ラベル・送信ボタンの基本カスタマイズ
  • コピペOKのデザインテンプレート3選(シンプル・ビジネス・おしゃれ)
  • CSSが反映されない時のよくある原因と対処法

コードはすべてコピペで使えるので、CSSに詳しくない方でも安心して読み進めてください。


1. Contact Form 7のCSSを書く場所

CSSを書く方法は主に3つあります。テーマや環境に合わせて選んでください。

① 追加CSS(最も手軽)

WordPress管理画面から 外観 → カスタマイズ → 追加CSS を開き、そこにCSSを貼り付けます。

テーマファイルを直接編集しないため安全で、初心者にもっともおすすめの方法です。テーマを切り替えると消えてしまう点だけ注意してください。

② テーマのstyle.css

子テーマを使っている場合は style.css に直接追記できます。テーマを更新しても消えないため、長期運用に向いています。

/* 子テーマのstyle.cssに追記 */
.wpcf7-form input[type="text"] {
    border: 1px solid #ccc;
}

③ カスタムCSSファイル(上級者向け)

専用のCSSファイルを作成し、functions.php で読み込む方法です。コードが整理しやすく、大規模サイトに向いています。

// functions.phpに追記
function my_custom_styles() {
    wp_enqueue_style( 'my-cf7-style', get_stylesheet_directory_uri() . '/css/cf7-style.css' );
}
add_action( 'wp_enqueue_scripts', 'my_custom_styles' );

2. 入力欄・ラベルの基本カスタマイズ

まずContact Form 7の主要なCSSセレクタを押さえておきましょう。

対象セレクタ
テキスト入力欄.wpcf7-form input[type="text"]
メールアドレス欄.wpcf7-form input[type="email"]
テキストエリア.wpcf7-form textarea
送信ボタン.wpcf7-form input[type="submit"]
フォーム全体.wpcf7-form
エラーメッセージ.wpcf7-not-valid-tip
送信完了メッセージ.wpcf7-mail-sent-ok

入力欄のスタイル

/* 入力欄の基本スタイル */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    transition: border-color 0.2s;
}

/* フォーカス時(クリックした時)のスタイル */
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #0073aa;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 115, 170, 0.15);
}

送信ボタンのスタイル

/* 送信ボタン */
.wpcf7-form input[type="submit"] {
    display: inline-block;
    padding: 12px 40px;
    background-color: #0073aa;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s, transform 0.1s;
}

/* ホバー時 */
.wpcf7-form input[type="submit"]:hover {
    background-color: #005a87;
    transform: translateY(-1px);
}

/* クリック時 */
.wpcf7-form input[type="submit"]:active {
    transform: translateY(0);
}

3. コピペOKデザインテンプレート3選

以下の3パターンはそのままコピペして「追加CSS」に貼り付けるだけで使えます。

テンプレート①:シンプル・ミニマル

余計な装飾を省いた、どんなサイトにも馴染むシンプルなデザインです。

/* ===== テンプレート① シンプル・ミニマル ===== */
.wpcf7-form p {
    margin-bottom: 20px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 0;
    font-size: 14px;
    background-color: #fafafa;
    box-sizing: border-box;
    transition: border-color 0.2s, background-color 0.2s;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #333;
    background-color: #fff;
    outline: none;
}

.wpcf7-form textarea {
    height: 160px;
    resize: vertical;
}

.wpcf7-form input[type="submit"] {
    padding: 12px 48px;
    background-color: #333;
    color: #fff;
    font-size: 14px;
    letter-spacing: 0.05em;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: background-color 0.2s;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #000;
}

.wpcf7-not-valid-tip {
    color: #c0392b;
    font-size: 12px;
    margin-top: 4px;
}

.wpcf7-mail-sent-ok {
    border: 1px solid #27ae60;
    background-color: #eafaf1;
    color: #27ae60;
    padding: 12px;
    border-radius: 2px;
}

テンプレート②:ビジネス・企業サイト向け

信頼感・清潔感を重視した、企業サイトやサービスサイト向けのデザインです。

/* ===== テンプレート② ビジネス・企業サイト向け ===== */
.wpcf7-form p {
    margin-bottom: 24px;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    padding: 12px 16px;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    transition: border-color 0.25s, box-shadow 0.25s;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-color: #1a73e8;
    box-shadow: 0 0 0 4px rgba(26, 115, 232, 0.12);
    outline: none;
}

.wpcf7-form textarea {
    height: 180px;
    resize: vertical;
}

.wpcf7-form input[type="submit"] {
    display: block;
    width: 100%;
    padding: 14px;
    background-color: #1a73e8;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: background-color 0.2s, box-shadow 0.2s;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #1557b0;
    box-shadow: 0 4px 12px rgba(26, 115, 232, 0.3);
}

.wpcf7-not-valid-tip {
    color: #d93025;
    font-size: 13px;
    margin-top: 6px;
    display: block;
}

.wpcf7-mail-sent-ok {
    border: none;
    background-color: #e8f5e9;
    color: #2e7d32;
    padding: 16px;
    border-radius: 6px;
    font-weight: bold;
}

.wpcf7-mail-sent-ng {
    background-color: #fce8e6;
    color: #d93025;
    padding: 16px;
    border-radius: 6px;
}

テンプレート③:おしゃれ・ブログ向け

ボトムラインスタイルでスタイリッシュに仕上げた、個人ブログやポートフォリオ向けのデザインです。

/* ===== テンプレート③ おしゃれ・ブログ向け(ボトムラインスタイル) ===== */
.wpcf7-form p {
    margin-bottom: 28px;
    position: relative;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
    width: 100%;
    padding: 8px 0;
    border: none;
    border-bottom: 2px solid #ddd;
    border-radius: 0;
    font-size: 15px;
    background-color: transparent;
    box-sizing: border-box;
    transition: border-color 0.3s;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
    border-bottom-color: #e74c7c;
    outline: none;
}

.wpcf7-form textarea {
    height: 140px;
    resize: none;
}

.wpcf7-form input[type="submit"] {
    padding: 12px 48px;
    background-color: transparent;
    color: #e74c7c;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border: 2px solid #e74c7c;
    border-radius: 30px;
    cursor: pointer;
    transition: background-color 0.25s, color 0.25s;
}

.wpcf7-form input[type="submit"]:hover {
    background-color: #e74c7c;
    color: #fff;
}

.wpcf7-not-valid-tip {
    color: #e74c7c;
    font-size: 12px;
    margin-top: 4px;
}

.wpcf7-mail-sent-ok {
    border: 2px solid #e74c7c;
    color: #e74c7c;
    padding: 12px 20px;
    border-radius: 30px;
    text-align: center;
}

4. CSSが反映されない時の対処法

CSSを書いたのに見た目が変わらない、という場合の主な原因と対処法です。

原因① キャッシュが残っている

ブラウザやキャッシュプラグイン(W3 Total CacheやWP Super Cacheなど)のキャッシュが原因で、古いCSSが表示されている場合があります。

対処法:ブラウザのキャッシュをクリア(Ctrl + Shift + R)し、キャッシュプラグインのキャッシュも削除してください。

原因② CSSの優先度(詳細度)が低い

テーマのCSSがContact Form 7のCSSより優先されていると、自分のCSSが上書きされてしまいます。

対処法:セレクタをより具体的にするか、!important を使います。

/* !importantを使う例 */
.wpcf7-form input[type="submit"] {
    background-color: #e74c7c !important;
}

ただし !important の多用はCSSの管理が難しくなるため、まずはセレクタを具体的にする方法を試しましょう。

原因③ セレクタが間違っている

ブラウザの開発者ツール(F12)でフォームの要素を確認し、正しいクラス名・セレクタを使っているか確認してください。Contact Form 7のバージョンによってクラス名が変わる場合があります。

原因④ CSSを書く場所の読み込み順

テーマの style.css よりContact Form 7のCSSが後から読み込まれる場合、上書きされることがあります。「追加CSS」はテーマCSSより後に読み込まれるため、この問題が起きにくくおすすめです。


まとめ

Contact Form 7のCSSカスタマイズについてまとめます。

  • CSSを書く場所は「追加CSS」が最も手軽でおすすめ
  • 主要なセレクタ(.wpcf7-form inputtextareainput[type="submit"])を覚えておくと応用しやすい
  • 3つのテンプレートはそのままコピペで使える
  • CSSが反映されない時はキャッシュ・詳細度・セレクタの3つを確認

Contact Form 7の基本的な使い方・設置方法はこちらの記事で解説しています。