今回でビギナー向けと銘打ったこのカテゴリも最終回です。
もっと色々盛り込みたかったとか思ったり、自分で突っ込んだりしてる部分もありますが、自分の知識をアウトプットする練習も兼ねているので、細かいところはどっかに置いとくとして...
このデザイン→これ
を今回でカタチにします。
最終は、コンテンツ部分の見栄えの調整です。
んじゃ、いってみますか、、、
---- こっから続き
前回の最終系
前回のエントリーでサイドまで完成させました。
http://css-happylife.com/template/practice-01/12/
h2の見た目を整える(InfoとHistory)
h2部分に使っている画像は左記の細っこいのです。
コレを横に並べる為に下記のスタイルを当てます。
#main h2 {
clear:both;
margin-bottom:10px;
padding:10px 15px;
background:url(../img/h_01.gif) repeat-x;
font-size:140%;
letter-spacing:.2em;
text-transform:uppercase;
}
当てると実際には下記のような感じになります。
http://css-happylife.com/template/practice-01/13/
じゃあ、主要なプロパティ部分を説明します。
clear:both;
特に回り込みが無い場合、clearは必須では無いのですが、何処かで回り込んだりして崩れてしまうのを防ぐ為に入れてます。
実際のケースでは頻繁にclearの必要があったりするので。
勿論、そういった状況になってから足しても問題ありません。
background:url(../img/h_01.gif) repeat-x
横にリピートし、位置は左上を基準にしているので省略してます。
一枚で横幅決め打ちの画像にしちゃうと、後から幅調整したい時など不便なので繰り返せる画像は全て繰り返せるように切っておくと何かと楽です。
ちょっと話反れますが、リピート画像が極端に小さいと、画像サイズは勿論極限まで抑えれるけど、リピートさせる為にマシンスペックが食われるとかって聞いた事があります。
コレってホントですか?(知ってる人教えて!
text-transform:uppercase;
コレに関しては前回のエントリーを参照して下さい。
http://css-happylife.com/log/cssbeginner/000104.shtml
当たり前っすけど、ココで指定しなくても、h2にtext-transform:uppercase;を指定していれば、サイド、メイン用で2度書かなくてもすみます。
h3、h4の見た目を整える
続いて、h3、h4の見た目を。
#main h3 {
margin-bottom:5px;
padding:7px;
background:#FCFAF5;
border:1px solid #FCAA53;
font-size:115%;
letter-spacing:.1em;
}
#main h4 {
margin-bottom:5px;
padding-left:5px;
border-left:3px solid #FCAA53;
font-size:115%;
font-weight:bold;
}
実際の表示は下記のようになります。
http://css-happylife.com/template/practice-01/14/
h3はベタの背景カラーに、ボーダーが1pxあるだけなんで、パディングで余白を調整。
h要素に、letter-spacingを比較的取っているのは、個人的な好みっす。
無い方がいいって人もいっぱいいるかと。
h3のmarginは後ほど調整します。
h4は左にボーダーを指定しているだけなんで、後はパディングで位置関係を調整してます。
font-weightは、最初に下記のように指定していたのでソレを上書き。
h2,h3,h4,h5,h6 {
font-weight:normal;
font-family:Georgia, "Times New Roman", Times, serif;
}
最初にfont-weightをnormalにする必要が有るのかはデザインに寄ってどっちの割合が多いとかで判断すると良いと思います。
個人的にはあんまりboldを使いたくなかったりします。
メイリオだと特に美しくないので。。。
ボーダーの色は、何となくオレンジ系な#FCAA53で。
また話反れますが、画面の色をちょいっと拾いたい場合はカラーピッカー使うと良いです。
ボクが普段使っているのは、ゆなカラーピッカーってのです。
特に拘りが有る訳でもないし、あんまり使わないですが、中々便利です。
テキスト部分とh3のmargin調整
htmlにclass:sectionを追加します。
<h2>Information</h2> <div class="section"> <h3>文書型宣言についてのアレコレ </h3> ・ ・ ・ <!-- / section END --></div> <h2>History</h2>
追加したら、sectionにスタイルを当てていきます。
#main .section {
margin:0 10px 20px;
}
#main .section p img {
float:right;
margin:0 0 5px 10px;
}
こんな感じで。
実際の表示は下記のように。
http://css-happylife.com/template/practice-01/15/
sectionで区切ってるのは、#mainの中にp要素のみならp要素に指定すればいいですが、実際はul要素やtableとか色々入る可能性があるのと、下部に適度な余白を確保するのに便利だったり、今回のように#main .section p img にのみ右に回り込ませたいなどで効果を発揮します。
実際のコンテンツが、今回のサンプルのみのボリュームならわざわざdivを追加する必要も無いと思います。
More部分のスタイルを適用させる
htmlに、class名moreを追加します。
<h2>History</h2> <p class="more"><a href="#page">More</a></p> <ul>
スタイルは下記のように。
#main .more {
position:relative;
}
#main .more a {
position:absolute;
top:-40px;
right:10px;
padding:0 5px 0 18px;
background:#FFF url(../img/list_02.gif) no-repeat 5px .5em;
color:black;
}
#main .more a:hover {
text-decoration:none;
}
この部分に限ってポジションで指定してます。
floatで組むより楽だと思うので。
コレの具体的な説明については、見出しの横などにボタンを配置を参照して下さい。
実際の表示は下記のように。
http://css-happylife.com/template/practice-01/16/
display:blockを使わずにa要素が心なしかボタンっぽくなってるのは、paddingとline-heightで調整しているからです。
リスト部分の見栄えを整える
コレが最後の指定です。
まずは、htmlのp要素のclass名moreとul要素の間にdiv.sectionを追加します。
<p class="more"><a href="#container">More</a></p> <div class="section"> <ul> ・ ・ ・ </ul> <!-- / section END --></div>
クラス、sectionを追加しているのは上記の理由と同じですが、ココは無くてもいいかも、、、とギリギリまで悩んでたんですが今回は使っていきます。
sectionを追加したら、スタイルを当ててきます。
#main .section ul li {
margin-bottom:5px;
padding-left:15px;
background:url(../img/list_02.gif) no-repeat 0em .5em;
}
#main .section li a {
margin-left:1em;
}
li要素でlist-style-typeでマークを指定しないのは、位置調整が上手くいかないからです。
リストマークの大きさにもよると思いますが、滅多に上手くいかないので自由度が高いbackgroundで指定するのをオススメします。
スペースなどで感覚を取らなくても、a要素でmarginの調整が出来るので、margin-left:1emで感覚調整をして全て完了!
完成バージョンは下記。
http://css-happylife.com/template/practice-01/17/
最後に
長々と付き合って頂いた方、ありがとう御座います。
全部丁寧に読んで頂いた方が居たら、心から感謝申し上げます。
ものすごい、不手際ばかりだったと思いますが、こうして書いてみると結構大変だなーって思いました。
探り探りで書いてたので、説明不足だったり過剰だったりと色々有ると思うので、メールとかでこう書いた方が分かりやすいんじゃない?とか、ある程度なら質問にも答えれたらなぁと思いますんで、お気軽にご連絡ください。
(質問は、このサンプルを組む上での質問のみでお願いします。)
時間に関してですが、サンプルの「コーディングだけ」の時間で、大よそ40分くらい掛かってます。
早い人だったら30分も掛からない程度のデザインですが、最初だとおそらく2~3日とか使うと思います。(ボクがその位苦労してたってだけですが)
大変だとは思いますが、そこから徐々に覚えていって色んなテクを見につけていけばいいんじゃないかな~って思います。
次回からは、このカテゴリ書いてるうちに書きたくなった事をボチボチ書いてきます。
CSSに興味持った方、引き続きお付き合い願います~。
それでは、良きCSS Lifeを!










