<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>3streamer blog</title>
	<atom:link href="http://blog.3streamer.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.3streamer.net</link>
	<description>around the topic of web design, mobile, iOS, programing and more…</description>
	<lastBuildDate>Fri, 20 Jan 2012 03:13:08 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>デザイナーなら一度は見るべき！ハイクオリティな海外フライヤーを集めたサイト「Flyerfolio」</title>
		<link>http://blog.3streamer.net/html5-css3/inspiration-flyerfolio-564/</link>
		<comments>http://blog.3streamer.net/html5-css3/inspiration-flyerfolio-564/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 02:48:21 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[inspiration]]></category>
		<category><![CDATA[デザイン]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=564</guid>
		<description><![CDATA[これいいなぁと思ったのでご紹介。海外のチラシ、フライヤーを集めたサイト「Flyerfolio」です。紹介されているフライヤーのクオリティがどれも凄い！センスの良いものばかりです。 サムネイルをクリックすると大きなサイズで [...]]]></description>
			<content:encoded><![CDATA[<p>これいいなぁと思ったのでご紹介。海外のチラシ、フライヤーを集めたサイト「<a href="http://www.flyerfolio.com/" target="_blank">Flyerfolio</a>」です。紹介されているフライヤーのクオリティがどれも凄い！センスの良いものばかりです。</p><span id="more-564"></span><p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/f01.jpg" alt="f01.jpg" title="f01.jpg" width="548" height="333" class="alignnone" /></p>
<p>サムネイルをクリックすると大きなサイズでも見る事ができます。キレイなデザインのものばかりなので、見てるだけでも楽しいですね。サイト自体はWordPressで構築しているようです。</p>

<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/f02.jpg" alt="" title="f02.jpg" width="548" height="408" class="alignnone size-full wp-image-562" /></p>
<p>煮詰まったときに見ればインスピレーションの神が降りてくるかもしれませんw</p>

<ul>
<li><a href="http://www.flyerfolio.com/" target="_blank">http://www.flyerfolio.com/</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/inspiration-flyerfolio-564/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSSの疑似要素と疑似クラスをもう一度最初から</title>
		<link>http://blog.3streamer.net/html5-css3/pseudo-elements-and-pesudo-classes-530/</link>
		<comments>http://blog.3streamer.net/html5-css3/pseudo-elements-and-pesudo-classes-530/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 22:00:51 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[:after]]></category>
		<category><![CDATA[:before]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[疑似クラス]]></category>
		<category><![CDATA[疑似要素]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=530</guid>
		<description><![CDATA[先日FlickrがIE7とFirefox3.6をサポート対象外にするという発表がありました。IE7もシェアが少なくなって来ていますし、IEの自動アップデートが今年から開始されるので最新のブラウザへの移行も進みそうです。I [...]]]></description>
			<content:encoded><![CDATA[<p>先日Flickrが<a href="http://blog.flickr.net/en/2012/01/13/start-the-new-year-fresh/">IE7とFirefox3.6をサポート対象外にする</a>という発表がありました。IE7もシェアが少なくなって来ていますし、<a href="http://jp.techcrunch.com/archives/20111215about-damn-time-microsoft-will-silently-upgrade-everyone-to-latest-version-of-ie/">IEの自動アップデート</a>が今年から開始されるので最新のブラウザへの移行も進みそうです。</p><p>IE7をサポートから外せば結構色々な事ができるようになります。例えば:before, :after疑似要素(pseudo-elements)がIE8以上では使えるようになります。今回はこの疑似要素とはなんぞやというところから、疑似要素と疑似クラスの違い、そして実際に使えるTipsをいくつかご紹介します</p><span id="more-530"></span><h2>疑似要素(pseudo elements)とは</h2>
<p><em>疑似要素</em>と言われてもちょっとピンと来ないかもしれませんが、<em>:first-letter</em>や<em>clearfixで使われてるやつ</em>と言われれば「ああ、あれか！」と思う方は多いはず。</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.clearfix</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #00AA00;">;</span> 
    <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> 
    <span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">both</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.clearfix</span> <span style="color: #00AA00;">&#123;</span>zoom<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>clearfixで使われている<em>:after</em>が疑似要素です。他にも以下のような疑似要素があります。</p>
<ul>
<li>:before疑似要素</li>
<li>:after疑似要素</li>
<li>:first-letter疑似要素</li>
<li>:first-line疑似要素</li>
</ul>
<p>このうち:fiirst-letterと:first-lineは(マイナーなバグはありますが)IE6でも動くので使った事のある方も多いのではないでしょうか。例えば、文頭の1文字目を大きくするドロップキャップを実現するには:first-letterを使うことで実現出来ます。</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #3333ff;">:first-letter </span><span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>:beforeと:after疑似要素は<em>IE7までは非対応</em>です。IE8からようやく使えるようになりました。</p>

<h2>疑似クラス(pseudo classes)とは</h2>
<p>一方、<em>疑似クラス</em>というと、こちらはおなじみの<em>:hover</em>や<em>:link</em>などです。</p>
<p>疑似クラスはCSS2まではそれほど数も多くなかったのですが、CSS3になってから一気に増えました。疑似クラスを含め、CSSのセレクタは<a href="http://zero.css-happylife.com/selectors/">CSS Happy Zero</a>さんのところが素敵にまとめられているのでオススメです。</p>




<h2>疑似要素/疑似クラスの二つの違いは？</h2>

<p>疑似要素、疑似クラスって名前がややこしいですね。二つの違いはどのような所にあるのでしょうか。</p>

<h3>疑似クラスは要素全体を選択</h3>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">a<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">&#125;</span>
div<span style="color: #3333ff;">:first-child  </span><span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
textarea<span style="color: #3333ff;">:disabled </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>上のコードを見てもらえば分かる通り、疑似クラスは(マウスオーバーした時、テキストエリアがdisabledの時のように)要素の状態を選択条件として指定することができます。どの疑似クラスも<strong>要素全体を選択</strong>していることに注目です。</p>

<h3>疑似要素は要素の一部を選択</h3>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">p<span style="color: #3333ff;">:first-line </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">&#125;</span>
p<span style="color: #3333ff;">:first-letter </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#999</span><span style="color: #00AA00;">&#125;</span>
a<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;#&quot;</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>一方、<strong>疑似要素</strong>は「最初の一文字」や「最初の一行」のように要素の全体ではなく、その<strong>一部分を選択</strong>していることがわかります。「(セレクタが)選択しているのが要素の一部分なのか、それとも要素全体なのか」というのが疑似要素と疑似クラスの大きな違いになります。</p>


<h2>疑似要素で:beforeと::beforeって2つの書き方をみかけるけど、何が違う？</h2>
<p>実はこれ<strong>CSSのバージョンの違いによって書き方が違う</strong>のです。疑似要素はCSS2まではコロンが一つでしたが、CSS3になってコロンが二つになりました。ただし<strong>疑似クラスはCSS3でもコロンが1つ</strong>ということを注意しましょう。</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*-- CSS2 --*/</span>
<span style="color: #6666ff;">.sample</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.sample</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.sample</span><span style="color: #3333ff;">:first-child </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*-- CSS3 --*/</span>
<span style="color: #6666ff;">.sample</span><span style="color: #00AA00;">:</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span> 
<span style="color: #6666ff;">.sample</span><span style="color: #00AA00;">:</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.sample</span><span style="color: #3333ff;">:first-child </span><span style="color: #00AA00;">&#123;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>CSS3ではコロンの数によって疑似要素なのか疑似クラスなのかが分かりやすくなります。おそらくCSS3では疑似クラスも疑似要素も数が増えてしまい両者が区別がしにくいので、それを区別するためにこのようなシンタックスになったのでしょう。</p>
<p>ここで気になるのはブラウザの対応状況ですが、結論から言ってしまうと<strong>コロン2つの書き方は現状ではやめておいたほうが無難</strong>です。何故ならば<strong>IE8がコロン二つのCSS3の書き方に対応してないから</strong>です。またおまえか！IEぃぃぃ！</p>
<p>他のChromeやFirefoxなどモダンブラウザではコロン二つの書き方に対応しています。</p>

<h3>:before, :after疑似要素で生成できるもの</h3>
<p>:before, :afterは位置の指定だけなので、実際に生成する内容はcontentプロパティを用いて指定します。contentプロパティで表示できるものは大きく分けて以下3つ。</p>

<ul>
<li>テキスト</li>
<li>属性の値</li>
<li>画像</li>
</ul>

<p>具体的な書き方は下記</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*-- sample1 文字を表示 --*/</span>
<span style="color: #6666ff;">.sample1</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;文字もじText&quot;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*-- sample2 画像を表示 --*/</span>
<span style="color: #6666ff;">.sample2</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000; font-style: italic;">arrow.gif</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*-- sample3 属性値の表示 --*/</span>
a<span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span> <span style="color: #00AA00;">:</span> <span style="color: #ff0000;">&quot;（&quot;</span> attr<span style="color: #00AA00;">&#40;</span>href<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;）&quot;</span> <span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>テキストはそのまま表示されるけど、実体参照を用いて特殊記号などを表示する時は要注意です。例えばコピーライトの&copy;マークはcontent:&quot;&copy;&quot;;と書いても表示されません。どうやら<a href="http://tenderfeel.xsrv.jp/css/787/">数値実体参照の16進数表記にしてなおかつ数手踏まないとダメ</a>らしいです。contentプロパティで実体参照を使う時は注意しましょう。</p>

<p>他には↓こんな使い方もできます…</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/img0118a.png" alt=":before疑似要素とカウンターを用いた例"  width="548" height="150" class="alignnone" /></p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>始まりの話<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>夜明け前に<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>本棚からみつけた写真<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span></pre></div></div>





<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*-- sample4 カウンターの表示 --*/</span>
h2 <span style="color: #00AA00;">&#123;</span>
<span style="color: #000000; font-weight: bold;">counter-increment</span> <span style="color: #00AA00;">:</span> chapter <span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
h2<span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;第&quot;</span> counter<span style="color: #00AA00;">&#40;</span>chapter<span style="color: #00AA00;">&#41;</span> <span style="color: #ff0000;">&quot;章&quot;</span> <span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">80%</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">padding-right</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>



<p>使い方によっては結構便利かもしれませんね。</p>

<h3>:before, :afterで生成される場所</h3>
<p>次のようなHTMLとCSSがある場合、疑似要素で生成される場所を考えてみましょう。</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;phone-num&quot;</span>&gt;</span>090-5555-3XXX<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span></pre></div></div>





<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.phone-num</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#39C</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#006699</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.phone-num</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
   <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\0</span>0260e&quot;</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;">120%</span><span style="color: #00AA00;">;</span>
   <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#000</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/img0118b.png" alt="pタグのボックス内に生成" title="img0118b.png" class="alignnone" width="548" height="140" /></p>

<p>図にある通り:beforeで生成される場所はpタグの最初のテキストの直前に生成されます。afterであれば最後のテキストの後ろに生成されることを覚えておきましょう。</p>


<h2>まとめ</h2>
<p>疑似要素、疑似クラスともに非常に便利なセレクタです。特に:before,:after疑似要素はボックスを生成できるので色々な表現や使い方が考えられるようになりました。例えば疑似要素とCSSのみで画像を一切使わない <a href="http://nicolasgallagher.com/pure-css-gui-icons/demo/">Pure CSS GUI icons</a>というのもあります。</p>
<h3>:before, :after実際の使いどころは？</h3>
<p>:before, :after疑似要素はIE8以降でないと使えないという弱点があるので、企業サイトでは使いどころが難しいかもしれませんが、スマートフォンサイトでは問題無く使えるので今から覚えておいて損は無いですね。プログレッシブエンハンスメントの考えに理解のあるクライアントだったらPC版Webサイトのクリティカルでない部分に使ってみてもいいと思います。</p>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/pseudo-elements-and-pesudo-classes-530/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSSでボックスを上下左右中央に配置する第３の方法</title>
		<link>http://blog.3streamer.net/html5-css3/css-box-be-centerd-483/</link>
		<comments>http://blog.3streamer.net/html5-css3/css-box-be-centerd-483/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 02:43:18 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=483</guid>
		<description><![CDATA[CSSを使ってBoxを上下左右中央に配置するやり方はこれまでもいくつかありました。代表的なのはdisplay: table; を使った方法と、positionプロパティとネガティブmarginを用いたやり方が有名ですね。 [...]]]></description>
			<content:encoded><![CDATA[<p>CSSを使ってBoxを上下左右中央に配置するやり方はこれまでもいくつかありました。代表的なのはdisplay: table; を使った方法と、positionプロパティとネガティブmarginを用いたやり方が有名ですね。ネガティブマージンを使った方法は以下のようなものです。</p><span id="more-483"></span><p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/img5.png" alt="子要素を上下左右中央に揃える" title="img4.png" border="0" width="548" height="200" class="alignnone" /></p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;centered&quot;</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>CSSで上下左右真ん中に配置されます<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></td></tr></table></div>





<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span><span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span>rerative<span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#CCC</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">min-width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span> 
  <span style="color: #000000; font-weight: bold;">min-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">240px</span><span style="color: #00AA00;">;</span>  
 <span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.centered</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">240px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">-120px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">-150px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>




<p>ポイントは<strong>boxの横と高さの1/2 をネガティブマージンで指定するところ</strong>ですね。class=&#8221;box&#8221;に指定しているmin-widthはブラウザのウィンドウサイズをboxの大きさよりも小さくした時の対策です。これが無いとカラム落ちのような状態になってしまいます。</p>

<p>このやり方のネックは中央に配置される子要素のboxの幅と高さをCSSで指定しないと使えないという点です。例えば、内包する子要素が画像で色々なサイズがある場合や、内包するコンテンツが増減してBoxの高さが変化する場合などは逐一CSSの幅と高さを指定し直さないといけないのでかなり面倒です。display:tableを用いたセンタリングでもそういったことを解消してくれますが、これから紹介する第３の方法でも可能です。</p>

<section>
<h2>子要素の大きさをCSSで指定しなくてもOKなセンタリング</h2>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/img3.png" alt="疑似要素:beforeを用いて要素を生成する" title="img3.png" border="0" width="548" height="200" class="alignnone" /></p>
<p>このやり方は<a href="http://css-tricks.com/centering-in-the-unknown/">CSS Trick</a>に載っていたものですが、日本語ではみかけなかったのでご紹介します。</p>

<section>
<h3>上下左右センタリングする子要素にテキストなどが入る場合のサンプル</h3>
<p>中にテキストが入っていて、高さが変化するボックスの場合の例です。この例では親要素のclass=&#8221;box&#8221;の横幅のみwidthで指定しますが、bodyを親要素とする場合はwidth=&#8221;100%&#8221;を指定してください。</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;centered&quot;</span>&gt;</span>
       <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>テキストテキストテキスト。テキストテキストテキスト<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
   <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>





<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span> <span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">min-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">410px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.box</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">''</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-0.25em</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.centered</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">300px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span> <span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>




<p>ポイントはbefore擬似要素とcontentプロパティを使って中央配置する要素の前にダミー要素を生成しそれを上手く利用してセンタリングを実現しています。この方法であれば中央配置する<strong>子要素の高さが変化しても大丈夫</strong>です。</p>
</section>
<section>
<h3>上下左右センタリングする子要素が画像の場合</h3>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">div</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;box&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">img</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;samplejpg&quot;</span> <span style="color: #000066;">alt</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;300&quot;</span> <span style="color: #000066;">height</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;240&quot;</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;centered&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">div</span>&gt;</span></pre></div></div>





<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.box</span> <span style="color: #00AA00;">&#123;</span> 
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">400px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">min-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">410px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.box</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">''</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-0.25em</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#F00</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.centered</span> <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">middle</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>




<p>画像のような固定幅をもつ要素でも大丈夫です。この方法はCSS側で子要素のwidthとheightを指定する必要が無いので汎用性があります。</p>
<p>ただしbefore擬似要素に対応していない<strong>IE7以下では使えません</strong>。それ以外のモダンブラウザ及びIE8以上であれば使うことが出来ます。使い所としてはスマートフォンサイトで要素を中央表示させたい時とかブログのテンプレ作成などでしょうか。</p>
</section>
</section>
<p>IE6がもう少しで絶滅してくれそうなので、MSさんにはIE7の駆逐…じゃなかったバージョンアップの周知やブラウザのUPdateキャンペーンなどを頑張って貰いたいところです。</p>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/css-box-be-centerd-483/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今こそ本気でJavaScriptを学ぶべき10の理由</title>
		<link>http://blog.3streamer.net/html-css-beginner/learning-javascript-481/</link>
		<comments>http://blog.3streamer.net/html-css-beginner/learning-javascript-481/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 02:11:19 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[HTML初心者向け]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Titanium Mobile]]></category>
		<category><![CDATA[webアプリ]]></category>
		<category><![CDATA[Windows8]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=481</guid>
		<description><![CDATA[その昔、JavaScriptはWeb開発者の間では嫌われ者であった。IEとNNがシェアを争っていた頃、JavaScriptのブラウザ間の互換性は致命的なレベルであった。それでも気鋭のWeb開発者達は新たな可能性を開拓しよ [...]]]></description>
			<content:encoded><![CDATA[<p>その昔、JavaScriptはWeb開発者の間では嫌われ者であった。IEとNNがシェアを争っていた頃、JavaScriptのブラウザ間の互換性は致命的なレベルであった。それでも気鋭のWeb開発者達は新たな可能性を開拓しようとJavaScriptを使い、DHTMLなんてものを生み出した。しかし、その多くはバッドノウハウであり、ブラウザ間の互換性も依然として解決されておらず、そして「JavaScriptは扱いにくいダメ言語」というレッテルが貼られてしまった。</p>
<p>その後、長らく暗黒の時代を送っていたJavaScriptだったが、Google Mapsの登場により息を吹き返し、prototype.jsやjQueryという数多くの扱いやすいライブラリが産まれ、今やJavaScriptはWebサイトのみならず、Webアプリケーション開発やサーバーサイドにまでその利用範囲を広げている。何故いまJavaScriptを勉強すべきなのか？</p>
<span id="more-481"></span>
<section>
<h2>1. Webで出来ることが広がる</h2>
<p>HTMLとCSSだけではどうしても限界がありますが、JavaScriptを使うことで様々な機能や動きを実装することができます。またtwitterやFacebook、Instagramといった多くのWebサービスはAPIを公開していますので、JavaScriptからそれらを利用することが出来ます。身近な例で言えばJavaScriptとtwitterのAPIを使ってtwitterのタイムラインを表示したり、FacebookのAPIを用いてイイねボタンを表示したりといったことが可能です。</p>
<p>あなたがJavaScriptを習得すればHTMLとCSSだけでは出来なかった「機能」を実装することができるようになります。<strong>Webで出来る事、可能性が広がる</strong>のです。</p>
</section>

<section>
<h2>2. プログラムの勉強になる</h2>
<p>JavaScriptはコンパイルの必要が無く、Webブラウザさえあれば実行できるというメリットがあります。このため他の多くのプログラム言語のように開発環境を構築する必要が無く、すぐにプログラムを書き始めることができます。</p>
<p>JavaScriptはその導入の敷居が低いことからもプログラムのイロハを学ぶのに向いています。JavaScriptではif文、for文などどのプログラムでも出てくる基本的な構文を学ぶ事が出来ます。また関数やオブジェクトといったものも学ぶ事が出来ます。</p>
<p>JavaScriptはプロトタイプベースのオブジェクト指向(風)言語でありながら、関数型言語としての特徴も備えているので、初学者や他の言語を学んで来た人にとっては少々分かりづらい部分もありますが、それを補っても余りある程魅力的な言語です。</p>

<ul>
<li><a href="http://blog.livedoor.jp/dankogai/archives/51005691.html" target="_blank">私がJavaScriptを初心者用の言語として選んだわけ &#8211; 404 Blog Not Found</a></li>
</ul>
</section>

<section>
<h2>3. jQueryプラグインをカスタマイズできる</h2>
<p>jQueryのプラグインは非常に手軽に導入できますが、自分でカスタマイズしようとすると中身を読みつつコードを弄らなければなりません。そういった場面でこれまで諦めてきた人も、JavaScriptを勉強することでプラグインのカスタマイズも出来るようになるでしょう。</p>
</section>

<section>
<h2>4. プラグインを自分でも書けるようになる</h2>
<p>JavaScriptをしっかり勉強すればjQueryのプラグインを自分で書くことが出来るようになります。最初はちょっとした機能でも良いですから自分で書いてみることが大切です。どんどん実験しましょう。</p>
</section>

<section>
<h2>5. FirefoxやChromeの拡張を作れる</h2>
<p>FirefoxやChromeの拡張機能はその大部分がJavaScriptによって実装されています。JavaScriptが出来るようになれば自分で拡張機能も作れるようになります。</p>
<ul>
<li><a href="https://dev.mozilla.jp/addons/intro/" target="_blank">mozila 拡張機能開発入門</a></li>
<li><a href="http://code.google.com/chrome/extensions/docs.html" target="_blank">Google Chrome Extensions</a>[英語]</li>
<li><a href="http://dev.screw-axis.com/doc/chrome_extensions/" target="_blank">Chrome Extensions API リファレンス</a></li>
</ul>
</section>

<section>
<h2>6. サーバーサイドもNode.jsで開発できる</h2>
<p>これまでJavaScriptはクライアントサイドの言語としてブラウザ上でしか動かすことができませんでしたが、<a href="http://nodejs.org/">Node.js</a>というサーバーサイドでJavaScriptを動かす技術が出てきたことで、その利用範囲がサーバー側にも広がりました。Node.jsは導入事例も増えてきているので今後も要注目です。</p>
<ul>
<li><a href="http://www.atmarkit.co.jp/fwcr/index/index_nodejs.html" target="_blank">Node.jsでサーバサイドJavaScript開発入門</a></li>
<li><a href="http://phpspot.org/blog/archives/2011/02/nodejs.html" target="_blank">node.jsに関する基礎や開発・チュートリアルのまとめ</a></li>
</ul>
</section>

<section>
<h2>7. Android,iPhoneアプリも開発も出来る</h2>
<p>JavaScriptはWebサイトを作成するだけではありません。AndroidやiOSのネイティブアプリだって開発可能です。<a href="http://www.appcelerator.com/products/titanium-mobile-application-development/">Titanium Mobile</a>を使えばJavaScriptを使ってAndroidやiPhoneアプリを開発することが出来ます。実際に数多くのアプリが<a href="http://www.appcelerator.com/products/titanium-mobile-application-development/">Titanium Mobile</a>によって産み出されています。</p>
<section>
<h3>以下Titanium Mobileで開発されたアプリの一例</h3>
<ul>
<li><a href="http://mogsnap.jp/">Mogsnap</a></li>
<li><a href="http://jp.techcrunch.com/archives/jp20110719zaim-social-finance-software-for-ios/">Zaim</a></li>
<li><a href="http://www.6wunderkinder.com/wunderlist/">wunderlis</a></li>
</ul>
</section>
</section>

<section>
<h2>8. Windows8のアプリも開発出来る</h2>
<p>今年(2012年)発売が予定されている<a href="http://techwave.jp/archives/51717914.html">Windows8ではネイティブアプリの開発にHTML+CSS+JavaScriptを使う</a>ことができます。Windows8用のアプリを販売する「Windows Store」にHTML+JavaScriptで作ったアプリを登録し、販売することもできます。今JavaScriptを学ばない手はありません。</p>
</section>

<section>
<h2>9. 将来性が担保されている</h2>
<p>AdobeのFlashはiOSデバイスとHTML5の普及により今後の戦略の変更を余儀なくされました。つまりAdobeのさじ加減ひとつでFlashやActionScriptの未来も大きく変わる可能性があるということです。またGoogleはJavaScriptの欠点を補うべくDartという新しいプログラミング言語を提唱してますが、今後どうなるかは未知数です。</p>
<p>一方JavaScriptはECMAという団体が標準仕様を策定しておりWeb標準の技術の一つとして確固たる地位を築いています。今後もHTML5とともにWebの中核技術として使われ続けるのは疑いようがありません。JavaScriptはActionScriptやDartと異なり、常にオープンな場で仕様策定が進められ、そしてWeb標準の一翼を担うものとして将来性が担保されている言語と言えるでしょう。</p>
</section>

<section>
<h2>10.Webアプリの時代が来る</h2>
<p>現在のスマートフォンではネイティブアプリと呼ばれるアプリケーションがほとんどです。しかし、こういった状況はいずれ変化しHTML5+CSS3+JavaScriptを用いた<strong>Webアプリケーションが主流の時代になる</strong>だろうと予見されています。</p>
<p>JavaScriptはLL(Lightweight Language)に属する言語でありながら、その実行速度は過去数年間で飛躍的に高まりました。良い意味でブラウザベンダー各社が競い合っているので、今後も処理速度の向上が見込まれます。処理能力が上がるということはネイティブアプリと遜色無いレベルのWebアプリが出来るということにも繋がります。</p>
<p>またAndroid, iOS, WindowsといったOSの異なる各デバイスに対して、同一の言語(HTML+CSS+JS)で開発が出来るというのは唯一の方法です。</p>
<p>一方ではAndroid, iOS, Windows Phoneといったデバイス間の実装の差異や通信速度など越えなければならない壁がいくつもあります。しかし、これから数年かけてじわじわとWebアプリが拡大していく事は間違いありません。</p>
<ul>
<li><a href="http://jp.techcrunch.com/archives/20111224the-decline-and-fall-of-the-appian-empires/" target="_blank">アプリ帝国の衰亡</a></li>
</ul>
</section>

<section>
<h2>結論</h2>
<p>長々と書いてきましたが言いたい事は１つ<strong>「JavaScriptを勉強しておけば可能性が広がるよ！楽しいよ！」</strong>って事です。これから先もJavaScriptはフロントエンドにおける重要な技術の1つであり続けるでしょう。さらにアプリ開発やサーバーサイド、そしてWebアプリと現在進行形でその利用範囲は拡大し続けています。初心者の方、デザイナーの方、「今年こそJavaScriptを」と思っている方、あなたもいまから本気でJavaScriptを学んでみてはいかがでしょうか？</p>
</section>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html-css-beginner/learning-javascript-481/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebKitに新搭載(予定)！CSSプロファイルツールでCSSのチューニングをしよう</title>
		<link>http://blog.3streamer.net/html5-css3/webkit-css-profiler-tool-453/</link>
		<comments>http://blog.3streamer.net/html5-css3/webkit-css-profiler-tool-453/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 04:15:53 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[WebKit]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=453</guid>
		<description><![CDATA[HTML5が広まり始めた昨今、Webアプリケーションやブラウザ上で実現するゲームなどが出現し、Webブラウザは単なるWebサイトを閲覧するものからその範疇を越えて、アプリの実行環境として加速度的に進化しています。そういっ [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5が広まり始めた昨今、Webアプリケーションやブラウザ上で実現するゲームなどが出現し、Webブラウザは単なるWebサイトを閲覧するものからその範疇を越えて、アプリの実行環境として加速度的に進化しています。そういったブラウザ上で動作するWebアプリやゲームはパフォーマンスが非常重要になってきます。これまでは主にバックエンドやJavaScriptの最適化などの話は良く聞きましたが、CSSとそのパフォーマンスに関する話は少なかったように思います。</p>
<p>今回は「<a href="http://perfectionkills.com/profiling-css-for-fun-and-profit-optimization-notes/">Profiling CSS for fun and profit. Optimization notes.</a>」という海外の記事からCSSのセレクタとパフォーマンスの話と、Webkitに新たに搭載される(予定の)CSS プロファイラーツールをご紹介します。</p><span id="more-453"></span>
<section>
<h2>ちりも積もればパフォーマンスに影響?</h2>
<p>CSSの<strong>セレクタは右側から解釈される</strong>というのは既にご存知の方も多いかと思います。(知らなかった方はこちらの記事をどうぞ→ <a href="http://webtech-walker.com/archive/2010/05/18162034.html">CSSセレクタ高速化の話し</a>)。</p>
<p><a href="http://perfectionkills.com/profiling-css-for-fun-and-profit-optimization-notes/">Profiling CSS for fun and profit. Optimization notes</a>ではさらにつっこんで、どのセレクタが遅くなるのかという事をOperaとWebkitのプロファイリングによる実験結果を踏まえて詳しく書かれています。この記事の要点だけを書いていくと&#8230;</p>
<ul>
	<li>トータルのセレクタ数を減らす(.ie .foo .bar{}なども使わない方が良い)</li>
	<li>ユニバーサルセレクタ(*)は避けるべき。(<strong>ユニバーサルセレクタは最もコストの高いセレクタ</strong>)</li>
	<li>ページズームは一部のブラウザ(Opera)のcssパフォーマンスに影響を与える。</li>
	<li>ウィンドウサイズの変更はOperaは影響ないが、Chromeはパフォーマンスに影響が出る。</li>
	<li>ページのリロードはCSSのパフォーマンスに悪影響を与える(Opera)</li>
	<li>border-radiusとtransformは最新版のwebkit, operaでも最もコスト(レンダリングの時間)がかかるプロパティである。</li>
	<li>セレクタのマッチングはWebkitは非常に優秀(Operaよりも)</li>
</ul>
<p>以前書いた「<a href="http://blog.3streamer.net/html-css-beginner/reset-css-1/">HTML初心者が知っておくべきリセットCSS と3つのポイント</a>」でもユニバーサルセレクタについてそのデメリットを言及しましたが、この記事の実験結果からもユニバーサルセレクタは非常にコストが高いプロパティなのが分かります。</p>
<p>またCSS3のプロパティでコストが高いのがtransformプロパティです。たった1度だけ傾けるだけでも非常にコストのかかるプロパティのようです。なんとなくtransformはコストが高いってのは分かる気がしますね。一方意外だったのがborder-radiusプロパティ。border-radiusはtext-shadowやグラデーションを指定するlinear-gradientなどと比べてもコストの高いプロパティのようです。</p>
<p>ただし、border-radiusがコストが高いプロパティと言っても1つ１つは微々たる時間しかかかりません。この<a href="https://github.com/kangax/perfectionkills.com/blob/master/css_perf/css_perf_test.html">テストページ</a>のように400個ものボタンにborder-radiusを適用させると顕著に現れるレベルですので、普通に使う分にはあまり気にする必要は無いでしょう。ただし、CPUが非力なスマートフォン向けサイトだったり、ブラウザ上で動かすWebアプリやゲームなど、<strong>対象とするデバイスと作成するもの次第ではこれらの積み重ねが全体のパフォーマンスに影響してくる</strong>と思われます。</p>
<p>この記事ではOperaに搭載されたStyle profilerを使ってCSSのコストを計測しています。一方webkitではOperaと同じ機能は<strong>まだ</strong>無いのでJavaScriptとTimlineなどを組み合わせて実験しています。&#8230;が、ここで気になる記述を発見。</p>
<blockquote>
<p>Opera folks came out with an experimental “style profiler” (followed by WebKit’s ticket+patch shortly after).</p></blockquote>
<p>ん？Webkitも直ぐに同じような機能が来るの？ということで調べてみたところ、なんと<a href="http://peter.sh/2012/01/css-selector-profiler-source-mapping-and-software-rendering/">CSS  ProfilerがWebkitにもキテター</a>！</p>
<p>とは言ってもまだ正式にリリースされている訳ではなく、<a href="http://nightly.webkit.org/">WebkitのNightly Build</a>(WebKit r104394)で試す事ができます。(Nighty Build版のインストールは自己責任で)</p>
</section>
<section>
<h2>Webkitに搭載されたCSSプロファイラを試してみる</h2>
<p>CSSプロファイラーを使う場合にはWebkitのNightly Build版を立ち上げて上部のメニューバーから「開発 &gt; Webインスペクタを表示」をクリックします。そしてProfileタブをクリックします。</p>
<p><img class="alignnone size-full wp-image-457" title="" src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss01.png" alt="" width="548" height="218" /></p>
<p>「Select profiling type」という画面でJavaScriptか、CSSを選ぶ事ができます。CSSのプロファイルを見たいので「Collect CSS Selector Profile」を選びます。</p>
<p><img class="alignnone size-full wp-image-458" title="" src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss02.png" alt="" width="548" height="173" /></p>
<p>その下にある「Startボタン」若しくは左下の「●ボタン」を押します。するとCSSのProfilingがスタートします。この状態でページをリロードすると、CSSの各セレクタのマッチング数とそれに要する時間が記録され、もう同じボタンを押すとストップし、Profileファイルが左ペインに表示されます。</p>
<p>「CSS SELECTOR PROFILES」に表示されたアイコンをクリックすると一覧で表示されます。これで、どのセレクタがボトルネックになっているのかが一目瞭然で分かります。</p>
<p><img class="alignnone size-full wp-image-459" title="" src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss03.png" alt="" width="548" height="185" /></p>
<p>もちろんWebkitなのでChromeにも搭載予定です。さらにさらに<strong>ソースコードマッピング</strong>とかもできちゃうようになるみたいですよ！ますますChromeの開発者ツールが充実していきそうで非常に楽しみですね。</p>
</section>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/webkit-css-profiler-tool-453/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>これは便利！『ScanSnap S1100』でEvernoteと連携 どこでも快適ペーパーレスライフ</title>
		<link>http://blog.3streamer.net/life-hack/paperlesslife-scansnap-s1100-412/</link>
		<comments>http://blog.3streamer.net/life-hack/paperlesslife-scansnap-s1100-412/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 05:03:49 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[ライフハック]]></category>
		<category><![CDATA[Evernote]]></category>
		<category><![CDATA[ScanSnap]]></category>
		<category><![CDATA[スキャナー]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=412</guid>
		<description><![CDATA[遅ればせながら、あけましておめでとうございます。今年はちょっと気合いいれてBlogも更新していきたいな〜なんて思ってます。まぁ、続くかどうか生暖かく見守っていて下さいwさて、年末に部屋の大掃除を兼ねて断捨離をやっていたの [...]]]></description>
			<content:encoded><![CDATA[<p>遅ればせながら、あけましておめでとうございます。今年はちょっと気合いいれてBlogも更新していきたいな〜なんて思ってます。まぁ、続くかどうか生暖かく見守っていて下さいw</p><p>さて、年末に部屋の大掃除を兼ねて断捨離をやっていたのですが、出るわ出るわ不要になった紙の書類やチラシやらDMやらどこぞのイベントでもらった製品紹介のパンフレットやら&#8230;etc。よくもまぁこんなに溜め込んだものだと自分でもビックリ。</p>
<p>紙で書類を保存するというのはもう時代遅れだよな～と思いつつ、今まで何にもして来なかった僕ですがこれを機会に全ての書類を電子化することを決意。そこで早速Amazonで購入したのがこれ。</p><span id="more-412"></span>

<div class="amazlet-box">
	<div class="amazlet-image">
	<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSSE/3str-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/31JmkRNwXCL._SL160_.jpg" alt="FUJITSU ScanSnap S1100 FI-S1100" /></a>
	</div>
	<div class="amazlet-info">
		<div class="amazlet-name">
		<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSSE/3str-22/ref=nosim/" name="amazletlink" target="_blank">FUJITSU ScanSnap S1100 FI-S1100</a>
			<div class="amazlet-powered-date">posted with <a href="http://www.amazlet.com/browse/ASIN/B004COKSSE/3str-22/ref=nosim/" title="FUJITSU ScanSnap S1100 FI-S1100" target="_blank">amazlet</a> at 12.01.06</div>
			</div>
		<div class="amazlet-detail">富士通 (2010-11-22)</div>
	</div>

	<div class="amazlet-sub-info">
		<div class="amazlet-link">
		<a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSSE/3str-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a>
		</div>
	</div>
</div>


<p>この商品を選んだのは<strong>サイズが小さく携帯性に優れている</strong>ところと<strong>USBから給電できる</strong>ところです。さらに<strong>Evernoteと連携することが出来る</strong>のも大きいですね。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss01.jpg" alt="届いたScanSnapの箱" title="" width="548" height="300" class="alignnone size-full wp-image-436" /></p>
<p>年明け2日に商品が到着。早速オープン。大きさ比較のためにMac Book Air 11inch を横に置いてみました。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss02.jpg" alt="MacBook Air 11inchとの大きさ比較" title="ss02" width="548" height="398" class="alignnone size-full wp-image-437" /></p>
<p>一般的なスキャナに比べるとかなり小さいですね。カバンに入れて手軽に持ち運びできる大きさです。単純にスキャンするだけでも非常にお手軽で使い勝手も申し分ないのですが、折角Evernoteと連携機能があるのでこれを設定してみましょう。</p>
<h2>1.準備編</h2>
<p>まずはS1100を使うための準備です。PCにScanSnap Managerをインストールします。</p>
<h3>1-1 ドライバをインストール</h3>
<p>まずはドライバ(ScanSnap Manager)をインストールしましょう。付属で付いてくるSetup DVD-ROMを入れさくっとインストールします。Evernoteのインストーラーも入っていますが、既にEvernoteをインストールしている方は再度入れる必要はありません。</p>
<h3>1-2 最新版アップデータを適用</h3>
<p>Windows版もMac版も2011年10月にScanSnap Managerの最新版アップデータ(2012年1月現在)が公開されていますので、それを適用します。特にMac OSX Lionをお使いの方は<strong>Lionに対応したアップデータなので必ず入れましょう</strong>。</p>
<ul>
	<li><a href="http://scansnap.fujitsu.com/jp/downloads/mac-mg32.html">ScanSnap Manager （Mac専用） クラウド連携、モバイル連携対応アップデート（V3.2L41）</a></li>
	<li>
<p><a href="http://scansnap.fujitsu.com/jp/downloads/mg51.html">ScanSnap Manager（Windows®専用）クラウド連携、モバイル連携対応アップデート（V5.1L41）</a></p></li>
</ul>
<p>通常はこれだけでOKです。後はUSBでScanSnapを繋げば使えるようになります。</p>
<h2>2. Evernoteと連携をする</h2>
<p> Evernoteとの連携を設定します。Evernoteをインストールしていない場合は<em>インストールを行ってから設定を行う</em>ようにして下さい。</p>
<h3>2-1 ScanSnap Managerを起動</h3>
<p> デフォルトでは「クイックメニューを仕様する」にチェックが入っているので外します(チェックを外さないと他のタブを選べません)。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss_blog2.png" alt="ScanSnap Managerの起動画面。チェックを外す" title="" width="548" height="444" class="alignnone shadownone size-full wp-image-426" /></p>
<p>次にタブの一番左にある「アプリ選択」を選択して「アプリケーションの選択」から「ドキュメントをEvernoteに保存」を選びます。</p>
<p><a href="http://blog.3streamer.net/wp-content/uploads/2012/01/ss_blog3.png"><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss_blog3.png" alt="" title="ss_blog3" width="548" height="444" class="alignnone size-full wp-image-431 shadownone" /></a></p>
<h3>2-2 読み取りモードの設定</h3>
<p>次に読み取りモードのタブを選択し「オプション」ボタンをクリックします。</p>
<p>オプションの設定で「文字をくっきりします」と「文字列の傾きを自動的に補正します」にチェックを入れておきましょう。これでスキャンした文字が傾いている場合に自動的に補正してくれるようになります。</p>
<p> OCRはスキャンした後の処理が重くなるし、ファイルサイズも大きくなるのでチェックを外しておきます。スキャン時点でOCRに対応してなくてもEvernoteは画像から文字情報を自動的に読み取ってくれるので大丈夫です。</p>
<h2>3. スキャンしてEvernoteに保存する</h2>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2012/01/ss03.jpg" alt="ScanSnapの給紙ふたを開けると自動的に電源がONに" title="ss03" width="548" height="346" class="alignnone size-full wp-image-438" /></p>
<p>ScanSnapを付属のUSBケーブルでPCに繋ぎ、給紙カバーを開けます。すると自動的に電源が入りスイッチ部分が青く光ります。あとはどんどんスキャンすれば自動的にEvernoteに保存してくれます。とっても便利ですね！</p>
<p>僕は<a href="http://www.iphone-girl.jp/iphone-tips/161520.html">iPhone女史さんの記事</a>を参考に年賀状をスキャンしてEvernoteに取り込んでみました。<strong>マジ便利！！！</strong></p>
<p>ScanSnap S1100は重さも大きさも持ち運びに最適です。カバンに入れてどこでも持っていくことができます。本を裁断してスキャンする所謂「自炊」には向きませんが、手軽に紙を電子化するツールとしては非常に良い製品だと思いました。</p>
<p>これで出先で貰った書類や印刷物は全て現場で電子化することができます。EvernoteなのでiPadやiPhoneで閲覧することもできるので非常に便利です。ちなみに、裸のままカバンに入れるのはちょっと抵抗があったのでScanSnap S1100専用のケースも買いました。</p>
<div class="amazlet-box"><div class="amazlet-image div0" ><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSQG/3str-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/11Dab2kFzlL._SL160_.jpg" alt="ScanSnap S1100 専用ケース FI-S110SCS" /></a></div><div class="amazlet-info div1" ><div class="amazlet-name div1" ><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSQG/3str-22/ref=nosim/" name="amazletlink" target="_blank">ScanSnap S1100 専用ケース FI-S110SCS</a><div class="amazlet-powered-date div2" >posted with <a href="http://www.amazlet.com/browse/ASIN/B004COKSQG/3str-22/ref=nosim/" title="ScanSnap S1100 専用ケース FI-S110SCS" target="_blank">amazlet</a> at 12.01.06</div></div><div class="amazlet-detail">富士通 (2010-11-20)</div><div class="amazlet-sub-info div3" ><div class="amazlet-link div4" ><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B004COKSQG/3str-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div></div></div>

<p> これを機会にペーパーレスライフを始めてみてはいかがでしょうか？</p>

]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/life-hack/paperlesslife-scansnap-s1100-412/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5のアウトラインって何？ Web制作者なら知っておきたいアウトラインの仕組み</title>
		<link>http://blog.3streamer.net/html5-css3/html5-outline-300/</link>
		<comments>http://blog.3streamer.net/html5-css3/html5-outline-300/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 13:51:02 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Outline]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=300</guid>
		<description><![CDATA[HTML5を理解する上で欠かせないのがアウトライン生成の仕組みとセクショニングコンテンツの理解です。sectionとarticleの違いを覚えるだけでは不十分で、現に間違った使い方をしているサイトが結構あります。今回はH [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5を理解する上で欠かせないのがアウトライン生成の仕組みとセクショニングコンテンツの理解です。sectionとarticleの違いを覚えるだけでは不十分で、現に間違った使い方をしているサイトが結構あります。今回はHTML5のアウトラインアルゴリズムについて深く掘り下げていきます。</p><span id="more-300"></span>

<section>
<h2>そもそもアウトラインって何？</h2>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/o051.png" alt="" title="o03" width="547" height="139" class="alignnone size-full wp-image-360" /></p>
<p><em>&#8220;アウトライン&#8221;</em>の言葉には「人や物の輪郭(線)・外形」又は「骨子・主要な部分」という意味があります。前者の意味では「Illustratorの文字のアウトライン化」と言えばデザイナーさんはしっくりくるでしょうか。後者は「企画書の骨子」というように、物事や文章の大筋という意味で使われます。「文章のアウトライン」と言えば「文章全体の骨子、又は構造・区切り」を指していることになります。</p>
<p>Web制作・HTMLコーディングにおける「アウトライン」も本質的な意味は一緒です。「HTMLのアウトライン」と言えばでHTMLでマークアップした「文章の構造」という意味で使われています。見出しを適切に用いてマークアップをしていれば必然的に見出しを抜き出したものが文章全体の構造を表している事になります。</p><p><small>(ただしHTML5は見出しだけではなくセクショニングコンテンツがアウトライン生成に深く関わっています。現在の仕様ではnavやasideは見出しを含まなくても良いとされています。このためHTML5では「見出しを抜き出したもの≠アウトライン」であって、必ずしもアウトラインを表している訳ではありません。
)</small></p>
</section>

<section>
<h2>アウトラインをインデントで表す</h2>
<p>Webに限らず、文章は『入れ子構造』になっている場合がほとんどです。小説で言えば「第一章」の中に「第一節」「第二節」があります。大きな章という区切りの中に「節」という小さな単位のまとまりが入っているのです。文章はそれぞれネストされた構造になっています。</p>
<p><a href="http://blog.3streamer.net/wp-content/uploads/2011/08/o04.png"><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/o04.png" alt="" title="o04" width="232" height="291" class="alignleft size-full wp-image-362" /></a>入れ子構造を表す時は<strong>インデントを付けて表します</strong>。インデントを付ける事でどの部分に属しているのかが一目で分かるようになるのです。</p>
<p>文章や企画書を作成する際に用いるMS OfficeのWordやPowerPointといった身近なアプリケーションにもアウトライン機能が搭載されています。左図はMS OfficeのPowerPointをアウトライン表示にした時のものです。</p>
</section>

<section>
<h2>HTML4とHTML5のアウトラインの生成の違いを理解する</h2>

<p>アウトラインはHTML5から導入されたものだと思っている方もいるかもしれませんが、実はHTML4.01やXHTML1.0でもアウトラインの考え方はありました。しかしHTML5以前では階層的に文書構造を表す仕組みがありませんでした。このためHTML4やXHTML1.0では見出しをマークアップするのにh1要素から順番に使っていき、そのレベルによって文書のアウトラインを示していました。これを「<strong>暗黙的なアウトライン</strong>」という言い方をします。</p>

<section>
<h3>暗黙的なアウトラインとHTML5以前の問題点</h3>
<p>しかし、この方法は「見出しの及ぶ範囲が分かりにくい」という欠点がありました。何故ならばh1〜h6を正しく用いたとしても、ソースコード上では全てフラットな関係であり、見出しが影響するコンテンツの<strong>終了部分を明示的に表す事が出来ない</strong>からです。</p>
<p>人間であれば文字の大きさやデザインなどで視覚的な情報からアウトラインを判断したり、書いてある文章の意味から文章構造を推測・判断することができます。しかしコンピュータやクローラーなどはそうはいきません。コンピュータに文章構造を正確に理解させるには旧来のHTMLの仕様では限界がありました。これらの問題は本当の意味での「セマンティックWeb」を実現するための課題だったとも言るでしょう。</p>
</section>

<section>
<h3>HTML5で導入された新たなアウトラインアルゴリズム</h3>
<p>前述した通り旧来の(X)HTMLでは文章構造を正確にマークアップするには役不足でした。こうした点を改善し、文章構造をより正確に表すための仕組みがXHTML2.0で考えられました。それがsection要素です。</p>

<p>その仕様はXHTML2.0からHTML5に受け継がれ、HTML5ではsection,article,nav,asideといった4つの新しい要素(セクショニングコンテンツ)が定義されました。HTML5で導入されたセクショニングコンテンツとアウトラインアルゴリズムはより正確に、厳密に文章構造を表すための仕組みと言えます。</p>
</section>

<section>
<h3>HTML5のアウトライン生成を理解する</h3>
<p>HTML5でアウトラインを生成するのはセクショニングコンテンツに属する4つのタグです。セクショニングコンテンツそれぞれのタグの意味や使い方については他のサイトやブログに譲って、ここではアウトライン生成について詳しくみていきます。</p>
<p>まず、次のようにセクショニングコンテンツを使わずに、旧来のh1〜h6だけを使ったマークアップを見ていきましょう。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>大見出し1-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>中見出し2-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>中見出し2-2<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>中見出し2-3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>小見出し3-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>中見出し2-4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre></td></tr></table></div>




<p>実はHTML5では旧来の書き方でもちゃんとアウトラインは生成されます。上記の例のアウトラインは下記sectionを使ったものと同等です。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>大見出し1-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
     <span style="color: #009900;">&lt;section&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>中見出し2-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
     <span style="color: #009900;">&lt;section&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>中見出し2-2<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
     <span style="color: #009900;">&lt;section&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>中見出し2-3<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
          <span style="color: #009900;">&lt;section&gt;</span>
          <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>小見出し3-1<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
          <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
     <span style="color: #009900;">&lt;section&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>中見出し2-4<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
     <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre></td></tr></table></div>




<p>上記2つの例のアウトラインはいずれも以下のようになります</p>

<figure>
<ol>
	<li>大見出し1-1
<ol>
	<li>中見出し2-1</li>
	<li>中見出し2-2</li>
	<li>中見出し2-3
<ol>
	<li>小見出し3-1</li>
</ol>
</li>
	<li>中見出し2-4</li>
</ol>
</li>
</ol>
<figcaption><em>Figure 1：HTML5アウトラインの例</em></figcaption>
</figure>

<p>上記2つの例は<a href="http://www.w3.org/TR/html5/sections.html#the-section-element">W3CのHTML5仕様書</a>に載っているものと同じものです。W3CはHTML5の仕様書で次のように述べています</p>

<blockquote><p>Authors are also encouraged to explicitly wrap sections in elements of sectioning content, instead of relying on the implicit sections generated by having multiple headings in one element of sectioning content.</p></blockquote>

<p>つまりはh1〜h6を用いて暗黙的なセクション作るのではなく、<strong>セクショニングコンテンツを適切に用いて明示的にセクションを示すよう勧めています</strong>。</p>

<p>上記2つの例を比べると奇妙な点に気づきます。そう、2つ目の例では全ての見出しレベルがh1になっています。実はHTML5ではセクショニングコンテンツを使ってマークアップすればh1〜h6という「数字で表される見出しレベル」は実質的に意味は無くなってしまいます。これはアウトラインが全て「セクショニングコンテンツの入れ子(ネスト)とその深さ(レベル)」によって決まるためです。</p>

<p>HTML5でセクショニングコンテンツを適切に用いてマークアップする場合、見出しを全てh1でマークアップしても、全てh6でマークアップしても、下記例のようにバラバラにマークアップしたとしても全て<strong>生成されるアウトラインは同一</strong>になります。</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;article&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>HTML5について<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h4</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>HTML5は最終草案の段階です<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
    <span style="color: #009900;">&lt;section&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>HTML5は使えるのか<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>現在でも使う事ができます。HTML5は...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
        <span style="color: #009900;">&lt;section&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>IE8以下の対応策<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>IE6,7,8もサポートする場合はJavaScriptを使って...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
        <span style="color: #009900;">&lt;section&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h6</span>&gt;</span>どのブラウザが対応しているのか<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h6</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Chrome, Safari, Firefoxといったモダンブラウザは先行実装しています。IE9もサポートしています。<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
        <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
    <span style="color: #009900;">&lt;section&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>HTML5の新しい要素<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>section,articleやvideoなどの新しい要素や属性が定義されています。他にも...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
    <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>article&gt;</span></pre></div></div>




<p>しかし文法的に許容されていても、これは非常にわかりにくい書き方ですね。<strong>極力このような書き方は避けるべき</strong>です。次のように適切にセクショニングコンテンツと適切な見出しレベルを用いて記述しましょう。</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;article&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>HTML5について<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>HTML5は最終草案の段階です<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>HTML5は使えるのか<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>現在でも使う事ができます。HTML5は...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>どのブラウザが対応しているのか<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Chrome, Safari, Firefoxといったモダンブラウザは先行実装しています。IE9もサポートしています。<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h3</span>&gt;</span>IE8以下の対応策<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>IE6,7,8もサポートする場合はJavaScriptを使って...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>HTML5の新しい要素<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h2</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>section,articleやvideoなどの新しい要素や属性が定義されています。他にも...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>article&gt;</span></pre></div></div>




<p>また先ほどの例と同じように全ての見出しをh1のみで書く事もできます。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;article&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>HTML5について<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>HTML5は最終草案の段階です...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
&nbsp;
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>HTML5は使えるのか<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>現在でも使う事ができます。HTML5は...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
  <span style="color: #009900;">&lt;section&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>ブラウザの対応状況<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>Chrome, Safari, Firefoxといったモダンブラウザは先行実装しています。IE9もサポートしています。<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
  <span style="color: #009900;">&lt;section&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>IE8以下の対応策<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>IE6,7,8もサポートする場合はJavaScriptを使って...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
  <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>HTML5の新しい要素<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>section,articleやvideoなどの新しい要素や属性が定義されています。他にも...略<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>section&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>article&gt;</span></pre></td></tr></table></div>




<figure>
<ol>
<li>HTML5について
<ol>
<li>HTML5は使えるのか
<ol>
<li>ブラウザの対応状況</li>
<li>IE8以下の対応策</li>
</ol>
</li>
<li>HTML5の新しい要素</li>
</ol>
</li>
</ol>
<figcaption><em>Figure 2: HTML5アウトラインの例</em></figcaption>
</figure>

</section>

<section>
<h3>h1だけを使うべきか or ネストレベルに合わせたh1〜h6を使うべきか</h3>
<p>ここでまた一つ疑問がわいてきました。セクショニングコンテンツを用いて明示的にセクションを囲う場合、【見出しは全てh1でかこった方が良いのか、それとも入れ子になったセクショニングコンテンツの階層に合わせた見出しレベルにするべきなのか】どちらがよいのでしょうか？</p>

<p><a href="http://www.w3.org/TR/html5/sections.html#headings-and-sections">W3Cの仕様書</a>には次のようにあります。</p>

<blockquote><p>Sections may contain headings of any rank, but authors are strongly encouraged to either use only h1 elements, or to use elements of the appropriate rank for the section&#8217;s nesting level.</p>
<p>[意訳] セクションは(h1〜h6)いずれの見出しも含む事ができるが、h1要素のみを使って見出しをマークアップするか、セクションの入れ子レベルに応じた適切なランクの見出し要素を使う事を強く推奨する。</p></blockquote>

<p>つまり、仕様上はどっちでもOKということですね。ただし、両方をごっちゃにして使う事は避けた方が良いようです。</p>
<p>個人的には全てh1でマークアップするよりはネストレベルに応じて(h1〜h6)を適切に付けるマークアップのほうが現時点(2011年9月現在)ではベターなのかなと思います。何故ならばHTML5に対応していない古いブラウザやソフトウェア、スクリーンリーダーなどがまだ存在するためです。HTML5でもh1〜h6を残したのは後方互換性も考慮されたからでしょう。</p>
</section>
</section>

<section>
<h2>Untitled Sectionsはどうすれば良いのか？</h2>
<p>nav, asideといったセクショニングコンテンツは必ずしも見出しを付ける必要はありません。しかしその場合、アウトラインを確認すると「Untitled Sections」として表示されてしまいます。</p>
<p>HTML5 Doctorの<a href="http://html5doctor.com/outlines/">Document Outlines</a>という記事ではnavやasideもアクセシビリティ上見出しを含めた方が良いとしています。</p>
</section>

<section>
<h2>HTML5でサイトを作る際ありがちなミス ”Untitled Document&#8221;</h2>
<p>HTML5でサイトを作成する場合、ありがちなミスが下記のような書き方です。</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">body</span>&gt;</span>
<span style="color: #009900;">&lt;article&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>Blog記事タイトル<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>コンテンツ本文<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span>article&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">body</span>&gt;</span></pre></td></tr></table></div>




<p>一見するとどこも間違いは無いように見えますが、このアウトラインを確認すると下記のようになります</p>

<figure>
<ol>
	<li><em>Untitled Documents</em><ol>
	<li>Blog記事タイトル</li>
</ol>
</li>
</ol>
<figcaption><em>Figure 3: HTML5アウトラインの例</em></figcaption>
</figure>

<p>これはセクショニング・ルートのbodyに対する見出しが付いていないため、Untitled Documentsと表示されてしまったのです。セクショニング・ルートであるbodyもアウトラインを生成します。この事を理解していないとそのHTML全体の見出しである部分が「Untitled Documents」となってしまいます。</p>
</section>

<section>
<h2>セマンティックWebは誰のために？</h2>
<p>アウトラインって結局は文章構造を正しくマークアップするためのものです。ぶっちゃけ今現在HTML5でサイトを作って、アウトラインを正しくマークアップした所で直接的なメリットや恩恵というのはあまり無いと思います。じゃあ何故アウトラインを意識する必要があるのでしょうか？正しい文章構造じゃないと気持ち悪いから？W3Cの仕様書に書いてあるから？みなさんは何故だと思いますか？</p>

<p>近い将来で言えば、HTML5のアウトラインやMicrodataなどを利用した新しい検索技術やサービス、アプリケーションなどが出てくるでしょう。実際にGoogle、Microsoft、Yahoo!の検索大手3社は今年、Microdataを用いてより構造化されたマークアップ実現のためのスキーマ（<a href="http://schema.org/">schema.org</a>）を共同で開発しています。また今では考えつかないような画期的なサービスも出てくるかもしれません。そういった新しいサービスや技術が生まれる土台となるのがHTML5なのだと思います。</p>
<p>遠い未来に思いを馳せるとー。</p>
<p>きっと、数百年後の未来の人たちは僕らがインターネット上に残した大量のつぶやきや、Blogや、論文などを機械的にコンピュータで処理をし、分析をしているでしょう。その時にきっと未来の人達はこのように言うはずです。</p>
<p><em>&#8220;うわ、このサイトHTML5じゃなくてHTML4で書いてある。HTML5でちゃんと構造化して書いてくれよ〜メンドクサイなぁ&#8230;。&#8221;</em></p>
</section>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/html5-outline-300/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>コピペで出来るCSS3で見出しスタイリング</title>
		<link>http://blog.3streamer.net/html5-css3/css3-styling-231/</link>
		<comments>http://blog.3streamer.net/html5-css3/css3-styling-231/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 14:21:35 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=231</guid>
		<description><![CDATA[Webサイトをコーディングする場合、見出し(h1〜h6)のスタイリングって結構厄介ですよね。特にCSS2までは角丸や影を表現するには画像を使わないとできませんでした。しかしCSS3を使うと格段に表現の幅が広がります。今回 [...]]]></description>
			<content:encoded><![CDATA[<p>Webサイトをコーディングする場合、見出し(h1〜h6)のスタイリングって結構厄介ですよね。特にCSS2までは角丸や影を表現するには画像を使わないとできませんでした。しかしCSS3を使うと格段に表現の幅が広がります。今回はCSS3を使って見出しをスタイリングする方法をご紹介します。</p><span id="more-231"></span>

<p>基本となるHTMLは以下。これにCSSを適用していきます。</p>


<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">h1</span> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;headdingXX&quot;</span>&gt;</span>見出しタイトルX title<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">h1</span>&gt;</span></pre></div></div>




<section>
<h2>サンプル1 CSS2を使った見出し</h2>
<p>まずはCSS2までを使ったオーソドックスなスタイリングです。</p>

<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title01.png" alt="" title="CSS2だけを使った見出し1のスタイリングサンプル" width="547" height="73" class="alignnone size-full wp-image-250" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding01</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#1871B8</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1D8ADE</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>非常にシンプルで良く見るスタイルです。CSS2の表現力はこの程度が限界とも言えます。ではCSS3を使うとどういった表現が可能になるのでしょうか？順番に見ていきましょう。</p>
</section>

<section>
<h2>サンプル2 box-shadowで1pxの線を表現した見出し</h2>
<p>まずは、以下のサンプルを見て下さい。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title02.png" alt="" title="box-shadowを使った見出しスタイリングサンプル" width="547" height="73" class="alignnone size-full wp-image-251" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding02</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#1871B8</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1D8ADE</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #cc66cc;">0</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>ボックスの左と、上部に1pxの白い線が入っているのが分かると思います。
これまでこのようなデザインを実現する場合には1pxの線の画像を用意し背景画像として適用するか、見出しタグの外側をさらにdivで囲いborderプロパティで実現するなど手間がかかる方法しかありませんでした。</p>

<p>しかし、box-shadowプロパティを使えば画像やdivタグで２重に囲わずとも簡単に実現することができます。ポイントはinsetでboxの内側に影を適用し、x軸とy軸に1pxずらすことです。ぼかしは0に設定します。</p>
<p>box-shadowプロパティは単にボックスに対しドロップシャドウを適用するものと思っている方も多いかと思いますが、使い方次第でこのサンプルのようにボックスの内側に1pxの線を表現することもできます。</p>
</section>

<section>
<h2>サンプル3 CSS3の角丸を使った見出し</h2>
<p>border-radiusプロパティを使った角丸の表現です。<br />
border-radiusプロパティはIE9でも対応したので、今後ますます使われる頻度が高くなりそうですね。</p>

<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title03.png" alt="" title="CSS3で角丸を適用した見出し例" width="547" height="73" class="alignnone size-full wp-image-252" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding03</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1D8ADE</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>




</section>

<section>
<h2>サンプル4 角丸+box-shadowを使った見出し</h2>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title04.png" alt="" title="box-shadowでエンボス風" width="547" height="73" class="alignnone size-full wp-image-253" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding04</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1D8ADE</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #933;">-1px</span> <span style="color: #933;">-1px</span> <span style="color: #933;">2px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.6</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span><span style="color: #993333;">inset</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">255</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0.8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>今度はborder-radiusプロパティにbox-shadowプロパティを組み合わせてエンボス風なスタイルにしてみました。</p>
<p>ポイントはbox-shadowのinsetで光と影の部分を指定しています。box-shadowプロパティは複数指定することもできます。その場合はカンマ(,)で区切って続けて記述すればOKです。</p>
</section>

<section>
<h2>サンプル5 box-shadowを使ったページカールエフェクト</h2>
<p>これも最近多く見かけるようになった紙がめくれたような表現手法です。英語圏では「page curl effect」や「paper curl effect」なんて呼ばれているようです。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title05.png" alt="" title="box-shadowで影を付けた例" width="547" height="73" class="alignnone size-full wp-image-254" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding05</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Old browsers */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* FF3.6+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome,Safari4+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome10+,Safari5.1+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -o-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera11.10+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -ms-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE10+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C */</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span> <span style="color: #933;">3px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.4</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">,</span> <span style="color: #993333;">inset</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">50px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span> <span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.headding05</span><span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span>
<span style="color: #6666ff;">.headding05</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">' '</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> -<span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">40%</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">7px</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">8px</span> <span style="color: #933;">15px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-moz-box-shadow<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">8px</span> <span style="color: #933;">15px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">8px</span> <span style="color: #933;">15px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.7</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#F00</span><span style="color: #00AA00;">;</span>
	-webkit-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-moz-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-o-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	-ms-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>-3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.headding05</span><span style="color: #3333ff;">:after</span><span style="color: #00AA00;">&#123;</span>
	  -webkit-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	  -moz-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	  -o-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	  -ms-transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	  transform<span style="color: #00AA00;">:</span> rotate<span style="color: #00AA00;">&#40;</span>3deg<span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	  <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	  <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>ポイントはbefore,afterの疑似要素を使い影の部分のボックスを生成し、それをtransformプロパティで回転させています。疑似要素で生成したボックスは後ろになるようにz-indexプロパティを用い重なり順序を指定する必要があります。</p>
<p>気になるブラウザの対応状況ですが、Chrome, Firefox, Safariなどの最新ブラウザでは問題なく表示されます。IEはIE9以上でないとちゃんと表示出来ません。</p>
</section>
<section>
<h2>サンプル6 角丸とグラデーションを用いた見出し</h2>
<p>グラデーションと角丸を用いたサンプルです。文字部分はtext-shadowプロパティも使っています。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title06.png" alt="" title="CSS3でグラデーションを使った例" width="547" height="73" class="alignnone size-full wp-image-255" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding06</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#7db9e8</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Old browsers */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#7db9e8</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#2989d8</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#207cca</span> <span style="color: #933;">51%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1e5799</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* FF3.6+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#7db9e8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#2989d8</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">51%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#207cca</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1e5799</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome,Safari4+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#7db9e8</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#2989d8</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#207cca</span> <span style="color: #933;">51%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1e5799</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome10+,Safari5.1+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -o-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#7db9e8</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#2989d8</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#207cca</span> <span style="color: #933;">51%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1e5799</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera11.10+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -ms-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#7db9e8</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#2989d8</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#207cca</span> <span style="color: #933;">51%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1e5799</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE10+ */</span>
	filter<span style="color: #00AA00;">:</span> progid<span style="color: #3333ff;">:DXImageTransform</span><span style="color: #6666ff;">.Microsoft</span>.gradient<span style="color: #00AA00;">&#40;</span> startColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#7db9e8'</span><span style="color: #00AA00;">,</span> endColorstr<span style="color: #00AA00;">=</span><span style="color: #ff0000;">'#1e5799'</span><span style="color: #00AA00;">,</span>GradientType<span style="color: #00AA00;">=</span><span style="color: #cc66cc;">0</span> <span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE6-9 */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#7db9e8</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#2989d8</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#207cca</span> <span style="color: #933;">51%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1e5799</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C */</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	-webkit-box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">50px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>CSS3のグラデーションはIE9以下では対応していません。(IE10から対応予定)IE9以下でもグラデーションを使いたい場合はIEの独自機能であるfilterを使うか、<a href="http://css3pie.com/">CSS3 PIE</a>などを使って対応する必要があります。(上のサンプルではfilterを用いています)</p>
</section>

<section>
<h2>サンプル7 :before,:after疑似要素を使ったCSSリボン</h2>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title07.png" alt="" title="CSS3でリボン" width="547" height="102" class="alignnone size-full wp-image-279" /></p>
<p>CSS3で表現するリボンのような表現です。<br />
afterとbefore疑似要素を使ってボックスを生成しています。</p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding07</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Old browsers */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -moz-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* FF3.6+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-gradient<span style="color: #00AA00;">&#40;</span>linear<span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">left</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> <span style="color: #000000; font-weight: bold;">right</span> <span style="color: #000000; font-weight: bold;">top</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> color-stop<span style="color: #00AA00;">&#40;</span><span style="color: #933;">100%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome,Safari4+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -webkit-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Chrome10+,Safari5.1+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -o-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* Opera11.10+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> -ms-linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* IE10+ */</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> linear-gradient<span style="color: #00AA00;">&#40;</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">0%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#53a2e2</span> <span style="color: #933;">50%</span><span style="color: #00AA00;">,</span><span style="color: #cc00cc;">#1d8ade</span> <span style="color: #933;">100%</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span> <span style="color: #808080; font-style: italic;">/* W3C */</span>
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #933;">-36px</span> <span style="color: #933;">30px</span> <span style="color: #933;">-36px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">50px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.1</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span> <span style="color: #933;">3px</span> rgba<span style="color: #00AA00;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">,</span> <span style="color: #cc66cc;">0.3</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.headding07</span><span style="color: #3333ff;">:before</span><span style="color: #00AA00;">,</span>
<span style="color: #6666ff;">.headding07</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">' '</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> -<span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-14px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span>  <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span> <span style="color: #cc00cc;">#666</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.headding07</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-14px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span> <span style="color: #cc00cc;">#666</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>




<p>このスタイルの最大のポイントは三角形の作り方です。borderプロパティを上手く用いて三角形を作っています。</p>
</section>

<section>
<h2>サンプル8 CSS3で吹き出しスタイル</h2>
<p>吹き出しのようなサンプルです。after疑似要素を用い先ほどと同じborderを使って三角形を作ります。それを絶対配置で配置しています。before, after疑似要素が使えるIE8以上なら正しく表示できます。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title08.png" alt="" title="CSS3で吹き出し" width="547" height="73" class="alignnone size-full wp-image-276" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding08</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-left</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#036</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#036</span><span style="color: #00AA00;">;</span>
	box-shadow<span style="color: #00AA00;">:</span><span style="color: #993333;">inset</span> <span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">4px</span> <span style="color: #cc00cc;">#036</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.headding08</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">' '</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">14px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-27px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span> <span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>



</section>

<section>
<h2>サンプル9 CSS3で吹き出しスタイルその2</h2>
<p>先ほどの吹き出しスタイルの応用編です。枠線が付いている点に注目してください。枠線の三角形部分は2つの異なる大きさの三角形を重ね合わせる事で枠線を表現しています。</p>
<p><img src="http://blog.3streamer.net/wp-content/uploads/2011/08/title09.png" alt="" title="CSS3で枠付き吹き出し" width="547" height="80" class="alignnone size-full wp-image-277" /></p>


<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.headding09</span> <span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span><span style="color: #00AA00;">;</span> 
	<span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">30px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FFF</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">text-shadow</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #933;">1px</span> <span style="color: #933;">2px</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span><span style="color: #993333;">relative</span><span style="color: #00AA00;">;</span>
	-webkit-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	-moz-border-radius<span style="color: #00AA00;">:</span><span style="color: #933;">4px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">4px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#036</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #6666ff;">.headding09</span><span style="color: #3333ff;">:before </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">' '</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">2</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">14px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-27px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#1d8ade</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span>  <span style="color: #993333;">transparent</span>  <span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">15px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span>
<span style="color: #6666ff;">.headding09</span><span style="color: #3333ff;">:after </span><span style="color: #00AA00;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">content</span><span style="color: #00AA00;">:</span> <span style="color: #ff0000;">' '</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">position</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">absolute</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">z-index</span><span style="color: #00AA00;">:</span> -<span style="color: #cc66cc;">1</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">-43px</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#036</span> <span style="color: #993333;">transparent</span> <span style="color: #993333;">transparent</span>  <span style="color: #993333;">transparent</span>  <span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span><span style="color: #00AA00;">;</span>
	<span style="color: #000000; font-weight: bold;">border-width</span><span style="color: #00AA00;">:</span><span style="color: #933;">24px</span><span style="color: #00AA00;">;</span>
	<span style="color: #00AA00;">&#125;</span></pre></div></div>



</section>

<section>
<h2>CSS3を使う際には割切る事も大切</h2>
<p>いかがだったでしょうか？CSS3の表現力、可能性を少しでも感じて頂けたら嬉しく思います。コピペで是非試してみて下さい。今回は「見出し」に対して適用していましたが、もちろん他のボックスに対しても適用することができます。</p>
<p>IE9でもCSS3のグラデーションや一部プロパティはまだ使えないものが多くあります。だからといってCSS3を使わない(使えない)理由にはなりませんし、プログレッシブエンハンスメントの考えに沿って古いブラウザへの対応は割切って考える事も必要だと思います。</p>
<p>Let&#8217;s enjoy CSS3! <img src='http://blog.3streamer.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</section>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/css3-styling-231/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>日本語で読めるHTML5関連リソース集</title>
		<link>http://blog.3streamer.net/html5-css3/html5-links-204/</link>
		<comments>http://blog.3streamer.net/html5-css3/html5-links-204/#comments</comments>
		<pubDate>Tue, 10 May 2011 00:47:36 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=204</guid>
		<description><![CDATA[毎回ググるのも面倒になってきたので、自分自身のメモも兼ねて現在(2011年5月)時点でのHTML5について書かれた日本語リソースをまとめてみる。（あまり古いのもアレなので過去１年に書かれた記事を中心に） HTML5全般  [...]]]></description>
			<content:encoded><![CDATA[<p>毎回ググるのも面倒になってきたので、自分自身のメモも兼ねて現在(2011年5月)時点でのHTML5について書かれた日本語リソースをまとめてみる。（あまり古いのもアレなので過去１年に書かれた記事を中心に）</p><span id="more-204"></span>

<section>
<h2>HTML5全般</h2>
<dl><dt>HTML5.JP</dt><dd>とりあえず最初に押さえておくべきサイト。各仕様書の日本語訳やタグリファレンスもある。</dd><dt><a href="http://w3g.jp/blog/studies/html5report">HTML5についてのおさらい &#8211; W3G</a></dt><dd>コード実例+非常に分かりやすい説明でGood。HTMLの基本的な記述方法に始まり、セクションやアウトラインの記述も詳しく書いてある。アウトラインについて曖昧な人はこのサイトを一通り読むと良いかも。</dd><dt><a href="http://w3g.jp/blog/studies/html5report2">続HTML5についてのおさらい &#8211; W3G</a></dt><dd>上記サイト「HTML5についてのおさらい」の続き。header, footerやその他の要素の使い方について一通り解説してある。オススメ。</dd><dt><a href="http://codezine.jp/article/corner/400">ここが違う！サンプルで見るHTML5</a></dt><dd>codezineでの羽田野さんの連載。CodeZineという開発者向けサイトのため、内容的にはAPIから各要素までかなり幅広く、かつ丁寧に解説してある。初心者にはあまりオススメ出来ない。全て閲覧するには会員登録(無料)が必要。</dd><dt><a href="http://www.atmarkit.co.jp/fwcr/design/benkyo/html5appli03/01.html">HTML5の登場で、XHTMLは結局どうなったの？ &#8211; ＠IT</a></dt><dd>HTML5でXHTMLはどうなっちゃったのか？という解説。HTML5とXHTML5の関係を理解するために読んでおくといいかも。</dd><dt><a href="http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/">HTML5 における HTML4 からの変更点 (2011年4月5日付 W3C 草案)</a></dt><dd>W3Cで公開されている<a href="http://www.w3.org/TR/2011/WD-html5-diff-20110405/">HTML5 differences from HTML4</a>の日本語訳。ミツエーリンクスが公開している。</dd></dl>
</section>
<section>
<h2>HTML5マークアップ各論</h2>
<dl><dt><a href="http://kojika17.com/2011/01/html5-article-and-section.php">HTML5のarticleとsectionの違いを書いてみた : Web Design KOJIKA17</a></dt><dd>article要素とsection要素の違いについて。策定が中止されたXHTML2.0の仕様にも触れている。サンプルコードも載っているので分かりやすい。</dd><dt><a href="http://design.kayac.com/topics/2010/12/post-42.php">HTML5でつまずきやすいasideとsectionの使い方 | KAYAC DESIGNER&#8217;S BLOG</a></dt><dd>KAYACさんのブログ。asideとsectionの違いについて解説してある。asideがサイドバーに限った例になってしまっているのが惜しいところ。</dd><dt><a href="http://weboook.blog22.fc2.com/blog-entry-258.html">押さえておきたいHTML5におけるタグまわりの変更点｜Webpark</a></dt><dd>HTML5で変更された各要素についての解説。target属性が非推奨で無くなったことや&lt;s&gt;要素の意味などが変わった事を知らない人も多いはず。</dd><dt><a href="http://terkel.jp/archives/2010/04/the-dl-element-in-html5/">HTML5 の dl 要素 &#8211; terkel.j</a></dt><dd>HTML5で改めて定義し直したdl dt dd各要素について。会話文はHTML5ではもうdl要素でマークアップするべきでない。</dd></dl>
<h2>form, inputまわりの新機能・変更点</h2>
<dl><dt><a href="http://www.atmarkit.co.jp/fwcr/design/benkyo/html5appli06/01.html">HTML5で既存のinputタイプに加わった6つの変更点 &#8211; ＠IT</a></dt><dd>＠白石俊平さんの連載記事。inputタイプのHTML5での変更点について詳細に解説してある。</dd><dt><a href="http://www.atmarkit.co.jp/fwcr/design/benkyo/html5appli07/01.html">HTML5でinput要素に追加された新しいタイプ13連発 &#8211; ＠IT</a></dt><dd>前記事の続き。input要素に新たに追加されたタイプの詳細。</dd><dt><a href="http://www.atmarkit.co.jp/fwcr/design/benkyo/html5appli08/01.html">サイトのフォームを多機能にするHTML5の新要素5選 &#8211; ＠IT</a></dt><dd>formに関連する新要素の説明。output要素、datalist要素など</dd><dt><a href="http://www.atmarkit.co.jp/fwcr/design/benkyo/html5appli09/01.html">HTML5で仕様になった入力値チェック＋便利な3Tips &#8211; ＠IT</a></dt><dd>autofocus属性やform属性などHTML5で「仕様」として取り入れられたフォームのバリデーションについて。システム周りを開発する人は必見。</dd></dl>
</section>
<section>
<h2>その他のHTML5関連</h2>
<dl><dt><a href="http://b.hatena.ne.jp/articles/201002/795">HTMLで図まで描ける！進化した「HTML5」ってどんなもの？ &#8211; はてなブックマークニュース</a></dt><dd>はてなブックマークニュースのHTML5に関するまとめ記事。HTML5でどんなことが出来るのか理解するには良いかも。</dd><dt><a href="http://www.publickey1.jp/blog/10/html5_9.html">どこまでがHTML5なの？ － Publickey</a></dt><dd>W3CとWHATWG、HTML5とそれに関連仕様(API)ついて。HTML5の関連仕様って沢山あるんだなというのがよく分かる。</dd></dl>
</section>
<p><small>適宜更新していきます。オススメのサイトなどありましたら教えて頂ければ追加します。</small></p>]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/html5-links-204/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5でdocument.writeは使ってはいけない？</title>
		<link>http://blog.3streamer.net/html5-css3/document-write-html5-181/</link>
		<comments>http://blog.3streamer.net/html5-css3/document-write-html5-181/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 22:13:31 +0000</pubDate>
		<dc:creator>A.Kawashima</dc:creator>
				<category><![CDATA[Web制作・デザインTips]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.3streamer.net/?p=181</guid>
		<description><![CDATA[document.writeはJavaScriptを書く方でしたらおなじみですね。JavaScriptを学び始めた頃にdocument.write(Hello world);なんて書いた人も多いのではないでしょうか。とこ [...]]]></description>
			<content:encoded><![CDATA[
<p>document.writeはJavaScriptを書く方でしたらおなじみですね。JavaScriptを学び始めた頃にdocument.write(Hello world);なんて書いた人も多いのではないでしょうか。ところがなんと「HTML5ではdocument.writeを使ってはいけないらしい」という話を耳にし、真相を確かめるべく調べてみました。</p><span id="more-181"></span>

<section>
<h2>仕様書から読み解くdocument.write</h2>
<p>こーゆー時はまずHTML5の仕様書です。早速W3Cのサイトを見に行くと丁度<a href="http://www.w3.org/News/2011.html#entry-9056">2011年4月6日にHTML5関連のドキュメントがアップデート</a>されていました。</p>

<p>HTMLの仕様書の中の3.5 Dynamic markup insertionに<a href="http://www.w3.org/TR/html5/apis-in-html-documents.html#document.write">document.writeの記述</a>があります。</p>

<p>そこを見ると「Warning!」と書いてあって赤字で以下のような記載がありました。</p>
<blockquote><p>This method has very idiosyncratic behavior. In some cases, this method can affect the state of the<a href="http://www.w3.org/TR/html5/parsing.html#html-parser">HTML parser</a> while the parser is running, resulting in a DOM that does not correspond to the source of the document. In other cases, the call can clear the current page first, as if <a href="http://www.w3.org/TR/html5/apis-in-html-documents.html#dom-document-open">document.open()</a> had been called. In yet more cases, the method is simply ignored, or throws an exception. To make matters worse, the exact behavior of this method can in some cases be dependent on network latency, which can lead to failures that are very hard to debug. For all these reasons, use of this method is strongly discouraged.</p></blockquote>

<p>要約(意訳)すると「パースして生成されるDOMに影響与えてしまったり、ネットワークの遅延にメソッドの動作が影響されデバッグが困難になったりといった問題があるので<strong>discouraged(推奨されない)</strong>」と書いてあります。しかもstronglyとまで。W3Cとしてもdocument.writeはかなり厄介者扱いですね。その証拠に上記の一番最初には<q>This method has very idiosyncratic behavior.</q>と書いてありますから、W3Cのワーキンググループでもdocument.writeは悩みの種となったのでしょう。</p>

<p>仕様書にstrongly discouragedと書いてありますので、やはりHTML5でdocument.writeを使うのは避けた方が良さそうです。</p>

<p>ふと「以前から仕様書に推奨しないと書いてあったっけ？」と思い、これまでの仕様書も洗ってみました。その結果、はっきりとdocument.writeについてstrongry discouragedと書いてあるのは<a href="http://www.w3.org/TR/2010/WD-html5-20101019/apis-in-html-documents.html#document.write">2010年10月19日の仕様書</a>からでした。</p>
</section>

<section>
<h2>document.writeの代替え方法はないの？</h2>
<p>HTML5でdocument.writeは使わない方が良いのであれば、問題はその代替の方法です。これについては<a href="http://www.w3.org/TR/2011/WD-html-polyglot-20110405/">Polyglot Markup: HTML-Compatible XHTML Documents</a>に記載がありました。(ちなみにこのPolyglot MarkupのドキュメントはHTML5をXHTMLにも適合させて書くためのHow toが書かれています。まだ読んでいない方はご一読することをおすすめします)</p>

<p><a href="http://www.w3.org/TR/2011/WD-html-polyglot-20110405/#script-and-style">9. Script and Style</a>に以下のような記載があります。</p>

<blockquote>Instead, use the innerHTML property for both HTML and XHTML.</blockquote>

<p>「(document.writeの)代わりにinnnerHTMLがHTMLとXHTML両方で使えるよ〜(意訳)」とありますので、innerHTMLを使えば良いということみたいですね。</p>
</section>

<section>
<h2>HTML形式なら使ってもOKなのか？</h2>
<p>しかし「both HTML and XHTML」って記述が気になりますね。ということで、その部分をもう少し見てみますと次のような記載がありました。</p>

<blockquote><p>Although document.write() and document.writeln() are valid in an HTML document, neither function may be used in XHTML. Therefore, neither is used in <a href="http://www.w3.org/TR/2011/WD-html-polyglot-20110405/#dfn-polyglot-markup">polyglot markup</a>.</p></blockquote>

<p>この文章から読み取れるのは「document.writeはHTMLではvalidだが、XHTMLではinvalid」ということですね。そして<strong>polyglot markup(HTML5をXHTML形式にも適合させたマークアップ)を行うのであればdocument.writeは使えない</strong>ということです。逆に言えばHTML5をXHTMLに対応させない場合は「まぁ使ってもOKだよ」ってスタンスなんでしょうかね？このへんは議論の余地がありそうです。</p>
</section>

<section>
<h2>仕様書から読み解くW3Cの本音</h2>
<p>さらのその下に次のような一文が</p>
<blockquote><p>XML parsers parse the string as XML in XHTML. HTML parsers parse the string as HTML in HTML. Because of the difference in parsing, if you send the parser content that does not follow the rules for <a href="http://www.w3.org/TR/2011/WD-html-polyglot-20110405/#dfn-polyglot-markup">polyglot markup</a> the results will differ for a DOM create with an XML parser and one created with an HTML parser.</p>
<p>(意訳)「XHTMLはXMLパーサーがXMLとして処理を行い、HTMLはHTMLパーサーがHTMLとして処理をする。これらのパースの違いによりpolyglot markupのルールに沿っていないコンテンツはXMLパーサーとHTMLパーサーによって処理されたものでDOMが異なります。(意訳)」</p></blockquote>

<p>つまり、document.writeを使うとpolyglot markupのルールに沿っていないのでXMLパーサーとHTMLパーサーでDOMが異なってしまうということになります。HTML5でdocument.writeを使うリスクはこのあたりにありそうです。W3CとしてはXHTMLに沿ったHTML5(XMLとしてパースできるHTML5)を広めたいのでしょう。その意味でもdocument.writeは極力仕様をやめてもらいたいというのがW3Cの本音なのではないでしょうか。</p>
</section>

<section>
<h2>まとめ</h2>
<ul>
	<li>HTML5ではdocument.writeは使わない方が良い(2011年4月6日時点の仕様書に依る)</li>
	<li>XHTMLに適合させないHTML5ではdocument.writeを使っても文法的にはvalidである。(しかしXHTMLとしてのメリットは失われる)</li>
</ul>

<p><small>HTML5はまだ草案の段階ですので今後仕様が変更される可能性があります。</small></p>
</section>
]]></content:encoded>
			<wfw:commentRss>http://blog.3streamer.net/html5-css3/document-write-html5-181/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

