サイドバーの背景を最後まで表示する
Category:[テンプレート]
Tag:[Background, Customize, MovableType, Template]
float 指定のマルチカラムテンプレートのデザインで困るのは、サイドバーに背景色を与えた場合、サイドバーの内容が本文(中央カラム)の表示より短くなった場合、背景色がそこで途切れてしまうことです。 例えば、本サイトの公開テンプレート(2カラム・右にサイドバー表示)のCSSの右サイドバーに背景色(ピンク)を追加してみます。 |
/* 右カラム */
#links-right{
float: left;
background-color: pink;
width : 155px ;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
}
この設定例で、サイドバーの表示が本文より短い場合、最初の画像のように指定した背景が途中までしか表示されません。
ということで、ページの最後までサイドバーの背景色を表示するカスタマイズ方法です。
1.画像を用意する
次のような画像を用意します。これは中央カラム(白)およびサイドバーの背景(ピンク)となるものです。サンプルのテンプレートは横幅が700pxですので、長さ700pxにしています(サンプルは縮小表示していますのでクリックして実物を確認してください)。
この画像の作り方はかなりいい加減で、まず先の表示されたブラウザをキャプチャソフト(フリーで色々あると思います)でキャプチャして、その一部分を切り抜いたものです。
2.画像のアップロード
作成した画像を images ディレクトリ等にアップロードします。ここでは back.jpg としています。
3.スタイルシート修正
styles-site.css を下記のように修正します。公開テンプレートでは中央カラムにボーダーを表示していますが今回の例では削除して、画像の線を使っています(無理に罫線を入れる必要はありませんが)。また冒頭に書いた links-right の background-color は不要です。
/* 3カラム全体 */
#box {
margin-right: auto;
margin-left: auto;
text-align: left;
padding: 0px;
padding-bottom: 20px;
width: 700px;
border-bottom: 1px solid #666699;
border-left: 1px solid #666699;
border-right: 1px solid #666699;
background-color: #FFFFFF;
background: url(images/back.jpg) repeat-y;
}
:
/* エントリーのある大段落(3カラム) */
#content {
float: left;
width: 514px;
border-bottom: 1px solid #666699;
/* border-left: 1px solid #666699;*/
border-right: 1px solid #666699;
margin-top : 0px ;
margin-bottom : 10px ;
}
画像は横幅いっぱいのものでなくても大丈夫だと思います。例えばサイドバーの幅の
画像を作って #box に
background: #ffffff url(images/back.jpg) repeat-y top right;
とすれば右寄りに画像が配置されます(間違ってたらすいません)。
- Movable Type 4.1 テンプレートセット(スタイル対応版)
- Movable Type でコメント用 RSS フィードを出力する
- 小粋空間テンプレートセットのカラムレイアウト変更方法
- Movable Type 4.1 テンプレートセット
- FC2ブログの個別記事ページで前後記事のリンクを表示する
- Movable Type 4.1 の「ブログのテンプレートを初期化」について
- テンプレートのタグを探す方法
- Movable Type 4 配布テンプレート不具合のお知らせ
- livedoor テンプレート不具合のお知らせ(前後ページへのリンク追加)
- 配布テンプレートのサイドバーにリストを追加する
- サイドバーに Google Adsense を貼り付ける
- テンプレート不具合のお知らせ(カレンダーリンクの改善) for livedoor ブログ
- アメーバブログ スキン設定方法
- アメーバブログ スキン
- Movable Type 4 公開テンプレート設定方法
- Movable Type 4 テンプレート不具合と修正のお知らせ
- Movable Type 4 テンプレート配布再開
- XHTML 1.0 Strict 版テンプレートをカスタマイズする場合の注意事項
- Movable Type 4 テンプレート
- 3カラムレイアウトで中央カラムを(X)HTMLの最初に記述する
yujiroさん、ありがとうございました。
視覚の問題は解決できますね。
でも実質、サイドバーは短いままということしか
できないと言うことですね。
何か、空白のコンテンツを作り、のばすことを考えてみます。
本当にありがとうございました。
使わせて頂きます。
>まいこさん
こんにちは。
コメントありがとうございます。
ご質問の解釈を間違っていたようで、申し訳ありません。
サイドバーの height プロパティ値に content の高さを適用されたいということであれば、次の JavaScript を各テンプレートの最後の方に挿入されてはいかがでしょうか。
<script type="text/javascript"> h = document.getElementById('content').clientHeight; document.getElementById('links-left').style.height = h + 'px'; </script>
なお、clientHeight には margin / border / padding は含まれないようです。
また上記のスクリプトは提案レベルですので動作を保証するものではございません。
以上です。
それではよろしくお願い致します。

