あとがき
制作実習編LV3はいかがでしたか?
今回はテーブルタグを一切使わずに高度なレイアウトに挑戦してみました。
position:abusolute;を利用したレイアウト方法は、大きささえきっちり決めておけば崩れる心配もなく、
ソースの順番を入れ替えても表示が変わらないためSEOにも効果があります。
そのためCSSデザインの普及してきた欧米ではこの手法がとられることが多いそうです。
さて、大まかなレイアウトはposition:abusolute;で十分なのですが、 更新などで高さが変わってしまう部分はposition:abusolute;でレイアウトするのはちょっと無理があります。 ホームページビルダーのどこでも配置モードで作られたページが悲惨な状況になっているのを見たことはありませんか? あれは細かいレイアウトまでposition:abusolute;で行ったために生じた悲劇です。
そのため、細かいレイアウト(特に横並び)はfloatを使って行うことになります。
今回のステップ5がその部分に当たるのですが、floatが難しいと言われる理由がちょっとは分かったのではないでしょうか。
余白の処理の仕方がブラウザーによって違うのが困ったところです。
回避することは可能ですが、ちょっと無茶しなきゃいけません。
私はスタイルシートの魅力やCSSデザインのことを伝えたくてこのサイトを運営していますが、今すぐCSSデザインにしろ!なんて言う気は全くありません。 だってCSSデザインは難しいですもん。スタイルシート自体はそんなに難しくないです。背景の表示ぐらいなら初心者でもできますから。 でもレイアウトまでしようとすると・・・とたんに難しくなります。この辺がスタイルシートは使われてもCSSデザインが普及しない理由でしょうね。
ではCSSデザインはどんな人におすすめかと言うと、ページ作りそのものを楽しみたい人です。 ひたすらデザインにこだわりたい人や、思い通りの表示結果に達成感を感じる人向けです。 あとは文法は正しくなきゃダメ!という人ですかね。 あ、あとデザインなんかどうでもいいという人もそうですね。LV1みたいな感じで仕上げるならテーブルはいりませんから。
これを機に、もうちょっとスタイルシートを「活用」できる人が増えるとうれしいです。
それでは良いスタイルシートライフを!
05.02.22追記:CSSデザインとテーブルデザインを組み合わせた新たなデザイン手法「逆ハイブリッドデザイン」を編み出しました。 CSSのメリットとテーブルデザインのメリットを最大限に引き出す手法です。 LV4で解説しているのでぜひご一読を!
今回作ったスタイルシート
今回の実習で作ったスタイルシートの全貌です。
こうしてみると結構な量を書きましたねぇ。
/* 基本設定 */ BODY{ margin:0px; padding:0px; background-color:#ffffff; color:#350C11; } img{ border:0px; } a:hover { color:#ff0000; } /****** ヘッド ******/ #head { width:800px; height:50px; position:absolute; background-color:#7F2D00; overflow:hidden; } /****** レフト ******/ #left{ width:150px; background-color:#ffffff; top:60px; position:absolute; } /* 更新履歴 */ #new{ width:150px; height:145px; background-color:#ffffff; overflow:hidden; } #new ul{ list-style:none; font-size:small; margin-top:5px; margin-left:0px; padding:0px 10px; line-height:1.2em; } #new li{ list-style:none; padding-left:15px; background:url(../../img/point-s.gif) no-repeat center left; text-align:left; } /* アフリエイト */ #adver{ width:150px; height:150px; background-color:#BF6000; display:block; } /****** メイン *******/ #main{ position:absolute; top:55px; left:150px; background-color:#FFFFFF; background-image:url(../../img/back.gif); width:650px; font-size:small; } /* イントロ */ #intro{ width:650px; height:150px; } #photo{ float:left; background-color:#DDDDDD; width:290px; height:150px; } #mes{ float:left; background-color:#DDDDDD; width:360px; height:150px; overflow:auto; } #mes h2{ margin:0.3em 3em; } #mes p{ margin:0.3em 1em; } /* コンテンツ用ID */ #content { position:relative; } #beginer,#design,#csstec,#gallery{ position:relative; width:250px; border:#7F2D00 2px solid; margin-top:30px; background-color:#FFFFFF; float:left; } DIV.box{ position:relative; clear:both; margin-left:60px; } #design,#gallery{ margin-left:50px; } #content h2{ position:relative; border:solid 2px #663300; width:150px; background-image:url(../../img/head-menu-back.gif); text-align:center; font-size:large; margin:-15px 0px 10px -30px; padding:0.3em 0em; } #content p{ margin:0.3em 1em; } #content ul{ position:relative; width:95%; padding:5px; border-top:#7F2D00 1px solid; list-style:none; text-align:left; margin:0px; line-height:1.2em; } #content li{ list-style:none; background:url('../../img/point-s.gif') no-repeat center left; padding-left:20px; } /* コピーライト */ ADDRESS{ position:relative; background-color:#FFFFFF; border:#7F2D00 2px solid; width:534px; clear:both; margin-left:60px; padding:10px 0px; padding-left:20px; font-style:normal; } #gallery{ margin-bottom:30px; }