Step.9 よく使うCSSを覚えよう
背景画像を指定してみよう。
しかし、画像は用意できてるの?

はて、では背景のスタイルシートの話をしようか。背景画像を貼るには background-image:url(ここに画像のURL); これだよ。実際にヘッダー部分に使ってみようか
[code language=”css” title=”CSS” highlight=”6-8,13″]
header,main,footer {
display:block;
width:1000px;
margin:0px auto;
}
h1,h2 {
margin:0px;
}
header {
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif);
}
main {
background:#ffffff;
min-height:400px;
}
footer {
background:#ffb0c6;
height:50px;
}
body {
margin:0px;
color:#9e2634;
font-size:14px;
line-height:23px;
background:#fff7de;
font-family:’MS ゴシック’;
}
p {
padding:10px;
margin:0px;
}
[/code]
さーて確認確認!うおっ!私の顔が大量に!
このリピートを設定できるのが background-repeat だよ。
値は 横方向のみリピートする repeat-x 縦方向のみリピートする repeat-y リピートをしない no-repeat とかあるよ。他にもあるけれどね。
今回は no-repeat にしてみよう。ソースはここからは header の分だけ出すね。
[code language=”css” title=”CSS” highlight=”6″]
header {
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif);
background-repeat:no-repeat;
}
[/code]
でもこれさ、なんかなー画像右側にあった方がいい気がする。サイト名の文字が左上にあるしなぁ。
background-position で好きな場所に背景画像を指定できるよ。
値は % でも指定できるし、左上を起点としてピクセルでも指定できるよ。他にも top bottom right left や center で中央も指定できるよ。
[code language=”css” title=”CSS” highlight=”7″]
header {
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif);
background-repeat:no-repeat;
background-position:right 10px bottom 10px;
}
[/code]
なんかさ、斜線の背景画像とかあるじゃない?ああいうのにプラスして今の画像があればいいんじゃないの!
background-image を2つ使えばできるよね?

