FC2ブログ検索バーの仕様とデザイン・表示の変更方法
- 2011-03-21 月 23:57
- FC2ブログ
2011年3月10日からサーバごとに順次導入されています。ブログ検索バーは強制広告の類ではないため、ユーザ側で非表示にすることができます。利用中のテンプレートによってはスタイルシートなどを変更しないと、正常に表示されなかったり、レイアウトが崩れることがあるかもしれません。
FC2総合インフォメーション - 検索バーの導入のお知らせ / サンプル
- 主な仕様 : 表示非表示の方法と挿入されるコード
- デザインコード作成
- デザイン変更
- 検索の動作変更
・検索キーワードの初期値を空にする
・ウェブ検索も同じウインドウで開く
・ウェブ検索をGoogleに変更する
・検索バー内に指定したリンクを表示する - 不具合・デザインの崩れ
・テンプレートによっては検索バーのスタイルシートが読み込まれない(調整済み)
・背景やページ上部などのデザインが崩れる
・ウェブ全体の検索ページが正常に表示されない(修正済み)
・テンプレートや記事によっては複数挿入されることがある
・コメントアウト内に <body> を入れてはいけない - ページ先頭へのリンクのずれを直す
- 共有テンプレート作成の注意点
- 備考・更新履歴など
主な仕様 : 表示非表示の方法と挿入されるコード
設定は [環境設定の変更]→[ブログの設定]→[検索バーの設定] で行います。
デフォルトは「利用する」で、検索先の初期設定は「Web全体」です。
「利用する」にすると、すべてのページ上部に検索バーが表示されます(検索エリア未対応のFC2ブログテンプレート検索ページなどは除く)。テキストボックスの初期値には最近の人気キーワードが適当に入ります。
検索先の「このブログ内」は自分のブログ内を通常通り検索します(q=keyword)。
「Web全体」(ブログ上の表記は『ウェブ全体』)はFC2検索で検索します。結果は別ウインドウで表示されます。
FC2検索は上下に最大3つの広告が表示され、そのあいだに検索結果が表示されます。
Googleなどと同じように、頭に「-」をつけて特定のキーワードを除外したり、サイト内を検索することができます。さすがに広告のキーワードの除外まではできいないようです。
「blog -ameba」amebaを除外して検索
「blog site:blog.fc2.com」blog.fc2.com内を検索
- HTMLコード
-
検索バーのコードが挿入される個所は「
<body>
」直後です。<div id="sh_fc2blogheadbar"> <div class="sh_fc2blogheadbar_body"> <div id="sh_fc2blogheadbar_menu"> <a href="http://blog.fc2.com/" title="FC2ブログ"> <img src="https://blog-imgs-1.fc2.com/image/headbar/sh_fc2blogheadbar_logo.png" alt="FC2ブログ" /> </a> </div> <div id="sh_fc2blogheadbar_search"> <form name="barForm" method="get" action="" target="blank" onsubmit="if(this.range.options[0].selected == false) {this.action='http://search.fc2.com/';target='blank';} else {this.action='./';target='';}"> <input class="sh_fc2blogheadbar_searchform" type="text" name="q" value="沢尻会見" maxlength="30" onclick="this.style.color='#000000';" onfocus="this.select();" onblur="this.style.color='#999999'" /> <select class="sh_fc2blogheadbar_searchselect" name="range"> <option value="blog" >このブログ内</option> <option value="web" selected="selected">ウェブ全体</option> </select> <script> <!-- document.barForm.range.options[1].selected=true; --> </script> <input type="hidden" name="is_adult" value="false" /> <input type="hidden" name="s" value="y" /> <input type="hidden" name="charset" value="eucjp-win" /> <input class="sh_fc2blogheadbar_searchbtn" type="submit" value="検索" /> </form> </div> <div class="sh_fc2blogheadbar_link"> <a href="https://secure.id.fc2.com/bokin" title="東北地方太平洋沖地震の募金につきまして" target="_blank">東北地方太平洋沖地震の募金につきまして</a> </div> </div> </div> <div class="sh_fc2blogheadbar_clear"></div>
サーバ番号なしの新blogサーバ(blog.fc2.com)では、eucjp-winがutf-8になります。
テキストリンク部分(sh_fc2blogheadbar_link)については、震災により後から追加されたものなので、募金が終わると、何も表示されなくなるかもしれません。あるいはFC2の告知スペースになるのかもしれません。
- スタイルシート
-
外部ファイルです。挿入箇所は「
</head>
」直前です。現在 : http://blog-imgs-1.fc2.com/css/common/headbar/110315style.css
初期 : http://blog-imgs-1.fc2.com/css/common/headbar/style.cssスタイルシートも募金の告知以降は110315style.cssに変更されています。サーバ番号なしの新サーバ(blog.fc2.com)では呼び出すファイルが異なるかもしれません。
<link href="https://blog-imgs-1.fc2.com/css/common/headbar/110315style.css" rel="stylesheet" type="text/css" media="all" /></head>
直前のため、テンプレートで使用しているスタイルシートよりも後に挿入されることに注意します。例えば、同じスタイルのセレクタをテンプレートで指定しても、後に挿入された外部ファイルのスタイルが優先されます。
#sh_fc2blogheadbar .sh_fc2blogheadbar_body { height: 30px; }
とテンプレートで指定しても検索バーの高さは26pxのまま変わりません。
body #sh_fc2blogheadbar .sh_fc2blogheadbar_body { height: 30px; }
とするなどして優先順位をあげる必要があります。末尾に
height: 30px !important;
をつけると確実です。
デザインコード作成
▲生成されたコードをスタイルシート欄に貼り付けます。
[OK]ボタンは押さなくても反映されます。値は半角入力です。色の値は16進数[0-9a-f]の3桁か6桁です。「□未対応」はグラデーションをサポートしていないブラウザで見たときの確認です。「グラデ無背景色」で指定した色が反映されます。
検索選択を表示しないにすると、管理画面の[検索先の初期設定]で指定した検索に限定されます。
文字サイズなどの個別のスタイルについては、デザイン変更をご覧ください。IEでセレクトボックスの線の色を変えるときはdocumentModeの変更を。
デザイン変更
必要なコードをテンプレートのスタイルシート欄に追加します。まとめてデザインを指定する場合は、デザインコードを作成してください。
- 文字サイズの変更
-
最初の 11px がテキスト(リンク)の文字サイズで、後の 11px はフォーム内(テキストボックスなど)の文字サイズです。
#sh_fc2blogheadbar { font-size: 11px !important; } #sh_fc2blogheadbar input, #sh_fc2blogheadbar select { font-size: 11px !important; }
- フォントの変更
-
#sh_fc2blogheadbar * {
font-family: 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'MS Pゴシック',sans-serif !important;
}!important を使いたくないとき。
#sh_fc2blogheadbar,
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchform,
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchselect,
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchbtn {
font-family: 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ',Meiryo,'MS Pゴシック',sans-serif;
} - 検索バーの高さを変更する
-
html { top: 30px !important; } .sh_fc2blogheadbar_body { height: 30px !important; } html body { margin-top: 30px\9; background-position-y: 30px; }
- 最小の横幅を変更する
-
body #sh_fc2blogheadbar { min-width: 700px; }
- FC2のロゴを非表示にする
-
#sh_fc2blogheadbar_menu {display: none;}
- FC2の告知テキストリンクを非表示にする
-
.sh_fc2blogheadbar_link {display: none;}
- 検索のセレクトボックスを非表示にする
-
#sh_fc2blogheadbar select {display: none;}
- 全体の下線と背景を変更する
-
body #sh_fc2blogheadbar { border-bottom: 1px #dddddd solid; background: #f6f6f6 !important; }
背景を画像にする。
body #sh_fc2blogheadbar { border-bottom: 1px #dddddd solid; background: #f6f6f6 url(画像アドレス) left top repeat !important; }
- テキストボックスのスタイルを変更
-
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchform { プロパティを指定 }
2pxの余白をつけて、入力欄を広げる。
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchform { padding: 2px; }
クリック時などに文字色を変更しない場合は color に !important をつける。
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchform { color: #000000 !important; }
- セレクトボックスのスタイルを変更
-
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchselect { プロパティを指定 }
IEでも線の色を変更するときは、使用しているテンプレートHTMLの
<head>
の直後に以下を追加。documentModeを8以上にします。利用しているテンプレートによってはデザインに影響がでる可能性があります。FC2ブログは2010年5月末からレスポンスヘッダでIE=EmulateIE7を指定しています。<head> <meta http-equiv="X-UA-Compatible" content="IE=8" />
- ボタンのスタイルを変更
-
body #sh_fc2blogheadbar #sh_fc2blogheadbar_search .sh_fc2blogheadbar_searchbtn { プロパティを指定 }
検索の動作変更
[OK]ボタンは押さなくても反映されます。生成されたコードは利用しているテンプレートHTMLの <body>内 の適当な位置に追加します。あるいは、どのページでも表示しているプラグイン(最新記事など)のHTMLに貼り付けます。
[例]
<body> ←
← </body>
テンプレートを頻繁に変更したり、コードを追加するのが面倒な場合は、プラグインのHTML内に貼り付けると楽です。大抵のテンプレートで使用されていると思われるプラグイン1に属するプラグインを推奨します。
自分のブログのHOMEリンクを表示するときは [URL] に「./
」、[テキスト] に「HOME
」を入れて、同じウインドウで開くをチェックします。
リンクの位置は生成されたコードの下から4行目あたりにある次の箇所を変更します。5pxが上部からの距離で、120pxが左からの距離です。
a.style.top='5px';a.style.left='120px';
FC2のロゴやテキスト(リンク)を非表示にするときは、デザイン変更やデザインコード作成より、非表示にするコードをスタイルシートに追加してください。
外部ファイルを利用する場合は、<!-- --> 内のコードをコピーして、jsファイルに保存します。ファイルを設置する場所は、head要素内ではなく、body要素内です。
不具合・デザインの崩れ
細かなデザインの崩れについては、個別の内容になるため、省きます。
- 背景やページ上部などのデザインが崩れる
- テンプレートや記事によっては複数挿入されることがある
- コメントアウト内に
<body>
を入れてはいけない - テンプレートによっては検索バーのスタイルシートが読み込まれない(調整済み)
- ウェブ全体の検索ページが正常に表示されない(修正済み)
- テンプレートによっては検索バーのスタイルシートが読み込まれない
-
この不具合は2011年3月24日に調整を確認しています。現在は大文字でも挿入されます
テンプレートHTMLを
</HEAD>
で保存しても、実際に出力されるときには、</head>
に置換されます。これにより、スタイルシートが挿入されるようになりました。ただし、開始タグ
<HEAD>
については置換されず、そのまま表示されます。
</head>
がないとスタイルシートは読み込まれません。これはすべて小文字の場合に限定されます。headの一部またはすべてが大文字になっているテンプレートでは出力されません。<link href="https://blog-imgs-1.fc2.com/css/common/headbar/110315style.css" rel="stylesheet" type="text/css" media="all" />
</head></HEAD>
大文字が使われている場合は
</head>
に変更する必要があります。 - 背景やページ上部などのデザインが崩れる
-
背景の表示がおかしい場合は、テンプレートのスタイルシートで指定している背景に !important をつけるなどします。
body { background: url(画像) right bottom !important; } body { background-image: url(画像); background-position: right bottom !important; }
html { background: url(画像) !important; } html { background: #000000 !important; }
IEでページ上部が変に重なっているときは、検索バーの高さを加えた次のようなコードをスタイルシートに追加すると、どうにかなるかもしれません。数値は適宜変更してください。marginの方は使えないかもしれません。細かな点はテンプレートを見てみないとわかりません。
html body { padding-top: 27px\9; }
html body { margin-top: 50px\9; background-position-y: 50px; }
- ウェブ全体の検索ページが正常に表示されない
-
この不具合は2011年3月24日に修正を確認しています。現在は正常に表示されます
検索キーワードの末尾に半角・全角スペースがあると、FC2のスポンサー広告が文字化けします。
スペースの後に「/」があると、検索キーワードによってはb要素のネストが壊れます。
スペースの後に「\」があると、ページが完全に壊れます。
- テンプレートや記事によっては複数挿入されることがある
-
検索バーのコードは
</head>
と<body>
に反応して挿入されるため、複数ある場合は複数挿入されます(adsensec.jsが挿入されると同様)。ただし、複数あるbody要素については記述箇所やclass、id属性などの有無によって、挿入されない場合もあります。</head> <!-- </head> <body> --> <body>
<link href="https://blog-imgs-1.fc2.com/css/common/headbar/110315style.css" rel="stylesheet" type="text/css" media="all" /> </head> <!-- <link href="https://blog-imgs-1.fc2.com/css/common/headbar/110315style.css" rel="stylesheet" type="text/css" media="all" /></head> <body><div id="sh_fc2blogheadbar"> (略) </div> <div class="sh_fc2blogheadbar_clear"></div> --> <body><div id="sh_fc2blogheadbar"> (略) </div> <div class="sh_fc2blogheadbar_clear"></div>
記事内に
</head>
と</body>
を投稿しても同様に挿入されます。例えば、迂闊にもtextarea内にエスケープしていない要素を入れると次のようになります。【記事を投稿】
以下をコピーしてください。 <textarea> <html> <head> <title>hoge</title> </head> <body> 配布テンプレート </body> </html> </textarea>
【記事の表示】
以下をコピーしてください。
</head>
を</head>
<body>
を<body>
とすることで挿入を防ぎます。【記事を投稿】
以下をコピーしてください。 <textarea> <html> <head> <title>hoge</title> </head> <body> 配布テンプレート </body> </html> </textarea>
【記事の表示】
以下をコピーしてください。
- コメントアウト内に
<body>
を入れてはいけない -
<body>
の直後に出力されるコードには、コメントアウトを内包するscript要素が含まれています。したがって、コメントアウト内に<body>
があると、コメントアウト内にコメントアウトが含まれることになります。<!-- コメントアウト <body> <div id="sh_fc2blogheadbar"> (略) <script> <!-- document.barForm.range.options[1].selected=true; --> </script> (略) </div> <div class="sh_fc2blogheadbar_clear"></div> ここまで -->
IEの場合は、最初の
-->
がコメントの終わりと判断され、</script>
以降のコード(ここまで-->など)が表示されてしまいます。div要素の閉じタグも出力されるので、テンプレートのレイアウトも崩れます。<body>
をコメントアウトするときは、「<」を削ったり、改行したりします。<!-- コメントアウト body class="hoge"> ここまで -->
<!-- コメントアウト < body> ここまで -->
ページ先頭へのリンクのずれを直す
ページ先頭へのリンクに onclick属性「onclick="scrollTo(0,0);return false;"
」をつけるなどします。
<a href="#top" onclick="scrollTo(0,0);return false;">ページ先頭へ</a> <a href="#pagetop" onclick="scrollTo(0,0);return false;">Pagetop</a>
公式テンプレートの場合は、テンプレートHTMLを「<%template_go_top>
」で検索するとページ先頭リンクを見つけることができます。
<a href="#header" title="<%template_go_top>"><%template_go_top></a>
<a href="#header" title="<%template_go_top>" onclick="scrollTo(0,0);return false;"><%template_go_top></a>
onkeypressもつけるときは、
<a href="#pagetop" onclick="scrollTo(0,0);return false;" onkeypress="this.onclick();">Pagetop</a>
共有テンプレートの注意点
検索バーを利用すると、以下のスタイルが適用されます。
* html { background: url(null) fixed; } html { position: relative; top: 27px; } body { position: relative; } /* for all IE only */ html { position: static\9; } body { margin-top: 27px\9; background-position-y: 27px; }
IEでbody要素に背景画像があり、縦位置に「top」以外の「bottom」「center」「30%」などを指定しても、検索バーの「background-position-y: 27px;
」が優先されます。
/* テンプレートのスタイルシート */ body { background-image: url(画像); background-position: right bottom; }
/* 検索バーのスタイルシートで上書きされる */ body { background-position-y: 27px; }
/* position 適用結果 */ background-position: right 27px;
一括で指定している場合も同様です。
/* テンプレートのスタイルシート */ body { background: url(画像) right bottom; }
/* 検索バーのスタイルシートで上書きされる */ background: url(画像) right 27px;
これを回避するには「body」の前に「html 」をつけたり、末尾に「 !important」を付加します。
/* テンプレートのスタイルシート */ html body { background-image: url(画像); background-position: right bottom; }
/* テンプレートのスタイルシート */ html body { background: url(画像) right bottom; }
/* テンプレートのスタイルシート */ body { background-image: url(画像); background-position: right bottom !important; }
/* テンプレートのスタイルシート */ body { background: url(画像) right bottom !important; }
- 検索バーを非表示にする
-
サイドバーに検索プラグインやGoogleカスタマイズ検索などのフォームを設置しているブログがほとんどなので、テンプレート側で検索バーを非表示にしてしまうのもいいかもしれません。
html { background: none !important; position: static !important; } html body { margin-top: 0; position: static; } #sh_fc2blogheadbar { display: none; }
bodyがrelativeの場合は「
position: relative;
」にします。marginが指定されているときは、margin-topの値も変更します。 - IE6向け
-
html に背景画像を指定してあり、IE6でも正常に背景画像を表示するには「 !important」を付加します。
/* テンプレートのスタイルシート */ html { background-image: url(画像) !important; }
html { background: url(画像) left top !important; }
IE6をサポートし続けても仕方がないので、IE6では検索バーを表示しないようにしてもいいと思います。
* html body { margin-top: 0; } * html body #sh_fc2blogheadbar { display: none; top: 0; }
body にmarginが指定してるテンプレートの場合は 上記margin-top に同じ値を入れるか、元からあるプロパティの値に「!important」を付加します。
body { margin: 15px 0 30px !important; }
備考・更新履歴など
3月20日時点でblog60サーバまで実装されています。番号ありのサーバについては、今月中に実装完了しそうなペースです。
ご利用は自己責任でお願いします。コード作成はずっとテストバージョンです。
「テンプレートのカスタマイズに関することはサポート対象外です」の回答を受けそうですが、左のロゴを消したりするのは規約違反かは念のため確認中です。検索バー自体、非表示にできるので、たぶん問題ないと思います。できなかったら、自分で設置するだけです。
環境設定から利用せずに、ロゴの部分にブログタイトル画像を入れるなどした検索バーのコード(HTML+CSS)をテンプレートに直接張り付ければ、もう少し簡単に動作やデザインの変更などができると思います。ロゴのリンクは設置ブログのトップページにして欲しいところです。
- 2011 03-24 - 検索バーのスタイルシートが挿入されない不具合と「ウェブ全体」の検索ページが正常に表示されない不具合が調整されました。
- comment
コメント
トラックバック
https://paro2day.blog.fc2.com/tb.php/681-f79048d4
- trackback