ここでは、下の例のように行頭位置を左に揃えた上で、ブラウザの中央に行を配置する方法について説明します。
このように配置させるcssとhtmlの記述例はこのページの下にあるので参照してください。
また行頭位置を左に揃えた上で、ブラウザの右に行を配置することもできます。
このように配置させるcssとhtmlの記述例はこのページの下にあるので参照してください。
別ページで説明したmargin-left、margin-rightを利用して
を指定すると、ブロックは中央に配置されます。
ただしこの方法ではブロックの横幅=ブラウザの幅−左右余白になるので、閲覧側がみているブラウザの幅によっては
言いかえると、意図しているレイアウトとはずれが出てくる可能性があります。
下のブロックには背景色をつけています。ブラウザの幅を変えてブロックと各行の見え方の変化を確認してみてください。
ブロック左右の余白を同じ値に指定
→ブロックがブラウザの中央に配置されています。
このブロックで指定しているcssは以下の通りです。
p { margin-left: 200px; margin-right: 200px; background-color: yellow; }
宣言内容は左から右余白(200ピクセル)、左余白(200ピクセル)、背景色(黄)になっています。
行の位置をブラウザの中央に寄せるには、普通中央揃えを利用します。
この場合はブロックの幅(この場合はブロック内で一番長い行)よりブラウザが狭くならない限りブロック幅が狭くなる=改行が増えることはありませんが、
htmlのオプション「align="center"」を利用した場合と同様、cssのテキスト中央揃え「text-align; center;」を指定した場合にもブロック内の各行がそれぞれ中央揃えになるため、行頭位置がバラバラになってしまいます。
なお、上の例のcssでは以下のように文字の中央ぞろえのみを指定し、余白は指定していません。
ul { text-align: center;
}
上記の問題を解決するにはブロックに以下の点を指定します。
ブロック内の文字は左揃えが初期設定なので特に指定する必要はなく、ブロック幅とブロックの中央配置にするためのCSSを指定します。
cssの仕様としては上の記述例で充分なのですが、InternetExplorerのバージョンによっては、このcssを記述してもブロックが中央揃えになりません。
(特定のInternetExplorerのバージョン独自仕様のため、余白の自動調整がうまく効かない)
このためどのInternetExplorerでもブロックを中央に配置させるには、
↓のように内容を左揃えに指定したブロックを、内容を中央揃えにするブロックの中に入れる必要があります。
ということで、本来必要なcssと、一部のInternetExplorerでもブロックを中央に寄せるために必要なcssを追加すると、↓のようになります。
#c1 { text-align: center; }
#c2 { text-align: left; margin-left: auto; margin-right: auto; width: 250px; }
#c1が外側のブロックで内容の中央揃えを指定(IE独自仕様に対応)、
#c2は内側のブロックで左から順に内容の左揃え(IE独自仕様に対応)、左余白自動調整、右余白自動調整、ブロックの幅を250ピクセルに指定となっています。
これを利用して箇条書きのブロックを中央揃えにする場合、htmlの記述は以下の様になります。実際の見え方はこのページの一番上の枠線内を参照してください。
<div id="c1">
<ul id="c2">
<li>閲覧側のブラウザ幅に関わらず
<li>行頭位置を
<li>揃えて
<li>ブラウザ中央に
<li>内容を表示する。
</ul>
</div>
基本的な指定方法はブロックの中央揃えと同じですが、marginの指定が
margin-left: auto; margin-right: 0px;
というように、右余白をautoでなく0px(余白なし)に変更します。
また、InternetExplorerに対応させるために外側を囲むブロックには
text-align:right;
というように、内容の右揃えにするCSSを指定します。
ということで、本来必要なcssと、InternetExplorerでブロックを右に寄せるために必要なcssを追加すると、↓のようになります。
#r1 { text-align: right; }
#r2 { text-align: left; margin-left: auto; margin-right: 0px; width: 250px; }
#r1が外側のブロックで内容の右揃えを指定(IE独自仕様に対応)、
#r2は内側のブロックで左から順に内容の左揃え(IE独自仕様に対応)、左余白自動調整、右余白0ピクセル、ブロックの幅を250ピクセルに指定となっています。
これを利用して箇条書きのブロックを右揃えにする場合、htmlの記述は以下の様になります。実際の見え方はこのページ上にある右寄せ例を参照してください。
<div id="r1">
<ul id="r2">
<li>閲覧側のブラウザ幅に関わらず
<li>行頭位置を
<li>揃えて
<li>ブラウザ中央に
<li>内容を表示する。
</ul>
</div>