SSブログ


新・HTML自動改行防止法 [その他]

※今回の記事はやや専門的な内容となっておりますので、ご了承ください。

2年以上前に、HTMLのページにおいてウィンドウのサイズを変えた時に、
文章が自動的に改行されてしまってレイアウトが崩れてしまう、という
問題について、その解決策を提示しました。(→こちら

何もしないと…

しかし、他の方が作ったある「理想的なレイアウト」のページの
ソースを調べてみたところ、もっとスマートな方法を見つける事ができました。

という事で、今回はその方法について書いていこうと思います。



今回の方法では、前回も使っていた「CSS」をさらに活用します。

まずはヘッダー(<head></head>)内に、以下のコードを記述してください。

<style type="text/css">
body { width: 400px; }
</style>

「400px」は仮の値です、表示内容の横幅に応じて調整してください)
(HTML5の場合「type="text/css"」は省略可能です)



「width」は、文章などを表示する領域の横幅を表します。

これの初期値は「auto」である為、何も対策をしなければ、
ウィンドウのサイズを変えた時に、それに応じて表示する領域の横幅も変化し、
その結果自動で改行されてしまうのです。

という事は、この値を固定してやればよいという事です。

「表示する内容の中で、最も横幅が長いところ」よりも長いpxを入れれば、
自動的な改行を防ぐ事ができます。

対策なし/widthあり



しかしこれだけだと、領域内での表示内容の「揃えられる場所」に関わらず、
この領域そのものは「左端」に寄せられてしまいます。

伸ばしてみると…

これを中央や右端に寄せたい場合は、ここにさらに
「margin-left」「margin-right」を加えます。

この「margin-left」「margin-right」は、その領域の左右の余白の横幅を表します。

これの初期値は「0」であり、それを「auto」にしてやる事で、余白の横幅を
自動的に「ウィンドウの横幅から表示領域などの横幅を除いた余り」としてくれ、
leftとrightの両方をautoにすれば、その余りを左右均等に分配してくれます。

つまり、中央に寄せたければ「margin-left: auto;」「margin-right: auto;」の両方を、
右端に寄せたければ「margin-left: auto;」だけを加えればOKです。

widthのみ/width+margin



なお、領域内での表示内容の「揃えられる場所」については、
デフォルトでは左揃えとなりますが、
「text-align: center;」とすれば中央揃えに、
「text-align: right;」とすれば右揃えにする事ができます。

「text」とありますが、文章以外(例えば画像など)も共に揃えられます。



例:「領域そのもの」「領域内の表示内容」も中央にする場合

<style type="text/css">
body { width: 400px; margin-left: auto; margin-right: auto; text-align: center; }
</style>



では、今回はこれで終わりとさせていただきます。
nice!(0)  トラックバック(0) 

nice! 0

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。