Googleサイト内検索のデザインをカスタムした。
先日Google検索の埋め込み方についての記事を掲載いたしました。
埋め込むだけならば、「Googleサイト内検索」から設定すればそれなりにできます。
そこで今回は「Googleサイト内検索のデザインを変更します」
ある程度のデザインは、Google管理画面からできますが、がっつり変更はできません。
何とかできないかとググり、試行錯誤して思う形にできました。
忘備録として記録いたします。
やりたいことはこのような感じです。
埋め込み型Google標準フォームを次のようにデザイン変更します。
見た目が変わると印象も変わります。
サイト内検索もデザインを変えられれば、サイトに同化します。
論より証拠。完成したものがこちら
Google埋め込み検索は、タグ等が表示されないためデザイン変更ができなさそうですが、存在しているCSSならば、値を変更することができます。
検索すると、google検索が動きます。
デザイン変更はCSSの「上書き」で実現
Google埋め込み検索はタグもスタイルシートもグーグル側にあります。
そのため、タグの変更はできません。
そこで、使われているCSSの値を上書きしてデザイン変更を実現しています。
正直使われているCSSを調べるのに苦労しました。
何しろタグ表示されません。
根性でググって使用されているスタイルシートをしらべ、上書きしてゆきました。
ソースはこちら
今回のソースはこちらです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
<!doctype html> <html> <head> <meta charset="shift_jis"> <title>Goolge検索窓</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style type="text/css"> section { max-width: 400px; margin-right: auto; margin-left: auto; border: 1px solid #CCC; padding-top: 10px; padding-right: 30px; padding-bottom: 30px; padding-left: 30px; } /** 外枠に色を付けて角丸にする */ .gsc-control-cse { margin: 0px !important; padding: 0px !important; border: 2px solid #00a0e9 !important; border-radius: 30px; -webkit-border-radius: 30px; -moz-border-radius: 30px; } /** 外枠内側のマージンを0にする */ .gsc-search-box { margin: 0px !important; } /** キーワード入力部分のボーダーを消し、角丸にする */ .gsc-input-box { border: none !important; border-radius: 30px !important; -webkit-border-radius: 30px !important; -moz-border-radius: 30px !important; } /** キーワード入力部分の左側に20ピクセル余白を入れる */ .gsib_a { padding-left: 20px !important; } /** 検索ボタンを無色透明にし、線を消す */ .gsc-search-button-v2 { margin: 0px !important; padding-top: 12px !important; padding-bottom: 13px !important; padding-right: 14px !important; padding-left: 14px !important; background-color: transparent !important; color: #4990c8 !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; cursor:pointer; } /** 検索ボタンのアイコンの色と大きさを設定 */ .gsc-search-button-v2 svg { fill: #00a0e9!important; width: 20px; height: 20px; } /** placeholderの色設定 */ input:placeholder-shown { color: #bababa; } /* Google Chrome, Safari, Opera 15+, Android, iOS */ input::-webkit-input-placeholder { color: #bababa; } /* Firefox 18- */ input:-moz-placeholder { color: #bababa; opacity: 1; } /* Firefox 19+ */ input::-moz-placeholder { color: #bababa; opacity: 1; } /* IE 10+ */ input:-ms-input-placeholder { color: #bababa !important; } </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> window.onload = function(){ $("section input").attr("placeholder", "サイト内検索");}; </script> </head> <body> <section> <p>検索窓</p> <script async src="https://cse.google.com/cse.js?cx=007203045052954645008:x7qmpxaibau"></script> <div class="gcse-search"></div> </section> </body> </html> |
!important 記述が多いのは、強制上書きしなければならない部分が多いためです。
全体を見ると、何をやっているのかさっぱりわからないので、部分的に見ていきます。
結構力業のやり方になります。
具体的なデザイン変更の方法解説
それでは、具体的な方法について解説いたします。
今回デザインを変更するのは大きく以下の3つになります。
- 外枠のデザイン変更(角丸で青線)
- キーワード入力部分のデザイン変更(枠を消して角丸)
- ボタンデザインの変更(背景を消す)
(1)外枠のデザインを変更します。
外枠を角丸にして青色にします。
キーワード入力欄と、ボタンがひとくくりになるとかっこいいです。
■CSSの記述はこちらです。
1 2 3 4 5 6 7 8 9 10 11 12 |
/** 外枠に色を付けて角丸にする */ .gsc-control-cse { margin: 0px !important; padding: 0px !important; border: 2px solid #00a0e9 !important; border-radius: 30px; -webkit-border-radius: 30px; -moz-border-radius: 30px; } |
.gsc-control-cse は外枠のスタイルシートです。
この部分を書き換えると、以下のようになります。
いろいろはみ出ていますが、外枠は青色線、角丸になりました。
下の部分に隙間があるのが気になるので、隙間をなしにします。
(2)不要な隙間を消す
キーワード入力部分を囲っているスタイルシートがあるので、マージンを0にします。
■CSSの記述はこちらです。
1 2 3 4 5 6 |
/** 外枠内側のマージンを0にする */ .gsc-search-box { margin: 0px !important; } |
これを適用するとこのような表示になります。
隙間がなくなりぴったりはまりました。
外枠部分の調整は以上になります。
次は、キーワード入力部分を調整します。
線が邪魔なのと、せっかくの青色の外枠からはみ出ているので何とかします。
(3)キーワード入力部分のデザインを変更する
キーワード入力部分が四角いので、角丸にして線を消します。
■CSSの記述はこちらです。
1 2 3 4 5 6 7 8 9 |
/** キーワード入力部分のボーダーを消し、角丸にする */ .gsc-input-box { border: none !important; border-radius: 30px !important; -webkit-border-radius: 30px !important; -moz-border-radius: 30px !important; } |
これを適用するとこのように表示されます。
だいぶそれらしくなってきました。
ただ外枠を角丸にした分、キーワード入力部分が左に寄っているように見えるので、右へずらします。
(4)キーワード入力部分を右へずらす
外枠の内側に.gsib_a というスタイルシートがあるので、これに左余白を設定します。
■CSSの記述はこちらです。
1 2 3 4 5 |
/** キーワード入力部分の左側に20ピクセル余白を入れる */ .gsib_a { padding-left: 20px !important; } |
このスタイルシートを適用すると、次のように表示されます。
これでキーワード入力部分の調整ができました。
次は、ボタンのデザインをカスタイマイズします。
(5)ボタンの枠線と背景を消す
ボタンをアイコンだけにするために、背景の灰色と枠線を消します。
■CSSの記述はこちらです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/** 検索ボタンを無色透明にし、線を消す */ .gsc-search-button-v2 { margin: 0px !important; padding-top: 12px !important; padding-bottom: 13px !important; padding-right: 14px !important; padding-left: 14px !important; background-color: transparent !important; color: #4990c8 !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; } |
.gsc-search-button-v2 はボタンのデザインを指定しているので、片っ端から色なし、線なしにしてゆきます。ついでに余白も調整します。
適用すると次のように表示されます。
全部消したので、真っ白になります。
ボタンは存在していますが見えないので、検索アイコンに色を付けます。
(6)検索アイコンに色を付ける
Googleの検索ボタンは、画像ではなく埋め込みSVGであるため、スタイルシートでの色変更ができます。埋め込み画像ならば詰んでいました・・。
■CSSの記述はこちらです。
1 2 3 4 5 6 7 8 |
/** 検索ボタンのアイコンの色と大きさを設定 */ .gsc-search-button-v2 svg { fill: #00a0e9!important; width: 20px; height: 20px; } |
このスタイルシートを適用すると、次のように表示されます。
ここまで来たら、ほぼ完成です。
あとは、デフォルト文字を指定します。
(7)「サイト内検索」の文字を埋め込む
検索窓に、デフォルト文字を入れれば、デザイン上完成といえます。
しかし、Google埋め込み検索はタグが表示されません。
そのため、「placeholder」を直接変更することができません。
そこで、Jqueryを使って間接的に設定します。
■CSSとスクリプトの記述はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/** placeholderの色設定 */ input:placeholder-shown { color: #bababa; } /* Google Chrome, Safari, Opera 15+, Android, iOS */ input::-webkit-input-placeholder { color: #bababa; } /* Firefox 18- */ input:-moz-placeholder { color: #bababa; opacity: 1; } /* Firefox 19+ */ input::-moz-placeholder { color: #bababa; opacity: 1; } /* IE 10+ */ input:-ms-input-placeholder { color: #bababa !important; } |
1 2 3 4 5 6 |
<!-- ■ placeholder をJqueryで設定する --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> window.onload = function(){ $("section input").attr("placeholder", "サイト内検索");}; </script> |
スタイルシートで指定しているのは、placeholderの色です。
デフォルトは黒味が強いので薄くします。
この部分はブラウザにより、指定方法が千差万別なので、たくさん記述します。
Jqueryは、attr()関数を使用します。
window.onloadにしているのは、Google埋め込み検索の読み込みが終わるのを待つためです。
これを適用すると、次のように表示されます。
これで意図したデザインになりました。
一見不可能ではないかとも思えましたが、何とかなるものです。
結論:やればできる
今回は外的要因が強く、直しても直しても意図した形になかなかできませんでした。
しかも、スマホで表示したら崩れたりなど、試行錯誤もたくさんしました。
なんどもくじけそうになりましたが、ググリ、ググリ、調整、調整、ググリを繰り返してようやくうまくできました。
何事も、辛抱強くトライすればできるものです。
本記事がまた皆様のお役に立てば幸いです。