講座06) 矩形を並べていく・その3 | ITベンチャー孤軍奮闘日記

ITベンチャー孤軍奮闘日記

個人による収益源確保のためのITツール、生活活性化のためのITサービスを提供します。

前回、コンテンツを書いていく為の「枠」の定義を行いました。

さて、それでは、定義した枠のメインブロック(緑色の枠)内にコンテンツを詰め込んでまいりましょう。


と言いましても、ここにそれぞれの小さなコンテンツ(パーツと呼ぶことにしましょう)を並べる手法も、枠を定義したdivタグを使えばすっきりと行えます。

つまり、ここでも「矩形を並べていく」という考えは変わらないということです。


そういう目で、様々なサイトをご覧になってみてください。

例えばニュースサイト等。

枠線は見えないかもしれませんが、それぞれの目的毎に分類されたコンテンツが、矩形にまとめられて整然と並んでいると思います。

表示されたブラウザで、「ソースを表示する」という機能で、htmlソースを覗いてみてください。

どんな風にdivタグが使われているか、何となく分かると思います。

(Windowsであれば、右クリックで「ページのソース表示」などで表示されます。)

htmlは、その内容が全てオープンにされているので、気に入ったページがあれば、その設計内容を「ソース表示」させて参考にされればいいと思います。(但し、css(スタイルシート)が別ファイルで設置してある場合が多いので、その際にはURLで追う必要があります。)



パーツを並べていく場合には、どの様にレイアウトするかを決めなければなりません。

マンガのコマ割りの様なものです。

その際に、枠間の隙間、枠内での隙間をきちんと設計する必要があります。

そこで必要となるのが、marginとpaddingです。



marginは、枠の外側の隙間で、上下左右それぞれを指定出来ます。

paddingは、枠の内側の隙間で、同じく上下左右それぞれを指定出来ます。

そして、ブロックを決めた時の様に、横幅と縦幅のサイズ指定が出来ます。

この関係を図示します。

ビジネスブログ開発でおなじみ小山市にある『株式会社音風館』のブログ


一番内側が、枠幅(横幅、縦幅)、それから内側の隙間、線幅、外側の隙間という順番に定義されています。

注意すべき点は、横幅(width)、縦幅(height)は、内側の隙間のさらに内側ということです。

これ、どうしても間違えてしまいます(自分の経験)。

枠線の外側に間違えてしまうんです。




それでは、線幅が3pxで黒、枠幅が100px、枠高さが80px、外側の隙間が20px、内側の隙間が10pxの枠を作りましょう。

border:solid 3px black

width:100px

height:80px

margin:20px

padding:10px

これらをセミコロンで繋げて、style="  "の中に詰め込みます。

左詰め指定(float:left)を加えておきます。

style="border:solid 3px black;width:100px;height:80px;margin:20px;padding:10px;float:left"


これをdivタグに設置します。

<div style="border:solid 3px black;width:100px;height:80px;margin:20px;padding:10px;float:left">
</div>

これを1個のパーツとして、メインブロックの中に、4個設置してみましょう。

こんな表示になります。

ビジネスブログ開発でおなじみ小山市にある『株式会社音風館』のブログ


全部が左寄りで並んで表示されていきますが、4個目のパーツがブロックに入りきらずに2行目に表示されました。

この様に、float:leftを指定して並べていけば、パーツはきっちりと並んで表示されていくので世話がいりません。



ここでひとつ注意点です。

外側の隙間(margin)を使った場合、隣り合うパーツのmargin同士が相殺される場合とされない場合があります。

場合があるというのは、ブラウザによって違うということです。

どのブラウザがどうという説明はここではしません。

何故かというと、バグが含まれているからです。特にIEのバグは中々修正されません。



こういう事があると、さらに面倒くさくなってしまいますよね。

私がそうでした。バグとは何たることか。それでいいのか、と怒ったデザイナーの方がどれだけ多いことか。

バグがあるとは言え、IEのシェアが高いのも事実であります。



それで、ひとつの工夫なのですが、私はmarginを使うのをやめました。

で、どうしたかというと、divを二重にして、paddingを二つ使うというやり方です。

<div style="padding:20px;float:left">
<div style="border:solid 3px black;width:100px;height:80px;padding:10px;">
</div>
</div>

つまり、外側に枠線の無いdivを設置し、そのdivにおけるpaddigが内側のdivのmarginの代わりになる訳です。

こうすれば、外側の隙間が相殺されることがなくなり、ブラウザによる差が解消されます。


今日はここまで!

- - - - - - - - - -
Ads by Ompooooooooookan
記事クリエイター http://ompookan.jp/shop2/kiji01.html
効率の良いホームページ作成ツールはこちら