comment [12]
1 - aoi さん
はじめましてこんにちわ。
最後のリスト部分なんですが、「サイトオープンしました」の部分だけで折りかえるようにするにはどうします?
2007年1月30日 12:09
2 - chobi さん
気になったのでコメントを。
最後のリスト部分を「ul」じゃなくて「dl」にするとか?
「dd」にmargin:-1em 0 0 8em;あたりで。
もしくはfloat:left;とclear:left;するとか。
2007年1月30日 15:17
3 - hira@管理人 さん
>aoiさん
はじめまして。
スタイルのみでの調整でしょうか?
ソースいぢるなら、ulよりdlで組んだ方が折り返しは簡単ですね。
>chobiさん
dlでも全然問題ないと思います。
結構悩んだ部分ですが、dt ddの横並びを行うのは今回はパスしたかったので、ulで組んでます。
このカテゴリの趣旨も趣旨なんで、そこまではいいかな。っていう判断です。
ご指摘ありがとうございます。
2007年1月30日 16:00
4 - maemuki★uribou さん
最後まで頑張りました!とっても解かり易く説明がありとても勉強になりました。有難うございました。又勉強させていただきます!宜しくお願いします。
2007年8月13日 17:58
5 - tomy さん
初CSSだったので、3日かけてやりました!
ありがとうございます。
ひとつ分からない部分が…
よく「background:url(../img/list_02.gif) no-repeat 0em 0.5em」
のように最後の二つ必ず数字の値がありますよね
あれは何の指定なんですか??
2007年9月 6日 14:48
6 - toto さん
>最後の二つ必ず数字の値がありますよね
>あれは何の指定なんですか??
backgroundの画像の位置移動に使います。
その位置より上下左右動かしたい場合ですね。
数字を変えてみればなんとなくわかると思います。
2007年9月12日 15:52
7 - kiyotaro さん
初めまして、この度「CSS Happylife」cssビギナー向けを参考にホームページを作りなおしました。
大変参考になり、ありがとうございました。
これからは、もっとすっきりCSSがかけるようにがんばります。これからもよろしくおねがいします。
ブログの方にリンクはらせていただきました。
ps.リニューアルおめでとうございます。
URL|2007年9月21日 17:43
8 - unatama さん
テーブルレイアウト時代から久しぶりにサイトを組もうと、
CSSの出世ぶりに驚いていました。
しかし、こちらで勉強できてとても感謝感激です。
ありがとうございました。
2007年11月13日 16:24
9 - ringo さん
どうもはじめまして。
とても参考になりました。
全部読むのは疲れましたー。
cssデザイン、勉強中です。
理解できてないところもありますが、自分で手打ちして
身につけていきたいと思います。
あざしたー!
URL|2008年1月25日 21:47
10 - hkck6 さん
とても勉強になりました。
おかげ様でCSSが面白く感じるようになりました。
脱テーブルレイアウトに今後も励みたいと思います。
URL|2008年3月20日 01:33
11 - mm さん
説明を見ながら一つずつCSS入れ込んで、
プレビューしては嬉しい気持ちになりました。
これからもがんばってくださいね!私もがんばりますー。
2008年4月24日 19:03
12 - あんちゃ さん
CSSレイアウトが楽しく勉強させていただきました。
ありがとうございます。
これからもいろいろ参考にさせていただきます。
2008年7月 1日 22:56