TopMovable Typeテンプレート > サイドバーの背景を最後まで表示する
2005年8月 1日

サイドバーの背景を最後まで表示する

Posted at August 1,2005 11:50 PM
Category:[テンプレート]
Tag:[, , , ]
修正前

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;

とすれば右寄りに画像が配置されます(間違ってたらすいません)。

修正後以上です。これで左のようにページの最後まできれいに表示されます。
Posted by yujiro
関連記事
人気エントリー
トラックバックURL


コメント

yujiroさん、ありがとうございました。
視覚の問題は解決できますね。
でも実質、サイドバーは短いままということしか
できないと言うことですね。
何か、空白のコンテンツを作り、のばすことを考えてみます。
本当にありがとうございました。
使わせて頂きます。

[1] Posted by まいこ : August 2, 2005 1:00 PM

>まいこさん
こんにちは。
コメントありがとうございます。
ご質問の解釈を間違っていたようで、申し訳ありません。

サイドバーの 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 は含まれないようです。
また上記のスクリプトは提案レベルですので動作を保証するものではございません。

以上です。
それではよろしくお願い致します。

[2] Posted by yujiro : August 2, 2005 2:30 PM
コメントする

*必須



お知らせ:2008年5月現在、多忙のため、7月頃までコメントを速やかに回答できない状態が続きます。ご質問の内容によっては回答が7月以降になる可能性がありますので、予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Entries of this Category
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
BlogPeople
Now loading...
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.1
 
List Me!