CSS入門

CSSについて

(Cascading Style Sheet)

CSSは、HTMLの書式定義(レイアウト)をHTML本文と分離して記述するための手法です。

皆さんが作成するホームページがわずかなページで構成されていれば、その内容を書き直すのはたいした手間ではありません。しかし、このHTMLについてのページだけでも、数十ページになります。たとえば文字の書体を変更使用ととすれば、その手間は大変なことになります。このページには背面に 岸田ゼミとCSSについての絵文字が表示されていますが、これもCSSで設定しています。これを別のものに差し替えるときも、各ページごとに処理すれば、その手間は大きな負担となります。そのようなときに、CSSをうまく利用すれば、簡単な操作で関連するページを全て変更できます。

なお、CSSは全てのブラウザで動作するものではありません。IEではバージョン4以降、NNではバージョン4以降で動作しますが、バージョンにより動作の違いがあると指摘されています。

CSSはどのように書くのか

1.タグに直接記入する方法

  タグに直接CSS命令(プロパティ)を記入する方法です。たとえば

<HTML>
<HEAD>
<TITLE>CSSTEST1</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<DIV STYLE="background:blue;color:white">
CSSを直接タグに記入する
</DIV>
</BODY>
</HTML>

と記入します。CSSの部分は
STYLE="background:blue;color:white"の部分です。実行例

backgroundは背景色の意味です。blue(青)と指定しています 。colorは文字の色です。

blue を yellow, maroon, #55aa77, rgb(255,200,100)に変更してみましょう。

この書式の指定方法は
<タグ名 style="プロパティ名:値">
<タグ名 style="プロパティ名:値;プロパティ名:値;・・・・">
となります。

この方法は、タグにCSSのプロパティを全部書き込むことになり、スタイルを変更するときは全てを書き直すことになります。実際にはCSSを使用するメリットはありません。どちらかといえば動作確認用の方法かもしれません。

2.HTMLのヘッダー部でCSSの宣言をする方法

<HEAD>と</HEAD>との間にCSSの宣言を記述し、ここで指定したタグについてスタイルを指定するものです。この方法は、1.の例ではスタイルを指定したい全てのタグにCSSプロパティを書かなければならないのと比べれば手間は大幅に軽減されます。

<HTML>
<HEAD>
<TITLE>CSSTEST2</TITLE>
<STYLE type=text/css>
  h1{color:red;}
  div{background:blue;color:white;}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
</BODY>
</HTML>

と記入します。CSSの部分は

<STYLE type=text/css>
  hi{color:red;}
  div{background:blue;color:white;}
</STYLE>

です。type=text/cssを忘れないようにしましょう。またタグの定義の書き方にも注意します。

h1{color:red;} =>h1タグの書式を指定します。文末のセミコロン(;)を忘れないように。

div{background:blue;color:white;} =>1のdiv定義と同じです。 実行例

 

この例で、h1タグとdivタグを追加してみます。

<HTML>
<HEAD>
<TITLE>CSSTEST2</TITLE>
<STYLE type=text/css>
  h1{color:red;}
  div{background:blue;color:white;}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
<h1>これはh1タグで指定した部分です</h1>
<DIV> これはdivタグで指定した部分です </DIV>
</BODY>
</HTML>

同一タグは指定スタイルにより同じように表示されます。 実行例

ここで、指定部分を変更してみましょう。例えばh1タグは見出文字で大文字指定です。

いま h1{color:red;font−size:x−small;}としてみましょう。 実行例

タグの本来の指定ではなく、HEAD部でのCSSでの指定スタイルとなります。このように一括変更するのはいいのですが、変更したくない場合もあります。

このような場合は、1.の個別タグでスタイル指定をします。個別タグの指定が最優先されるからです。次の例では、後半のh1タグで個別にスタイル指定をしています。

<HTML>
<HEAD>
<TITLE>CSSTEST2</TITLE>
<STYLE type=text/css>
  h1{color:red;font-size:x-small;}
  div{background:blue;color:white;}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
<h1 style="font-size:x-large">これはh1タグで指定した部分を個別タグ記入で変更したものです</h1>
<DIV> これはdivタグで指定した部分です </DIV>
</BODY>
</HTML>

実行例

このようにヘッド部でスタイル指定をすると、そのページについては一括変更ができるものの、複数のHTML文からなるシステムでは、すべてのページのヘッド部について指定をする必要が出てきます。例えば100のHTML文があれば、100個所の書き直しが必要になります。この手間を回避するためにCSSでは定義ファイルを使用することができます。

3.定義ファイル(CSSファイル)を使用する方法

ヘッド部での定義をCSSファイルに記述しておき、ヘッド部では定義ファイルを使用すると宣言することにより、そのような宣言がされているページのスタイルをCSSファイルを変更するだけで変更できます。

<HTML>
<HEAD>
<TITLE>CSSTEST3</TITLE>
<LINK rel=stylesheet type=text/css href=cssteigi.css>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
<h1>これはh1タグで指定した部分です</h1>
<DIV> これはdivタグで指定した部分です </DIV>
</BODY>
</HTML>

hrefで参照しているcssteigi.cssがCSS定義ファイルです。直前の例のHEAD部の定義をこの定義ファイルに記述します。下の例に従って作成します。

h1{
   color:red;font-size:x-small;
}

div{
   background:blue;color:white;
}

この文を秀丸などのエディタを使用して書き、cssteigi.css として現在HTML文を保存しているディレクトリに保存します。 実行例

