CSS(つづき)
前回のつづきです。スタイルシートを眺めてみます。
スタイル定義の確認
「sidebar」のスタイル定義を確認したところ、以下のとおり。
.sidebar { /* 表示位置を指定(topとleftの指定方法を決定) */ position: absolute; /* 上からの位置を指定 */ top: 1em; /* 左からの位置を指定 */ left: 0px; /* ボックスの横幅を指定 */ width: 24%; /* ボックスの外部の余白幅を指定 */ margin: 0px; /* ボックスの内部の余白幅を指定 */ padding: 0px; /* 文字の左寄せ右寄せ、センタリングを指定 */ text-align: left; /* ボックスの枠線プロパティの一括指定 */ border: none; }
「main」のスタイル定義を確認したところ、以下のとおり。
.main { /* ボックスの外部の余白幅を指定 */ margin: 0px 0px 0px 26%; /* ボックスの内部の余白幅を指定 */ padding: 0px; }
プロパティ「position」がポイントになりそう。値「absolute」の意味を調べたところ、以下のとおり。
絶対位置への配置となります。親ボックスにpositionプロパティのstatic以外の値が指定されている場合には、親ボックスの左上が基準位置となります。親ボックスにpositionプロパティのstatic以外の値が指定されていない場合には、ウィンドウ全体の左上が基準位置となります。
CSS : positionの「absolute」「relative」「fixed」のリファレンス | CSS Lecture
「sidebar」の親ボックスである「hatena-body」のスタイル定義を確認したところ、以下のとおり。
.hatena-body { /* 表示位置を指定(topとleftの指定方法を決定) */ position: relative; (snip) }
つまり、「sidebar」は、親ボックスである「hatena-body」の左上が基準位置となっている。
スタイル定義の変更
「sidebar」のスタイル定義を以下のとおり、オーバーライドします。
.sidebar { /* ボックスの横幅を指定 */ width: 24%; /* ボックスの外部の余白幅を指定 */ margin: 0px 0px 0px 78%; /* ボックスの内部の余白幅を指定 */ padding: 0px; /* 文字の左寄せ右寄せ、センタリングを指定 */ text-align: left; /* ボックスの枠線プロパティの一括指定 */ border: none; }
「main」のスタイル定義を以下のとおり、オーバーライドします。
.main { /* 表示位置を指定(topとleftの指定方法を決定) */ position: absolute; /* 上からの位置を指定 */ top: 1em; /* 左からの位置を指定 */ left: 0px; /* ボックスの横幅を指定 */ width: 76%; /* ボックスの外部の余白幅を指定 */ margin: 0px; /* ボックスの内部の余白幅を指定 */ padding: 0px; }
設定の仕方は簡単。管理ツールトップ > 詳細デザイン設定で、スタイルシートのテキストエリアに貼り付けるだけ。以下のとおり反映されるので、上から順番にブラウザが解釈してくれる。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> (snip) <link rel="stylesheet" href="/css/base.css" type="text/css" media="all"> <link rel="stylesheet" href="/css/headerstyle_wh.css" type="text/css" media="all"> <link rel="stylesheet" href="/theme/memo/memo.css" type="text/css" media="all"> (snip) <style type="text/css"> <!-- .sidebar { /* ボックスの横幅を指定 */ width: 24%; /* ボックスの外部の余白幅を指定 */ margin: 0px 0px 0px 78%; /* ボックスの内部の余白幅を指定 */ padding: 0px; /* 文字の左寄せ右寄せ、センタリングを指定 */ text-align: left; /* ボックスの枠線プロパティの一括指定 */ border: none; } .main { /* 表示位置を指定(topとleftの指定方法を決定) */ position: absolute; /* 上からの位置を指定 */ top: 1em; /* 左からの位置を指定 */ left: 0px; /* ボックスの横幅を指定 */ width: 76%; /* ボックスの外部の余白幅を指定 */ margin: 0px; /* ボックスの内部の余白幅を指定 */ padding: 0px; } --> </style> (snip)