【Contact Form 7】スマホで送信ボタンが中央に寄らない!スピナーが原因のズレをCSSで強制的に直す方法

【Contact Form 7】スマホで送信ボタンが中央に寄らない!スピナーが原因のズレをCSSで強制的に直す方法

WordPressのお問い合わせフォームプラグイン「Contact Form 7」を使っていると、「パソコンでは綺麗に表示されているのに、スマホで見ると送信ボタンが左にズレている」という現象に悩まされることがあります。

  • text-align: center; を指定しても効かない
  • 親要素の p タグをいじると他の項目まで崩れてしまう……。

そんな「泥沼」ハマってしまった方向けに、今回は「CSSで物理的にボタンを中央に配置する」という、最終手段にして確実な解決策をご紹介します。

目次

原因:犯人は「読み込み中アイコン(スピナー)」

そもそも、なぜ送信ボタンは左にズレてしまうのでしょうか?

原因の多くは、送信ボタンの横に隠れている**ローディングアニメーション(スピナー)**です。

HTML上では以下のような記述になっています。

HTML

<span class="wpcf7-spinner"></span>

このスピナーは、送信中にクルクル回るアイコンを表示するためのものですが、これが「幅」を持っているため、「送信ボタン + スピナー」のセットで配置され、ボタン単体が左に追いやられてしまうのです。

解決策:スピナーを消して、計算式で中央に置く

親要素(<p>タグなど)のCSS干渉が激しい場合、親を修正するのは骨が折れます。

そこで今回は、以下の2ステップで解決します。

  1. スピナーを非表示にする(レイアウト崩れの元を断つ)
  2. ボタンの位置を計算式(calc)で指定する(親要素に関係なく中央に置く)

コピペ用CSSコード

以下のコードを「外観 > カスタマイズ > 追加CSS」に貼り付けてください。

※ 204px の部分は、ご自身のサイトのボタンの幅に合わせて書き換えてください。

CSS

/* 1. レイアウト崩れの原因になるスピナーを非表示にする */
.wpcf7-spinner {
    display: none !important;
}

/* 2. スマホ画面(768px以下)限定の調整 */
@media screen and (max-width: 768px) {
    /* 送信ボタン本体を直接指定 */
    .wpcf7-form-control.wpcf7-submit.has-spinner {
        margin: 0;
        position: relative;
        top: 0;
        
        /* ここがポイント!計算式で強制的に中央へ */
        /* calc((画面幅100% - ボタンの幅) ÷ 2) */
        left: calc((100% - 204px) / 2);
    }
}

解説:なぜこれで直るのか?

left: calc((100% - 204px) / 2); の意味

この記述は、CSSの calc 関数を使ってブラウザに計算をさせています。

  • 100%: 画面(親要素)の横幅いっぱい
  • 204px: 送信ボタンの横幅(※ここが重要!)
  • (100% - 204px): 画面幅からボタン幅を引いた「余白の合計」
  • / 2: 余白を2等分して、左側の余白として設定

これにより、Flexboxやtext-alignが効かない複雑なテーマ構造であっても、物理的に「左の余白」を正確に確保することで、ボタンをど真ん中に配置できます。

注意点:ボタンの幅を調べること

この方法を使う唯一の注意点は、「自分のサイトのボタン幅(px)」を正確に入力することです。

Google Chromeなどのブラウザで「検証ツール」を使い、送信ボタンの width が何pxになっているかを確認し、コード内の 204px の部分をその数値に書き換えてください。

まとめ

  • 送信ボタンのズレは、横にあるスピナーが原因のことが多い。
  • 親要素の修正が難しい場合は、スピナーを消してボタンを直接操作する。
  • calc 関数を使えば、どんな環境でも強制的に中央揃えが可能。

「どうしてもCSSが効かない!」と諦めかけていた方は、ぜひこの「強制中央揃え」テクニックを試してみてください。

このサイトはテーマ「SWELL」を使っています

「SWELL」はWordpress初心者も慣れた人も使い続けられるテーマだと思います。

よかったらシェアお願いします!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

事業で使うサイトを企業に依頼し作成したものの、全く機能せず自分で作り直したのがきっかけでウェブの世界に飛び込む。
Wordpress、コーディング、マーケティングなどウェブlogにアウトプットすることで誰かの問題解決につながれば嬉しいです。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次