大和但馬屋日記

はてなダイアリーからの移行中

CSS再構築(その五) サイドバーをつけてみる

さて、昨日の続き。昨日付の分で、日記本体の基本的な部分はだいたい望む通りになつた。コメント欄とか脚注とか、その他にも弄るべき点は色々あるけれど後回しにして、下の方にズラッと並んでゐる項目を何とかしたい。
その前に確認しておかう。下の方に並んだ「カレンダー」「話題別インデックス」「テンポラリ」といつた見出しは、これもh2要素でマークアップされてゐる。それぞれの項目も、見出しに対応した本文として記述されてゐる。HTML文書の構造としては極めてシンプルだ。
日記本体部分は昨日も書いた通り、はてなダイアリーによつて"main"といふクラス名のdivで大きく括られてゐる。それより前の部分は設定画面の「ページのヘッダ」、後ろの部分は「ページのフッタ」に書いた内容が反映される。ここでは、フッタに書いた内容をまとめてサイドバーとして表現したい。
そこで、フッタ部分を大きくdiv要素で括る。クラス名は、横にあるのに"footer"では変だし、かといつてスタイルの設定次第で横にあるとも限らないから"sidebar"も不適切だし*1、一度ならず困つたところである。で、結局"infobar"とした。色々とアレな名付け方だが許せ。
で、兎にも角にもdiv.mainとdiv.infobarが横に並ぶ様にしたいといふわけである。そのために、両方のdivにテキストの回り込みの設定をしてやる。

div.main { 
    width:80% ; /* 日記本体の横幅を全体の80%に */
    margin-left:1em ; /* 左側に一文字分の余白 */
    float:left ; /* 左側に配置して回り込み設定 */
    }
 
div.infobar { 
    font-size:80% ; /* フォントのサイズを80%に */
    color:#cccccc ; /* 文字色 */
    background-color:#000 ; /* 背景色 */
    width:17% ; /* サイドバー部分の横幅を全体の17%に */
    margin-right:1em ; /* 右側に一文字分の余白 */
    padding:0.2em ; /* 内側の余白設定 */
    border:1px #ffffff solid ; /* 枠線の設定 */
    float:right ; /* 右側に配置して回り込み設定 */
    }

サンプル文書6。ワハハ、これはひどい。ただ「サイドバーが付きました」以上のものではないな。しかも、ちゃんとサイドバーとして表示されてゐるのはOperaだけときたもんだ。MozillaNetscapeもInternetExplorerもダメである。widthを%指定しておきながら、余白をemで指定してゐる様ではきちんと表示される方が不思議なのだ。
ここからは試行錯誤あるのみ。理屈だけで上手くいくならWEBデザイナーの方々も苦労なんかしないのだ。苦労させないでくれよう。
‥‥しばらく試行錯誤を繰返し、なんとか落着いた。

div.main { 
    width:78% ; /* 日記本体の横幅を全体の78%に */
    margin-left:1% ; /* 左側に1%の余白 */
    padding:0 ; /* 内側の余白設定 */
    float:left ; /* 左側に配置して回り込み設定 */
    }
 
div.infobar { 
    font-size:100% ; /* フォントのサイズを100%に */
    color:#cccccc ; /* 文字色 */
    background-color:#000 ; /* 背景色 */
    width:18% ; /* サイドバー部分の横幅を全体の18%に */
    margin-right:1% ; /* 右側に1%の余白 */
    padding:0.2em ; /* 内側の余白設定 */
    border:1px #ffffff solid ; /* 枠線の設定 */
    float:right ; /* 右側に配置して回り込み設定 */
    }

marginも%指定にして、widthの値をすべて合計しても100%に満たない様にすれば問題なく収まつた。もしかしたら「最初から問題ないぢやないか」と思はれた方もゐるかもしれないが、私の閲覧してゐる環境は少々特殊である。タブレットPCのたて画面モードを常用してゐるため、画面の横幅は768ピクセルWEBブラウザを最大化してもウインドウの横幅は700ピクセルがいいところで、かういふ状態でサイドバー表示をしようとすると結構設定がタイトになつてしまふのだ。ともあれなんとか収まつたので、サイドバーの中身に取り掛からう。サンプル文書7

*1:はてなダイアリーのテーマを利用したければsidebarと名付ければよい