私ピンクが好きなんだけどな。
で、まずは失敗例としてメルちゃんが思う通りに background-image でこの画像を付け足してごらん?
[code language=”css” title=”CSS” highlight=”8″]
header {
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif);
background-repeat:no-repeat;
background-position:right 10px bottom 10px;
background-image:url(image/backimage2.png);
}
[/code]
画像が書き換わっちゃったよ。
こんな書き方をしても同じだからね。
header { background-image:url(image/backimage.gif); } header { background-image:url(image/backimage2.png); }
これもあとで書いた backimage2.png が上書きしちゃうから。
これをやりたい場合はカンマ(,)を使うよ。
[code language=”css” title=”CSS” highlight=”5″]
header {
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif),url(image/backimage2.png);
background-repeat:no-repeat;
background-position:right 10px bottom 10px;
}
[/code]
これそれぞれ違うリピートとポジションの値できるの?
[code language=”css” title=”CSS” highlight=”6-7″]
header{
background:#ffb0c6;
height:180px;
font-size:20px;
background-image:url(image/backimage.gif),url(image/backimage2.png);
background-repeat:no-repeat,repeat;
background-position:right 10px bottom 10px,0px;
}
[/code]
[code language=”css” title=”CSS” highlight=”5-7″]
header{
background:#ff4a74;
height:180px;
font-size:20px;
background-image:url(image/backimage2.png),url(image/backimage.gif);
background-repeat:repeat,no-repeat;
background-position:0px,right 10px bottom 10px;
}
[/code]
しっかし、背景1つでかなりたくさんのCSS書くことになっちゃったね。
ちなみに一括指定でもカンマを使うことで複数背景画像は変わらず使えるからね。ただその場合は必ず背景色は最後に来るようにしないといけないよ。
[code language=”css” title=”CSS” highlight=”4-7″]
header{
height:180px;
font-size:20px;
background:
url(image/backimage.gif) no-repeat right 10px bottom 10px,
url(image/backimage2.png) repeat,
#ff4a74;
}
[/code]
ちなみに、ちょっと前に教えた文字関連のCSSもbackgroundと同じように一括指定できるよ。気が向いたら調べてみてね。
さー次のいくよー
枠線を指定してみよう。
線の色、太さ、線の種類、上下左右どの箇所に線を入れるかなどの指定ができるよ。
今回は見出しにボーダーを入れてみようか。
border-width 線の太さを指定するよ。 border-color 線の色を指定するよ border-style 線の種類を指定するよ
線の太さはピクセルで、線の色はカラーコードで値を指定すればいいけれど、線の種類は実際見せないとわからないね。
線の種類は他にもあるけれどここではこれだけにしておくね。
ボーダーは背景と同じように一括指定が可能だよ。
borderで一気にできるから、まずはこれで線の太さと線の種類、色を指定してみて。
[code language=”css” title=”CSS” highlight=””]
h2 {
border:dotted 2px #dd5179;
}
[/code]
[code language=”css” title=”CSS” highlight=”3″]
h2 {
border:2px #dd5179;
border-style:dotted none;
}
[/code]
margin や padding でやった時と同じ感覚だね。 3つ指定で 上と左右と下、4つ指定で上下左右それぞれ好きなところに好きな線の種類を指定できるよ。
border-color も border-width も同じように上下左右それぞれこの方法で指定ができるよ。
ねえロロちゃん、やっぱり下側にだけ線入れたいんだけれど、その場合はborder-width を none none dotted にしたらいいんだよね?
[code language=”css” title=”CSS” highlight=””]
h2 {
border-bottom:dotted 2px #dd5179;
}
[/code]
ボーダーは上手に使えばいろんなデザインが作れるから楽しいよ。
ただ、1つ気を付けないといけないところがあるよ。
border は padding と同じように width や height で指定した幅の数値に含まれないんだ。デフォルトではね。
そして、またまた一部ブラウザはボーダーのwidthやheightの値に含んだりするよ。
横幅を width:100px にして線の太さを border:solid 10px #000000; にした場合、ボーダーも含んだ横幅は 120px になっちゃうから気を付けてね。
ただし、IE6はボーダー含んで100pxになるよ。
padding と同様 box-sizing:border-box; を使うことによって border の値を width や height で指定した数値に含ませることができるよ。
角を丸くする方法
border-radius:全角px;
border-radius:左上&右下px 右上&左下px;
border-radius:左上px 右上&左下px 右下px;
border-radius:左上px 右上px 右下px 左下px;
ちなみに、画像も角を丸くできるんだよ。セレクタを img にしてやってごらん
[code language=”css” title=”CSS” highlight=”16,25,42-44″]
header,main,footer {
display:block;
width:1000px;
margin:0px auto;
}
h1,h2 {
margin:0px;
}
header {
height:180px;
font-size:20px;
background:
url(image/backimage.gif) no-repeat right 10px bottom 10px,
url(image/backimage2.png) repeat,
#ff4a74;
border-radius:20px 20px 0px 0px;
}
main {
background:#ffffff;
min-height:400px;
}
footer {
background:#ffb0c6;
height:50px;
border-radius:0px 0px 20px 20px;
}
body {
margin:0px;
color:#9e2634;
font-size:14px;
line-height:23px;
background:#fff7de;
font-family:’MS ゴシック’;
}
p {
padding:10px;
margin:0px;
}
h2 {
border-bottom:dotted 2px #dd5179;
}
img {
border-radius:20px;
}
[/code]
テキストや要素に影を付ける
text-shadow 値がちょっとだけ複雑だね。
text-shadow:右方向へのずれpx 下方向へのずれpx ぼかし強度px 影の色;
カンマで区切ることで影を複数つけることも可能だよ。
box-shadow だよ。値は text-shadow と同じものに追加して inset という内側に影を付けるものがあるよ。
立体感が出ていいよね。メルちゃんはヘッダーメインフッターの全部にうっすら影をかけてみたらどう?
[code language=”css” title=”CSS” highlight=”5,19″]
header,main,footer {
display:block;
width:1000px;
margin:0px auto;
box-shadow:5px 5px 10px #d4ccb4;
}
h1,h2 {
margin:0px;
}
header {
height:180px;
margin-top:10px;
font-size:20px;
background:
url(image/backimage.gif) no-repeat right 10px bottom 10px,
url(image/backimage2.png) repeat,
#ff4a74;
border-radius:20px 20px 0px 0px;
text-shadow:4px 4px 0px #ffffff;
}
main {
background:#ffffff;
min-height:400px;
}
footer {
height:50px;
margin-bottom:10px;
background:#ffb0c6;
border-radius:0px 0px 20px 20px;
}
body {
margin:0px;
color:#9e2634;
font-size:14px;
line-height:23px;
background:#fff7de;
font-family:’MS ゴシック’;
}
p {
padding:10px;
margin:0px;
}
h2 {
border-bottom:dotted 2px #dd5179;
}
img {
border-radius:20px;
}
[/code]
CSSのバージョンとブラウザの対応について
角を丸くするのと、影をつけるのがそれだよ。
あと、背景画像をカンマを使って複数使用するのもCSS3からできるんだ。
で、CSS3は比較的新しいから、古いブラウザとかだと対応されてないのね。
セレクタについてもう少しお勉強 特定の親要素の中の子要素を指定
とりあえず、現状の知識で一度好きなようにデザインをしてみたらどう?
っと、その前にさ、ヘッダーのサイト名を動かしたいんだけれど、これに余白を指定するには<h1>に余白を指定しないといけないよね?ただ、そうなるとメインの中にある<h1>の余白も一緒に設定しちゃうじゃん?どうしたらいいんだっけ?
あ!class属性いれて、クラス名で指定したらいいのか
header h1 { プロパティ:値; } でやってごらん。header と h1 の間は半角スペースね。
header .classname { };
.classname h1 { };
とかできるよ。
テキストの中央寄せの方法
[code language=”html” title=”HTML” highlight=””]
<!doctype html>
<html>
<head>
<title>メルちゃんの素敵なサイト★</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header><div id="header"><h1>メルちゃんの素敵なサイト★</h1></div></header>
<main>
<article>
<h1>レシピ一覧</h1>
<section>
<h2>オムライス</h2>
<a href=""><img src="image/demo3.jpg"></a>
</section>
<section>
<h2>パスタ</h2>
<a href=""><img src="image/demo6.jpg"></a>
<a href=""><img src="image/demo4.jpg"></a>
</section>
<section>
<h2>添え物</h2>
<a href=""><img src="image/demo5.jpg"></a>
</section>
<section>
<h2>デザート</h2>
<a href=""><img src="image/demo1.jpg"></a>
<a href=""><img src="image/demo2.jpg"></a>
</section>
</article>
</main>
<footer id="main1"><p>コピーライト</p></footer>
</body>
</html>
[/code]
[code language=”css” title=”CSS” highlight=””]
body,h1,h2,p {
margin:0px;
}
body {
color:#9e2634;
font-size:14px;
line-height:23px;
background:#fff7de;
font-family:’MS ゴシック’;
}
header,main,footer {
display:block;
width:1000px;
margin:0px auto;
box-shadow:5px 5px 10px #d4ccb4;
}
header {
height:180px;
margin-top:10px;
font-size:20px;
background:
url(image/backimage.gif) no-repeat right 10px bottom 10px,
url(image/backimage2.png) repeat,
#ff4a74;
border-radius:20px 20px 0px 0px;
text-shadow:4px 4px 0px #ffffff;
}
header h1 {
padding:25px 15px;
}
main {
background:#ffffff;
min-height:400px;
}
main h1 {
margin:20px 0px;
padding:6px;
background:#ef5e7f;
border:4px #ff97af;
border-style:dashed none;
color:#ffffff;
text-shadow:1px 1px 0px #bf415e;
}
main h2 {
margin:30px 20px 10px;
padding:3px;
border-bottom:dotted 2px #dd5179;
font-weight:bold;
}
main img {
border-radius:20px;
}
footer {
height:50px;
margin-bottom:10px;
background:#ff4a74 url(image/backimage2.png);
border-radius:0px 0px 20px 20px;
}
[/code]
次に、「レシピ一覧」って文字を中央に配置したいんだけれどできるかな?
あと、画像をもっと等間隔に並べたいなぁって思ったんだけど、どうしたらいいかわかんない!
text-align で値を center にすることで中央配置にできるよ。
ちなみに、デフォルトは left になってて、 right を入れると右寄せになるよ。
しかし、画像を等間隔にきれいにってのは、まぁできるっちゃできるけれど……
縦幅と横幅を綺麗に揃えた画像を用意したほうがいいと思うんだけどね?前も言ったけどさ
ロロちゃんなら教えてくれるに違いない!