ヘッダとCSSファイルにおける書式の指定方法。

指定方法はヘッダとCSSファイルとは同じです。基本的な書式は次のとおりです。

 タグ名{プロパティ名:値;}
 タグ名{プロパティ名:値;プロパティ名:値;・・・・}
 タグ名,タグ名,・・・{プロパティ名:値;プロパティ名:値;・・・}

のように記述します。タグ名をコンマで区切り連続させて指定したときは、一連のタグにつき{ }内の指定が有効となります。{ }内では、スペースやタブ、改行、大文字小文字は無視されます。つまり複数行に書いたりしても問題はないことになります。上のcssteigi.cssを次のように記述してもよいことになります。

h1{
   Color:ReD;
font-size:x-small;
}

div{ background:blue;
   Color:
    white;
}

クラス指定

タグ名にはピリオッドに続けてクラス名の指定することができます。クラスの書式を指定した後、ピリオッドを打ちクラス名を続ける事もできます。次のように記述します。

 タグ名.クラス名{プロパティ名:値;プロパティ名:値;・・・・}
 .クラス名{プロパティ名:値;プロパティ名:値;・・・}

クラス名は自由に書くことができます。例えばh1タグにakaというクラスとkuroと言うクラスを作ります。この指定はつぎのようにします。

h1.aka{Color:red;
      font-size:150%;

.kuro{Color:black;font−size:200%;}

ヘッドに定義するときの例を次のように変更します。

<HTML>
<HEAD>
<TITLE>CSSTEST2</TITLE>
<STYLE type=text/css>
  h1.aka{color:red;
      font-size:150%;
   }
  .kuro{color:black;font-size:200%;}
  div{background:blue;color:white;}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1 class=aka>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
<h1 class=kuro>これはh1タグでクラス指定した部分です</h1>
<DIV> これはdivタグで指定した部分です </DIV>
</BODY>
</HTML>

実行例

入れ子のタグ指定

タグには単独でも入れ子でも使用できるものがあります。そこで入れ子で使用するタグのみにスタイルを指定することもできます。そのときは次のように指定します。

タグ名1 タグ名2{プロパティ名:値;・・・・}

タグ名1の入れ子となるタグ名2という意味となります。タグ名とタグ名とはスペースで区切ります。 上の例について<DIV>と</DIV>の間に、<b></b>を入れ子タグとして追加し、入れ子タグとして指定を追加します。(赤字で表示)

<HTML>
<HEAD>
<TITLE>CSSTEST2</TITLE>
<STYLE type=text/css>
  h1.aka{color:red;
      font-size:150%;
   }
  .kuro{color:black;font-size:200%;}
  div{background:blue;color:white;}
  div b{backgroud:red;color:blue;}
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<h1 class=aka>CSSの書き方</h1>
<DIV>
CSSをHEAD部に記入する
</DIV>
<h1 class=kuro>これはh1タグでクラス指定した部分です</h1>
<DIV> これはdivタグで<b>指定した部分</b>です </DIV>
</BODY>
</HTML>

実行例

Aタグの指定

Aタグは<a href=リンク先>や<a name=リンク名>のように使用するものです。ただ name= のときは表示されませんのでCSSで対象となるのは、href= のあるAタグということになります。このタグはリンク先に行く前と訪問後とで色が変わるようになっています。Aタグのリンク状態は3つあります。ただしIEではもうひとつの状態があります。これをまとめると次のようになる。

  1. リンク前
  2. 訪問後
  3. クリック後リンクするまで
  4. (IEのみ)タグの文字列の上にカーソルがあるとき
CSSではそれぞれの状態を指定し、次のようにスタイルを設定できます。 またクラス名を設定することもできます。 具体的には次のような書式となります。
  1. A:link{ プロパティ名:値;・・}
  2. A:visited { プロパティ名:値;・・}
  3. A:active { プロパティ名:値;・・}
  4. (IEのみ)A:hover { プロパティ名:値;・・}
ないし
  1. A.kishida:link { プロパティ名:値;・・}
  2. A.kishida:visited { プロパティ名:値;・・}
  3. A.kishida:active { プロパティ名:値;・・}
  4. (IEのみ)A.kishida:hover { プロパティ名:値;・・}

次の例はヘッダでの定義例です。リンクの状態により、色、文字のサイズを変更します。IEの場合カーソルを「最初に戻る」にあわせると、字が緑色になり文字サイズが150%になります。

<HTML>
<HEAD>
<TITLE>CSSTEST4</TITLE>
<STYLE type=text/css>
  h1.aka{color:red;
      font-size:150%;
   }
  .kuro{color:black;font-size:200%;}
  div{background:blue;color:white;}

  A.kishida:link{
  color:cornflowerblue;
  background:whitesmoke;
  }
  A.kishida:visited{
  color:black;
  text-decoration:none;
  }
  A.kishida:active{
  color:red;
  text-decoration:line-through;
  }
  A.kishida:hover{
  color:green;
  font-size:150%;
  text-decoration:underline;
  }
</STYLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF">
<a name="zemi"></a>
<h1 class=aka>CSSの書き方</h1>
<DIV>
CSSをAタグに使用する
</DIV>
<h1 class=kuro>これはh1タグでクラス指定した部分です</h1>
<DIV> これはdivタグで指定した部分です </DIV>
<A class=kishida href=#zemi>最初に戻る</A><br>
<A class=kishida hfre=#naiyo>訪問先なし</A>
</BODY>
</HTML>

実行例