<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="description" content="Cascading Style Sheets（カスケーディングスタイルシート）とは何か・何ができるのかということから、基本的な使い方を説明します。" />
<meta name="keywords" content="CSS,スタイルシート,外部CSS,参照,指定方法,メリット,誤作動,Cascading Style Sheets" />
<title>CSS概論 CSS 前提知識</title>
<link rel="stylesheet" type="text/css" href="http://w3g.jp/style/default" /><link rel="alternate" type="application/rss+xml" href="http://w3g.jp/index.xml" title="RSS update information" />
<link rel="alternate" type="application/rss+xml" title="SiteMap" href="http://w3g.jp/sitemap.xml" />
<link rel="start" href="http://w3g.jp/" title="World Wide Web Guide" />
<link rel="contents" href="http://w3g.jp/css/" title="CSS" />
<link rel="index" href="http://w3g.jp/css/guide/" title="前提知識" />
<link rel="next" href="http://w3g.jp/css/guide/selector" title="セレクタ（selector）" />
<link rev="made" href="mailto:ryo.ueda@gmail.com" />
<script src="/script/jquery" type="text/javascript"></script>
</head>
<body>
<p id="skip"><a href="#information">Go to information</a></p>
<h1>CSS概論</h1>
<script type="text/javascript" src="/script/adsense"></script>
<p>Cascading Style Sheets（カスケーディングスタイルシート）とは何か・何ができるのかということから、基本的な使い方を説明します。</p>
<h2>CSS とは何か・何ができるのか</h2>
<p>多種多様な <a href="../../others/data/user_agent">User Agnet（ユーザーエージェント）</a>がアクセス（支障なく情報を取得）できる、アクセシビリティの高いサイト作りには <strong>CSS</strong>（Cascading Style Sheets：カスケーディングスタイルシート）は欠かせません。CSS を使うことで、<abbr title="(eXtensible) HyperText Markup Language">(X)HTML</abbr> は本来の情報伝達のみの役割に徹することができ、さらにウェブページの見栄えを整えるのに役立ちます。Cascading Style Sheets の Cascade とは、順序立てられたリストという意味で、スタイルシートが段階的に継承していく働きを表しており、<abbr title="User Agent">UA</abbr> は制作者スタイルシート、ユーザースタイルシート、デフォルトスタイルシートの3つの中から好みのスタイルを自由に選択できるのが特徴です（スタイルを選べない UA もある）。</p>
<p>まず、スタイルシート（Style Sheets）とは HTML や XHTML のようにウェブ上で使われている言語に限ったものではなく、<abbr title="Personal Computer">PC</abbr>（<abbr title="パーソナルコンピュータ">パソコン</abbr>）を利用している方であれば、普段から何気なくスタイルシートにふれていることが多いはずです。たとえば、Microsoft Word, 一太郎などのワープロソフトでフォントの種類や文字の大きさ、色、行間の幅の指定など様々な文書の見栄え（レイアウト）に関する情報を定義しているのがスタイルシートなのです。</p>
<p>ウェブ上で使われるスタイルシートとは、主に <em><abbr title="(eXtensible) HyperText Markup Language">(X)HTML</abbr>文書に対しての見栄え（レイアウト）を定義する</em>ことを指します。スタイルシートには、いくつかのスタイル言語があり、(X)HTML文書の見栄えを指定するためのスタイル言語には、各視覚環境の UA の対応状況などから CSS が一般的に使用されています。つまり、CSS もいくつかのスタイルシートの中の一種でしかなく、他にもウェブ上で使われているスタイル言語に XSL（eXtensible Stylesheet Language）などがあります。CSS が (X)HTML文書に対しての見栄え（レイアウト）を定義するのに対し、XSL は XML文書に対しての見栄え（レイアウト）を定義します。そして、本稿（CSSガイド）で扱うのが (X)HTML文書に対しての見栄え（レイアウト）を定義するスタイルシートである CSS というわけです。</p>
<p>では、CSS では一体何ができるのでしょうか。(X)HTML には文章を 「見出し」「段落」「リスト」「表」のように各部分を構造化する特徴がありました。これに対して、(X)HTML文書の見栄えを定義する CSS は、これら (X)HTML によって構造付けされた「見出し」なら「見出し」の構造に対してレイアウトを定義するのが特徴です。たとえば、 (X)HTML で見出しと構造化した部分に、さらに文字の色や形などを装飾するための指定があると、見出しとして定義された部分に装飾に関する不明確な情報が余計に混じってしまうことになり、情報伝達の妨げとなります。そこで CSS は、従来の HTML が担ってきた情報伝達と見た目を整える2つの作業の内、見た目を整える作業については、CSS が分担することによって、<em>(X)HTML が効率的に情報交換を行えるように、(X)HTML文書が本来の役割とは違う見た目を達成する</em>のに役立ちます。</p>
<p>つまり、CSS は (X)HTML文書のコンテンツや論理構造と表現（見栄え）とを分離させることで、さまざまなメリットを生みます。(X)HTML はシンプルなまま、(X)HTML 本来の役割に徹することができ、さらに一度定義したスタイル情報は複数の (X)HTML文書で共有させることができるように設計されているので、サイト全体のデザインに一貫性を持たせるができ、メンテナンス性が大幅に向上します。CSS による文書のプレゼンテーション手法を習得すれば、あなたのウェブサイトはより鮮やかに、そしてより効率的な情報交換が行えるようになるのです。</p>
<h2>CSS を外部化するメリット</h2>
<p>CSS により定義したスタイル情報を (X)HTML文書に適用する方法は、主に次の3通りの方法に別れます。</p>
<ol>
<li>適用させる要素に対して、<code>style</code>属性を追加して直接スタイル情報を指定する</li>
<li>適用させる (X)HTML文書の <code>head</code>要素内に <code>style</code>要素を使ってスタイル情報を記述する</li>
<li>スタイル情報を記述したファイルを別に作成し、<code>link</code>要素で (X)HTML文書とスタイルシートのファイルとを連結させる</li>
</ol>
<p>これら3通りの方法のうち、もっとも簡単なのは、1番目の <code>style</code>属性で直接スタイル情報を指定する方法でしょう。この方法はウェブページの作成に慣れていない制作者ほど、この方法を使っていることが多いはずです。しかし、最も CSS のメリットを活かすことができるのは、3番目のスタイル情報を記述したファイルを別に作成し、<code>link</code>要素で (X)HTML文書とスタイルシートのファイルとを連結させる方法です。この方法が最も難しそうで手間のかかりそうですが、何故このような方法を使う必要があるのかを明確にし、そのメリットを説明しておかないことには、CSS 専用のファイルを作成して、わざわざ別ルートからスタイル情報を参照させる面倒なことをする必要性があるのかを理解できないことと思います。</p>
<p>1番目、2番目の方法は当該文書に直接スタイル情報を記述するので、そのスタイル情報が反映される有効範囲は該文書のみです。これに対して、CSS のルールセットを記述したファイルを外部から参照させる方法は、全ての (X)HTML文書に共有させることができるので、サイト全体の表現を簡単に統一することができます。さらに、スタイル情報を定義しているファイルの内容の一部を変更するだけで、サイト内の全ての (X)HTML文書のデザインを同時に全て変更することが可能となるので、作業の効率性・メンテナンス性が飛躍的に向上します。外部から参照させる手法のメリットはこれだけではありません。</p>
<p>ウェブページ作成の心得みたいなものに「<strong>KISSを大切にせよ</strong>」という一種の諺（格言）があります。&quot;KISS&quot; とは「Keep It Simple,Stupid」、または「Keep It Small and Simple」のそれぞれ頭文字をとったもので、どちらも「<strong>ウェブページは、シンプルにすべし</strong>」ということを意味します。外部から参照する方法は、他の2つの方法とは違って (X)HTML文書自体に直接スタイル情報を記述しているわけではないので、(X)HTML文書はシンプルな状態のままで、装飾を施すことができます。つまり、シンプルな (X)HTML文書はファイル自体の容量が軽く、他の2つの方法に比べてもページのレンダリングが速くなります。さらに CSS の機構が提案されるよりも以前に HTML文書に対するスタイルシートは <code>link</code>要素で参照する方法が提案されていたことから、スタイルシートを <code>link</code>要素で提供することで最適化されるように CSS の仕様も <abbr title="User Agent">UA</abbr> の実装も設計されています。</p>
<dl class="links">
<dt>関連</dt>
<dd><a href="../../xhtml/dic/link">link要素</a></dd>
<dd><a href="../../xhtml/dic/style">style属性</a></dd>
<dd><a href="../../xhtml/dic/head_style">style要素</a></dd>
</dl>
<h2>CSSファイルの作成方法</h2>
<p>CSSファイルとは、(X)HTML文書内の各要素を目印（<a href="selector">セレクタ</a>）にスタイル宣言のルールセットを記述したファイルのことを指します。スタイル宣言のルールセットは、Windows に付属しているメモ帳などのテキストエディタを利用して記述することができます。たとえば、(X)HTML文書において見出しとして定義された <code>h1</code>要素に対して、レイアウトを施したい場合は次のような形式でスタイル情報を記述します。</p>
<pre>h1 {
text-align : center ; border-width : 1px 4em 0em 4em ;
border-style : solid ; border-color : navy ;
}</pre>
<p>これは <code>h1</code>要素内のテキストを中央揃え（&quot;<code>text-align: center ;</code>&quot;）にして、さらに枠線の装飾（&quot;<code>border-width : 1px 4em 0em 4em ; border-style :solid ; border-color : #000080 ;</code>&quot;）を施しています。こうしたルールセットをいくつも記述して、CSSファイルとして保存します。そして、このようにルールセットがいくつも並べられるスタイルシートであることから順序立てられたリストとして CSS の設計者は Cascade と名付けられたようです。なお、CSSファイルを保存する際には、(X)HTML文書であれば一般的に「<code>.html</code>｣、または｢<code>.htm</code>」といった拡張子をつけるように、 CSSファイルの場合は「<code>.css</code>」の拡張子をつけて保存するのが一般的です（*拡張子は httpd.conf や <a href="../../others/htaccess/">.htaccess</a> に設定されている <a href="../../others/data/mimetypes"><abbr title="Multipurpose Internet Mail Extension">MIME</abbr>タイプ</a>に依りますが、<a href="../../others/htaccess/mimetypes">指定の拡張子に対する MIMEタイプを定義</a>することでどのような拡張子でも CSSファイルとして利用できます）。</p>
<h2>CSSファイルを(X)HTML文書に組み込む</h2>
<p>(X)HTML文書で CSS を使う場合には、ウェブブラウザがページを表示する際や検索エンジンのロボットがウェブページの情報を収集する際など、これらの <abbr title="User Agent">UA</abbr> が誤作動を起こさないように <code>head</code>要素内には、UA に対してあらかじめ 「この (X)HTML文書では CSS を使用しています」といったお知らせをして、スタイル情報を正しく解釈できるように CSS 専用の <a href="../../others/data/mimetypes"><abbr title="Multipurpose Internet Mail Extension">MIME</abbr>タイプ</a>を設定しておきます（XHTML1.1 以降の規格では、この <code>meta http-equiv</code>宣言は HTML互換のため設定すること自体が認められていません）。CSS の MIMEタイプは &quot;<code>text/css</code>&quot; です。</p>
<pre>&lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;</pre>
<p>次に、<code>link</code>要素に対して <code>href</code>属性でウェブサーバー内における CSSファイルの所在を URI で示します。 この指定が行われた (X)HTML文書は <code>link</code>要素で指定された CSSファイルを参照することができるようになり、CSS に適合する UA であれば、その CSSファイルのスタイル情報を解析し、(X)HTML で構造化されている各要素に対して、それぞれのスタイル宣言に応じたレイアウトを施した状態でレンダリング（描画）します。</p>
<pre>&lt;link rel=&quot;stylesheet&quot; href=&quot;sample.css&quot; type=&quot;text/css&quot;&gt;</pre>
<p><code>link</code>要素の <code>rel=&quot;stylesheet&quot;</code> の部分が外部の CSSファイルの参照を示し、続く <code>href=&quot;sample.css&quot;</code> の部分が CSSファイルである &quot;<code>sample.css</code>&quot; を参照するように、その所在を示しており、<code>type=&quot;text/css&quot;</code> が CSS用の MIMEタイプを示したものです。なお、この <code>link</code>要素の指定を複数記述することでひとつの (X)HTML文書に対して複数の CSSファイルを参照させることも可能です。</p>
<dl class="links">
<dt>関連</dt>
<dd><a href="../../xhtml/dic/link">link要素</a></dd>
<dd><a href="../../xhtml/dic/meta">meta要素</a></dd>
</dl>
<script type="text/javascript" src="/script/adsense2"></script>
<ul class="link">
<li class="gotop"><a href="#skip">Go to top</a></li>
<li class="next"><kbd>N</kbd><a href="http://w3g.jp/css/guide/selector" rel="next" accesskey="N">セレクタ（selector）</a></li>
</ul>
<dl id="information">
<dt>現在位置</dt>
<dd id="location"><ol>
<li class="first"><a href="http://w3g.jp/"><abbr title="World Wide Web Guide">W3G</abbr></a></li>
<li><a href="http://w3g.jp/css/">CSS</a></li>
<li><a href="http://w3g.jp/css/guide/">前提知識</a></li>
<li>CSS概論</li>
</ol></dd>
<dt>ナビゲーション</dt>
<dd id="nav"><ul><li><a href="/xhtml/">XHTML</a></li><li><a href="/css/" class="selected">CSS</a></li><li><a href="/javascript/">JavaScript</a></li><li><a href="/webstandards/">Web標準</a></li><li><a href="/seo/">SEO</a></li><li><a href="/others/">Others</a></li><li><a href="/blog/">Blog</a></li></ul><address><a href="http://w3g.jp/">World Wide Web Guide</a></address></dd>
<dt class="status">ステータス情報</dt>
<dd><dl>
<dt>作者</dt><dd><a href="/author">上田 遼</a></dd>
<dt>公開</dt><dd><span class="date">2006-01-28T23:34:56+09:00</span></dd>
<dt>更新</dt><dd><span class="date">2008-12-29T04:30:35+09:00</span></dd>
<dt><abbr title="Uniform Resource Identifier">URI</abbr></dt><dd><code class="URI">http://w3g.jp/css/guide/outline</code></dd>
</dl></dd>
<dt>検索</dt>
<dd id="search">
<form action="/srch/msearch.cgi" accept-charset="utf-8"><p>
<input type="text" size="35" name="query" value="" tabindex="1" accesskey="I" />
<kbd>I</kbd>
<input type="submit" value="Search" tabindex="2" accesskey="S" />
<kbd>S</kbd>
<input type="hidden" name="hint" value="ひらがな" />
<input type="hidden" name="index" value="" />
<input type="hidden" name="config" value="" />
</p></form>
</dd>
</dl>
<p class="promotion">直近の制作実績等：<a href="http://www.ohs.ac.jp/">大阪人間科学大学</a> <strong>New!</strong> / <a href="http://www.kun-ei.ac.jp/">大阪薫英女子短期大学</a> <strong>New!</strong> / <a href="https://www.816photo.jp/okuni/">セキスイハイム みんなのお国じまん</a> <strong>New!</strong></p>
<script type="text/javascript" src="/script/count" charset="utf-8"></script>
<script type="text/javascript">
var bid = 3;
var title = 'W3G'
var oid = '195';
var at = 'entry';
</script>
<script type="text/javascript" src="http://w3g.jp/tracking.js"></script>
<noscript>
<img src="http://w3g.jp/tracking/access.php?bid=3&amp;oid=195&amp;at=entry&amp;title=W3G" width="1" height="1" alt="" />
</noscript>
</body>
</html>
