スキップしてメイン コンテンツに移動

些細な日常

サイトの文章を中寄せのままで左寄せに表示するなどの外側と内側で別々に配置する方法

サイトの文章の位置取りはデザインのCSSのtext-alignでleftとcenterとright(左寄せと中寄せと右寄せ)が可能だけれども文章の外側と内側、または全体と部分が同じように整列されてしまう。そこでどうすれば一つの文章て外側(レイアウト)が中寄せで内側(コンテンツ)が左寄せなどの別々の位置取りが可能かを取り上げる。

二つの親要素で文章を別々に整列する

文章の外側と内側に別々の親要素を設置してそれぞれに整列することができる。

外側が中寄せで内側が左寄せの例

あいうえお

かきくけこさしすせそ

たちつてとなにぬねのはひふへほ

はひふへほまみむめもやゆよ

らりゆれろわをん

HTML

<div class="outer">
<div class="inner">
<p>あいうえお</p>
<p>かきくけこさしすせそ</p>
<p>たちつてとなにぬねのはひふへほ</p>
<p>はひふへほまみむめもやゆよ</p>
<p>らりゆれろわをん</p>
</div>
</div>

CSS

.outer {text-align:center}
.inner {display:inline-block;text-align:left}

文章の外側は普通にtext-align:centerで中寄せにする。そのままだと内側も中寄せになるけど、しかしもう一つの親要素を追加してdisplay:inline-blockをかけることによって子要素が個別に整列できるようになる。そこでtext-align:leftをかけると親要素の影響を受けずに左寄せが行える。

文章に二つの親要素を使って内側のdisplay要素を個別に整列できるinline-blockなどにすると外側のtext-alignの値とは切り離して扱え?ようになる。

文章と区別して親要素を二つ追加する方法になるけど、文章をタグで段落分けにしたりしなくて良ければ文章自体のタグを内側の親要素として使うことができるので、必ずしも親要素を二つ追加しなくてはならないわけではなく、一つで済ますこともできる。

文章の長さは横幅を指定すると揃う

あいうえお

かきくけこさしすせそ

たちつてとなにぬねのはひふへほ

はひふへほまみむめもやゆよ

らりゆれろわをん

HTML

<div class="outer">
<div class="inner">
<p>あいうえお</p>
<p>かきくけこさしすせそ</p>
<p>たちつてとなにぬねのはひふへほ</p>
<p>はひふへほまみむめもやゆよ</p>
<p>らりゆれろわをん</p>
</div>
</div>

CSS

.outer {width:5em;margin-left:auto;margin-right:auto}
.inner {display:inline-block;text-align:left}

文章の外側か内側のどちらかの親要素にwidthで横幅を指定すると文章の長さが決まる。それを越える場合は折り返されて各行を均等に並べることができる。

外側の親要素の位置取りはtext-alignが効かないので、代わりに中寄せならば「margin-left:auto;margin-right:auto」、左寄せは何もしなければ右から左への日本語のサイトの初期値なるけれども敢えて指定すると「margin-right:auto」、右寄せは「margin-right:auto」を使うことになる。

一つの親要素で文章を別々に整列する

文章に親要素を一つ追加して外側と内側を別々に整列することができる。

外側が中寄せで内側が左寄せの例

あいうえお

かきくけこさしすせそ

たちつてとなにぬねのはひふへほ

はひふへほまみむめもやゆよ

らりゆれろわをん

HTML

<div class="layout">
<p>あいうえお</p>
<p>かきくけこさしすせそ</p>
<p>たちつてとなにぬねのはひふへほ</p>
<p>はひふへほまみむめもやゆよ</p>
<p>らりゆれろわをん</p>
</div>

CSS

.layout {display:grid;justify-content:center}

文章の親要素にdisplay:gridとjustify-content:centerをかけると外側だけが中寄せになり、内側は何もしないままの状態で、普通に左寄せで扱える。

