webデザイン・コーディングに役立つ情報、WordPressカスタムに使えるHTML・CSSコピペ用コード、Canva無料テンプレートなどをご紹介します♩

chiweblogちいウェブログ

Contact Form 7のラジオボタンカスタム

Contact Forms 7のラジオボタンカスタマイズ
この記事を書いている人
Marie

Marie

  • フリーランスwebデザイナー&講師
  • 2児ママ
  • 制作会社・インハウスデザイナーを経験し独立
  • オンラインwebデザイン教室ちいウェブ運営
  • 仕事の合間の息抜きに植物を育てています♡
  • スプラ・DIY・将棋がすき

先日ラジオボタンのカスタムについての記事をUPしました。

私はWPサイトのお問い合わせフォームには、プラグインContact Form 7を利用することが多いです。

今回はContact Form 7の場合のCSSコードを紹介したいと思います。

コードの紹介

プラグインを利用すると、自動でHTMLが作成されますよね。

自動で用意されているclassを利用します。

HTML

Contact Form 7のラジオボタンで作成されるHTMLをフォーマットしたものがこちらです。

<p>
 <span class="wpcf7-form-control-wrap" data-name="radio-title">

   <span class="wpcf7-form-control wpcf7-radio" id="title-option">
     
     <span class="wpcf7-list-item first">
       <label>
         <input type="radio" name="radio-title" value="ホームページ制作について" checked="checked">
         <span class="wpcf7-list-item-label">ホームページ制作について</span>
       </label>
     </span>

     <span class="wpcf7-list-item">
       <label>
         <input type="radio" name="radio-title" value="ブログ制作について">
         <span class="wpcf7-list-item-label">ブログ制作について</span>
       </label>
     </span>

     <span class="wpcf7-list-item last">
       <label>
         <input type="radio" name="radio-title" value="お問い合わせ・ご相談">
         <span class="wpcf7-list-item-label">お問い合わせ・ご相談</span>
       </label>
     </span>
     
   </span>
   
 </span>
</p>

このコードから、.wpcf7-radio labelを使用してCSSを追加します。

CSS

wpcf7-radio inputで元々のラジオボタンを見えないようにします。

コードの解説についてはこちらをご覧ください。

.wpcf7-radio label {
	position: relative;
	cursor: pointer;
	padding: 5px 5px 5px 33px;
	display: block;
}

.wpcf7-radio label::before,
.wpcf7-radio label::after {
	content: "";
	display: block; 
	border-radius: 50%;
	position: absolute;
	transform: translateY(-50%);
	top: 50%;
}

.wpcf7-radio label::before {
	background-color: #fff;
	border: 1px solid #ddd;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	left: 5px;
}

.wpcf7-radio label::after {
	border-radius: 50%;
	background-image: url(flower-purple.png);
	background-size: 100%;
	background-position: no-repeat;
	opacity: 0;
	width: 29px;
	height: 29px;
	left: 3px;
}

.wpcf7-radio .wpcf7-list-item label:has( input:checked)::after {
	opacity: 1;
}

.wpcf7-radio input[type="radio"] {
	position: absolute;
	white-space: nowrap;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
}

チェック時の状態を画像ではなく円にしたい場合は、.wpcf7-radio label::afterの中を編集してください。

参考コードはこちらにあります→チェック時の画像を変更する場合

HTMLが異なる場合

HTMLが紹介したものと異なる場合も、理屈がわかっていれば簡単です。

セレクタの書き換えでうまくカスタムできると思います。

  • 元々のボタンを非表示
  • before&afterで、チェック前、チェック後のボタンを作成
  • after(チェック後)をopacity: 0
  • チェックするとafterを表示(opacity: 1)

classに注意して指定してあげてください。

いいなと思ったら
TAPしてね♡↓

コメントする

CAPTCHA


コメントは承認後に表示されます。

Home Webデザイン コーディング コピペ用コード Contact Form 7のラジオボタンカスタム

関連記事

更新通知を受け取る

不定期更新の為、更新お知らせを受け取りたい方は
ご登録ください^^

更新通知以外のメールは
お送りしませんのでご安心ください。