内側の位置取りを変える場合は親要素のjustify-contentの値をstartかcenterかend(左寄せか中寄せか右寄せ/日本語の右から左への進行方向の場合)にして全体として移動させる。

親要素が一つで済むのは簡単で便利なんだけれども子要素の外側の余白が相殺されないので、例えば外側の余白が付いた段落のpのようなタグが続くと普通よりも間隔が空いてしまう。するとタグを外すとか外側の余白を消すなんてデザインがさらに必要になって手間が増えるかも知れない。

文章と区別して親要素を一つ追加する方法になるけど、文章をタグで段落分けにしたりしなくて良ければ文章自体のタグを内側の親要素として使うことができるので、必ずしも親要素を一つ追加しなくてはならないわけではなく、文章自体のタグだけで済ますこともできる。

文章の長さは横幅を指定すると揃う

あいうえお

かきくけこさしすせそ

たちつてとなにぬねのはひふへほ

はひふへほまみむめもやゆよ

らりゆれろわをん

HTML

<div class="layout">
<p>あいうえお</p>
<p>かきくけこさしすせそ</p>
<p>たちつてとなにぬねのはひふへほ</p>
<p>はひふへほまみむめもやゆよ</p>
<p>らりゆれろわをん</p>
</div>

CSS

.layout {display:grid;width:5em;margin-left:auto;margin-right:auto}

親要素にdisplay:gridを使う場合は横幅のwidthを指定すると同時に位置取りの仕方も横幅を指定しないときのjustify-contentとは変えて指定しなくてはならない。

中寄せならば「margin-left:auto;margin-right:auto」、左寄せは何もしなければ右から左へ表示する日本語のサイトならば初期値で左寄せになるだろうけれども敢えて指定するならば「margin-right:auto」、右寄せならば「margin-left:auto」を使うことになる。

文章の位置取りを外側と内側で決める方法は通常の一列の表示で汎用的に使えると思う。

もう一つのレイアウトで纏めるdisplay:gridの方法も大差ないけれどもそれ自体が複数の列や行の配置に適しているから他の文章や何かと組み合わせるときこそ向いている。

  • ブログの投稿者: 結城永人
  • タイトル: サイトの文章を中寄せのままで左寄せに表示するなどの外側と内側で別々に配置する方法
  • 最終更新: 

コメント

些細な日常の人気記事

ナサニエル・ホーソーンの若いグッドマン・ブラウンの原文と注解

イメージ

アメリカの英語の小説、 ナサニエル・ホーソーンの 若いグッドマン・ブラウン を日本語に翻訳 しながら分からない単語や熟語を調べたので、英語の学習用に原文に沿って段落毎に掲載する。 取り上げる言葉の語彙力としてはおよそ日本の高校を卒業した水準以上、すなわち英検二級かTOEIC7...

ナサニエル・ホーソーンの若いグッドマン・ブラウンの日本語訳

イメージ

十九世紀のアメリカの作家、小説家の ナサニエル・ホーソーン の小説の 若いグッドマン・ブラウン (1835)の日本語訳を行った。一つの文学作品として人間の洞察力に富んだ優れた内容を持つだけではなく、表現も意義深いから外国語の英語の聞き取りと読み取りの教材としても最適だと感じる。 ...

苫米地英人のマインドフルネスに役立つ機能音源

イメージ

認知科学者の 苫米地英人のコーチング を自己流で始めてさらに良いかも知れないと新しく始めたのが機能音源なんだ。聴くと周波数などの仕組みで脳に影響を与えて様々な効果を発揮するために作られているといわれる。調べるとCDの数十枚のセットで何万円もするので、驚かされるけれども教材として売...

ヘンリー・ローソンの家畜追いの妻の日本語訳

イメージ

十九から二十世紀のオーストラリアの作家、詩人で小説家の ヘンリー・ローソン の小説の 家畜追いの妻 (1892)の日本語訳を行った。一つの文学作品として人間の洞察力に富んだ優れた内容を持つだけではなく、表現も意義深いから外国語の英語の聞き取りと読み取りの教材としても最適だと感じる...