<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">    <title>CSS-EBLOG</title>    <link rel="alternate" type="text/html" href="http://css-eblog.com/" />        <id>tag:css-eblog.com,2007-12-19://1</id>    <updated>2010-08-17T15:29:39Z</updated>    <subtitle>CSSの色々なテクニックのテンプレートの紹介と、初心者にも分かるようにテンプレートの解説をしています。</subtitle>    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.01</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Css-eblog" /><feedburner:info uri="css-eblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><logo>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</logo><entry>    <title>デバッグ用CSSをその場で書けるブックマークレットを作ってみた</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/LAyV5xvtqQ0/add-css-bookmarklet.html" />    <id>tag:css-eblog.com,2010://1.186</id>    <published>2010-08-17T14:23:34Z</published>    <updated>2010-08-17T15:29:39Z</updated>    <summary>     とにかくその場で追加したいんです              最近あまり...</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="Javascript小技" scheme="http://www.sixapart.com/ns/types#category" />            <category term="Javascript関連" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;とにかくその場で追加したいんです&lt;/h2&gt;
    &lt;p&gt;
        最近あまりに忙殺されているえどです。こんにちわ。&lt;br /&gt;
        いやほんと、平日なにもする時間がありません。なので、手短に書きたいと思いますｗ
    &lt;/p&gt;

    &lt;p&gt;
        普段制作をしていると、その場でさっと CSS をとりあえず追加してみて、動きがどうなるか見てみたいな、と思うことはありませんか？&lt;br /&gt;
        それが IE6 ならなおさら。しかも保存した CSS がサーバに反映されるまで多少のタイムラグがあった日には反映されたのを見るまでなにもできません。（もちろん、ローカルのファイルを参照させて開発する、なんてこともできますが、とにかくちょっと今ここで！　っていうのってなにげにあるんですよね）
    &lt;/p&gt;

    &lt;p&gt;
        んで、新しい PC になって特にそう思うことがよくあったので、それならいっそ、とブックマークレットを作ってみました。&lt;br /&gt;
        作りが違うんで、IE 用とそれ以外のブラウザ用で分けてます。
    &lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;作ってみたブックマークレット&lt;/h2&gt;
    &lt;p&gt;
        そして下のやつがその作ってみたブックマークレットです。&lt;br /&gt;
    &lt;/p&gt;
&lt;script type="text/javascript" src="http://jsdo.it/blogparts/sk05/js"&gt;&lt;/script&gt;&lt;p class="ttlBpJsdoit" style="width: 465px; margin: 0; text-align: right; font-size: 11px;"&gt;&lt;a href="http://jsdo.it/edo_m18/sk05" title="CSSを手軽に追加するブックマークレット(IE6対応)"&gt;CSSを手軽に追加するブックマークレット(IE6対応) - jsdo.it - share JavaScript, HTML5 and CSS&lt;/a&gt;&lt;/p&gt;
    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;使い方&lt;/h3&gt;
        &lt;p&gt;
            使い方は簡単です。&lt;br /&gt;
            コーディングをしているときなどに、ちょっとこのスタイルを追加したい、というときに実行します。&lt;br /&gt;
            すると右上に入力ボックスが出てくるので、あとはそこに普段通りに CSS を書くだけです。&lt;br /&gt;
            &lt;span class="pickup"&gt;table td {...}&lt;/span&gt;みたいに継承関係も含めて記述可能です。もちろん複数のセレクタやプロパティを書いても大丈夫です。
        &lt;/p&gt;
        &lt;p&gt;
            Firebug では、その要素自体にスタイルを追加する、みたいなことはできますが、継承関係を持ったスタイルを追加したり、class 自体にスタイルが割り当てられてない場合に、class そのものにスタイルを追加できない、という物足りなさがありました。
        &lt;/p&gt;
        &lt;p&gt;
            そういう不便さもあったので作ったものです。よかったら使ってみてください。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SpJk_7J60AXpqoVrRiucoNLiTyg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SpJk_7J60AXpqoVrRiucoNLiTyg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SpJk_7J60AXpqoVrRiucoNLiTyg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SpJk_7J60AXpqoVrRiucoNLiTyg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/LAyV5xvtqQ0" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/javascript-link/add-css-bookmarklet.html</feedburner:origLink></entry><entry>    <title>Firefoxでもtext-overflowを実現するテクニック</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/lD_Z9uRUkV8/firefox-text-overflow.html" />    <id>tag:css-eblog.com,2010://1.185</id>    <published>2010-06-09T00:39:00Z</published>    <updated>2010-06-09T00:38:53Z</updated>    <summary>text-overflowを実装していないFirefoxでも、テキストの内容によって自動でoverflow部分を「...」で消す処理を実現するテクニックの紹介。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />        <category term="firefox" label="Firefox" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="textoverflow" label="text-overflow" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="テクニック" label="テクニック" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="ハック" label="ハック" scheme="http://www.sixapart.com/ns/types#tag" />        <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;text-overflowの実装状況&lt;/h2&gt;
    &lt;p&gt;
        最初に、Firefox ではまだ&lt;span class="pickup"&gt;text-overflow&lt;/span&gt;を実装していません。&lt;br /&gt;
        もともとは IE の独自実装であり、現在は CSS3 で策定中の仕様となります。
    &lt;/p&gt;
    &lt;p&gt;
        ところが、Opera、webkit は先行実装しているので対応しています。&lt;br /&gt;
        しかし、Firefox は前述したようにまだ実装されていません。&lt;br /&gt;
        そこで、Firefox 向けにもなんとか text-overflow と同じ効果を得るテクニックの紹介です。
    &lt;/p&gt;
    &lt;p&gt;
        今回のテクニックの肝は、margin の使い方です。&lt;br /&gt;
        とりあえず実際に動いているデモを見てください。（Firefox で見てください）
    &lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;実際に動いてるサンプル&lt;/h3&gt;
        &lt;div class="pickupBox demo"&gt; 
            &lt;div class="pickupBoxInner"&gt; 
                &lt;a href="/eblog_sample/1006/text-overflow/" target="_blank"&gt;http://css-eblog.com/eblog_sample/1006/text-overflow/&lt;/a&gt; 
            &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt; 
        &lt;!-- /.pickupBox --&gt;&lt;/div&gt; 

        &lt;p&gt;
            サンプルを見ると、しっかりとテキストか溢れたときだけ&lt;span class="pickup"&gt;...&lt;/span&gt;が表示されているのが分かると思います。&lt;br /&gt;
            （Firefox の【&lt;strong class="attention"&gt;表示＞ズーム＞文字サイズだけ変更&lt;/strong&gt;】のチェックを入れれば、拡大・縮小でテキストサイズだけが変更できるので、それでサイズを変更するとより分かりやすいと思います）
            text-overflow は他の主要なブラウザではすでに実装されているので、それらのブラウザ向けにはそのものを使い、Firefox 向けにだけ今回のテクニックを使っています。
        &lt;/p&gt;
        &lt;p&gt;
            ちなみに Firefox3.0 も対象とするものと、除外したものふたつを紹介します。&lt;br /&gt;
            やっていることはほとんど同じですが、3.0 では実装の違いからうまく動かない部分があるので代替えとしての処理になります。
        &lt;/p&gt;
        &lt;p&gt;&lt;strong class="attention"&gt;3.0 を無視するのであれば、無駄な要素が必要なく、CSS だけですべて実現可能となります。&lt;/strong&gt;&lt;/p&gt;
        &lt;p&gt;
            Firefox3.0 のシェアがそれほどないことから、特に必要でなければ無視したほうが無難かもしれません。&lt;br /&gt;
            効かなかったとしても閲覧に支障が出るわけではないからです。（効かなかったとしても、通常の overflow: hidden でテキストが切り取られるのでレイアウトは破綻しません）
        &lt;/p&gt;
        &lt;p&gt;
            では、実際にテクニックの解説です。&lt;br /&gt;
            まずはソースを見てください。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;HTML ソース&lt;/h3&gt;
        &lt;textarea id="textOverflowHTML" name="textOverflowHTML" class="xml" rows="10" cols="30"&gt; 
            &lt;div id="overflowSample"&gt;
                &lt;h2&gt;Firefox3.0以降&lt;/h2&gt;
                &lt;p class="ttl"&gt;Sample1&lt;/p&gt;
                &lt;div class="overflowBox sample1"&gt;
                    &lt;span class="overflow"&gt;1行が短い場合&lt;span class="leader"&gt;...&lt;/span&gt;&lt;/span&gt;
                &lt;/div&gt;
                &lt;div class="overflowBox sample1"&gt;
                    &lt;span class="overflow"&gt;溢れる場合。溢れる場合。溢れる場合。溢れる場合。&lt;span class="leader"&gt;...&lt;/span&gt;&lt;/span&gt;
                &lt;/div&gt;

                &lt;h2&gt;Firefox3.5以降&lt;/h2&gt;
                &lt;p&gt;:after 擬似クラスを使い、HTML を汚さない実装&lt;/p&gt;
                &lt;p class="ttl"&gt;Sample2&lt;/p&gt;
                &lt;div class="overflowBox sample2"&gt;
                    &lt;span class="overflow"&gt;1行が短い場合&lt;/span&gt;
                &lt;/div&gt;
                &lt;div class="overflowBox sample2"&gt;
                    &lt;span class="overflow"&gt;溢れる場合。溢れる場合。溢れる場合。溢れる場合。&lt;/span&gt;
                &lt;/div&gt;
            &lt;!-- /#overflowSample --&gt;&lt;/div&gt;
        &lt;/textarea&gt; 

        &lt;p&gt;
            HTML はそれほど複雑ではありません。よくある形としては、様々なコンテンツを含んだ div 要素（サンプルでは&lt;span class="pickup"&gt;overflowBox&lt;/span&gt;）があり、その中のどれかの要素（例えばタイトル）の文字数が未知数で、予め想定しておけない、という場合がありえると思います。&lt;br /&gt;
            そしてそれを実現するには、その想定できない要素（つまり&lt;span class="pickup"&gt;text-overflow&lt;/span&gt;を適用させたい要素）に対して&lt;span class="pickup"&gt;class="overflow"&lt;/span&gt;を指定するのみです。&lt;br /&gt;
            続いて CSS を見てみましょう。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;CSS ソース&lt;/h3&gt;
        &lt;textarea id="textOverflowCSS" name="textOverflowCSS" class="css" rows="10" cols="30"&gt; 
            .overflowBox {
                width: 180px;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                -o-text-overflow: ellipsis;
            }
            .overflow:not(div) ,
            x:-moz-broken {
                position: relative;
                display: inline-block;
                overflow: hidden;
            }
            .overflow:not(div) .leader ,
            x:-moz-broken {
                display: inline;
                background: white;
                position: absolute;
                right: -180px;
                margin-right: 100%;
            }
            .leader {
                /* exclude not firefox */
                display: none;
            }
     
            .sample2 .overflow:not(div):after ,
            .overflow:last-of-type&gt;div ,
            x:-moz-broken {
                content: "...";
                display: inline;
                background: white;
                position: absolute;
                right: -180px;
                margin-right: 100%;
            }
        &lt;/textarea&gt; 

        &lt;p&gt;
            今回の肝は&lt;span class="pickup"&gt;margin&lt;/span&gt;だと書きました。&lt;br /&gt;
            ざっくりとなにをしているかを説明すると、まずオーバーフローする横幅を決めます。（サンプルの場合は 180px）&lt;br /&gt;
            そのうえで、そのブロック要素の中に、テキストの内容に応じてボックスのサイズが変わる要素を配置します。（&lt;span class="pickup"&gt;display: inline-block&lt;/span&gt;）
            さらに、テキストがあふれない場合には&lt;span class="pickup"&gt;...&lt;/span&gt;が表示されないよう&lt;span class="pickup"&gt;overflow: hidden&lt;/span&gt;を指定しておきます。
        &lt;/p&gt;
        &lt;p&gt;
            そして&lt;span class="pickup"&gt;:after&lt;/span&gt;擬似要素の content に "..." を指定、それを絶対配置し、オーバーフローする横幅（180px）と同じだけの値分右にずらします。（&lt;span class="pickup"&gt;right: -180px&lt;/span&gt;）&lt;br /&gt;
            そして最後に、その要素の margin-right に 100% を指定します。&lt;br /&gt;
            この :after 擬似要素が、text-overflow のように&lt;span class="pickup"&gt;...&lt;/span&gt;を表示する部分になります。
        &lt;/p&gt;
        &lt;p&gt;
            上記の内容を図にしてみました。テキストが増えても、&lt;span class="pickup"&gt;...&lt;/span&gt;の位置が変わりません。&lt;br /&gt;
            結果、テキストが溢れるくらい長くなったときにだけ「...」の部分が表示される、つまり text-overflow と同じ挙動をする、というわけです。
        &lt;/p&gt;

        &lt;p class="image"&gt;&lt;img src="/images/samp_textoverflow.png" alt="" /&gt;&lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;動作の解説&lt;/h2&gt;
    &lt;p&gt;
        さて、ではなぜそうなるのか。
    &lt;/p&gt;
    &lt;p&gt;
        まず、margin に &amp;#37; を指定するとその値は親ボックスの幅（width）が基準となります。&lt;br /&gt;
        （ちなみに、margin-top/bottom も同様に幅を基準にするので、margin はすべて幅を基準にしている、というわけです）
        つまり、テキストの内容に応じてボックスが拡張されることで、margin の値も変化していくのです。&lt;br /&gt;
        そしてオーバーフローで消したいところまでボックスが伸びると、右にずらした分と margin の値が釣り合い、結果その消えていた分が顔を出す、というわけです。
    &lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;このテクニックの問題点&lt;/h3&gt;
        &lt;p&gt;
            ただこのテクニックにも問題はあり、テキストが等幅ではない場合は文字が欠けてしまう場合がある、ということと、背景に画像を使っているなど、複雑な背景の場合には使えません。&lt;br /&gt;
            なぜなら、この文字を消す処理は、「...」を表示している要素に対して背景に色をつけ、テキストにかぶせることで消えているように見せているためです。
        &lt;/p&gt;
        &lt;p&gt;
            また、Firefox3.0 では、:after 擬似要素の position がうまく動作せず、常にテキストの最後に「...」が表示されてしまいます。&lt;br /&gt;
            そのためサンプルでは、HTML 自身に「...」を追加し、代替案としているわけです。（サンプルで言うと .leader の部分。これはそのまま :after 擬似要素と同じことをしています）
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;ハックを使って Firefox だけにテクニックを指定&lt;/h3&gt;
        &lt;p&gt;
            さらに、セレクタの部分には普段見慣れない指定があるかと思います。&lt;br /&gt;
            これは Firefox 向けのハックです。ハックについては ヨモツネットさんの「&lt;a href="http://www.yomotsu.net/lab/css/csshack_firefox" target="_blank"&gt;Firefox 1.0, 1.5, 3.0, 3.5 用の CSS ハック&lt;/a&gt;」を参考にさせて頂きました。
        &lt;/p&gt;
        &lt;p&gt;
            そしてそれ以外にも&lt;span class="pickup"&gt;:not&lt;/span&gt;などの指定がありますが、これは IE7 対策です。&lt;br /&gt;
            本来、セレクタのグループの中に未知のもの（サンプルでは&lt;span class="pickup"&gt;x:-moz-broken&lt;/span&gt;の部分）が含まれていると、指定されているプロパティを無視するのが仕様なのですが、なぜか IE7 では無視せず、しっかりとプロパティが反映されてしまいました。
        &lt;/p&gt;
        &lt;p&gt;
            なので、実際に使いたいセレクタに、さらに&lt;span class="pickup"&gt;:not&lt;/span&gt;を加えることで、それ自体も無視するようにした、というわけです。
        &lt;/p&gt;
        &lt;p&gt;
            これらの指定をすることで、text-overflow に対応しているブラウザにはそれを、Firefox だけに今回のテクニックをする、というのを実現しているわけです。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;script type="text/javascript"&gt;	
	dp.SyntaxHighlighter.HighlightAll('textOverflowHTML');
	dp.SyntaxHighlighter.HighlightAll('textOverflowCSS');
&lt;/script&gt;             
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/62I2gxIQz10dUSq6iFSIgxzXvQs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/62I2gxIQz10dUSq6iFSIgxzXvQs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/62I2gxIQz10dUSq6iFSIgxzXvQs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/62I2gxIQz10dUSq6iFSIgxzXvQs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/lD_Z9uRUkV8" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/csstechnique/firefox-text-overflow.html</feedburner:origLink></entry><entry>    <title>IE6で複数クラスを使う時の注意点</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/9SPv5PzlZ78/ie6-multiple-class.html" />    <id>tag:css-eblog.com,2010://1.182</id>    <published>2010-04-30T01:00:00Z</published>    <updated>2010-05-02T01:23:44Z</updated>    <summary>IE6で複数クラスを扱うときの注意点と発生するバグ、およびそれの回避方法を紹介します。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <category term="IEのCSSの問題を回避する技" scheme="http://www.sixapart.com/ns/types#category" />        <category term="bug" label="bug" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="class" label="class" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="ie6対策" label="IE6対策" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="クラス" label="クラス" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="バグ" label="バグ" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="複数" label="複数" scheme="http://www.sixapart.com/ns/types#tag" />        <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;複数クラスの使用&lt;/h2&gt;
    &lt;p&gt;
        今さらですが、いちおう念のためってことで。&lt;br /&gt;
        クラスは複数指定することができます。個別のクラスをひとつの要素に割り当てる、という使い方や、決まったクラスの組み合わせのみスタイルを適用する、なんていう使い方ができます。HTML、CSS の指定方法は以下の通りです。
    &lt;/p&gt;
    &lt;textarea id="multipleClassHTML1" name="multipleClassHTML1" class="xml" rows="10" cols="30"&gt;
        &lt;div class="class1"&gt;.class1&lt;/div&gt;
        &lt;div class="class2"&gt;.class2&lt;/div&gt;
        &lt;div class="class1 class2"&gt;.class1.class2&lt;/div&gt;
    &lt;/textarea&gt;
    &lt;p&gt;
        HTML 側は上記のように、半角スペース区切りでクラスを指定すればそれで複数のクラスが指定されたことになります。（もちろん 2 つだけではなく、3 つ以上を指定することも可能です）
    &lt;/p&gt;
    &lt;textarea id="multipleClassCSS1" name="multipleClassCSS1" class="css" rows="10" cols="30"&gt;
        .class1 {
            background: red;
        }
        .class2 {
            background: green;
        }
        .class1.class2 {
            background: gray;
        }
    &lt;/textarea&gt;
    &lt;p&gt;
        CSS 側は上記の 3 つ目の例のようにスペースを開けずにクラス名を連結させると、ふたつのクラスが指定されている要素に&lt;strong class="attention"&gt;のみ&lt;/strong&gt;スタイルを割り当てることができます。（class1, class2 それぞれ別に定義している場合は、それらを合成したスタイルが割り当てられます）&lt;br /&gt;
        これを適用すると以下のようになります。
    &lt;/p&gt;
    &lt;p&gt;&lt;img src="/images/1004/sample_multiClass_01.png" alt="複数クラスを指定し、上からclass1, class2, class1+class2のスタイルが当たった状態。" class="sampleImg" /&gt;&lt;/p&gt;
    &lt;p&gt;これを踏まえて。&lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;複数クラスではまったのでメモ&lt;/h2&gt;
    &lt;p&gt;ある案件で、複数クラスを使ったレイアウトをしていたら軽くはまったのでメモ的にエントリー。&lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;IE6 で使う上での注意点&lt;/h3&gt;
        &lt;p&gt;
            元々 IE6 では複数クラスの実装が不完全で、正確には理解していない、というのは知っていたんですが、まさか適用されない場合があるとは知りませんでした。
        &lt;/p&gt;
        &lt;p&gt;まず、複数クラスを使う場合の問題点。&lt;/p&gt;

        &lt;div class="quote"&gt;
            &lt;blockquote&gt;
                &lt;p&gt;
                    IE6以下ではclassの複数指定は、CSS側のセレクタの記述は対応していないようで、&lt;strong&gt;並べられた最後のclass名単品でしか見られていない&lt;/strong&gt;ようです。&lt;/p&gt;
            &lt;/blockquote&gt;
            &lt;p class="source"&gt;
                出典：&lt;a href="http://web-coder.info/2009/04/css-bug-ie6-multi-class-selecter.html" target="_blank"&gt;IE6以下でclassの複数指定でバグがあった - Webコーダーの手帳&lt;/a&gt;
            &lt;/p&gt;
        &lt;!-- /.quote --&gt;&lt;/div&gt;


        &lt;p&gt;
            上記 引用はどういうことかというと、IE6 では CSS 側で複数のクラス指定に対応しておらず、いくら連結して指定したとしてもそれらがすべて無視され、最終的に最後に書かれたクラス名だけを読み取ってしまっている、ということです。イメージとしてはこんな感じ→&lt;span class="pickup"&gt;&lt;span style="text-decoration: line-through;"&gt;.class1.class2&lt;/span&gt;.class3&lt;/span&gt;
        &lt;/p&gt;
        &lt;p&gt;
            そのため、以下のように CSS を指定しても、上記のサンプルの HTML にもスタイルが適用されてしまう、という問題が発生します。
        &lt;/p&gt;
        &lt;textarea name="multipleClassCSS2" id="multipleClassCSS2" rows="8" cols="40" class="css"&gt;
            .class1.class3.class2 {
                background: gray;
            }
        &lt;/textarea&gt;
        
        &lt;p&gt;▼実際に IE6 で表示してみた例&lt;/p&gt;
        &lt;p&gt;&lt;img src="/images/1004/sample_multiClass_02.png" alt="" class="sampleImg" /&gt;&lt;/p&gt;
        
        &lt;p&gt;▼それ以外のブラウザ（キャプチャは Google Chrome）で表示した例&lt;/p&gt;
        &lt;p&gt;&lt;img src="/images/1004/sample_multiClass_03.png" alt="" class="sampleImg" /&gt;&lt;/p&gt;

        &lt;p&gt;見てみると違いは明白ですね。本来、上記のように複数クラスを指定すると、&lt;span class="pickup"&gt;class1, class2, class3&lt;/span&gt; すべてが指定されている要素にのみ、スタイルが適用されるはずです。&lt;br /&gt;しかし、IE6 では最後に書かれている&lt;span class="pickup"&gt;class2&lt;/span&gt;を読み取り、さも class2 として定義されたかのように 2 つ目と 3 つ目の要素にスタイルが適用されてしまっています。&lt;/p&gt;

        &lt;p&gt;なので、&lt;a href="http://d.hatena.ne.jp/in0in0/20100208/1265657205" target="_blank"&gt;OOCSS&lt;/a&gt; の考えのような形で使用する分にはほとんど問題になりませんが、複数指定されている場合に表示を切り分ける、などのような使い方をする場合は注意が必要です。&lt;br /&gt;
        下手をすると想定外の箇所にもスタイルが適用されて、レイアウトが崩れる、なんてこともあるかもしれません。&lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;ID と連携して使用する場合の注意&lt;/h3&gt;
        &lt;p&gt;さて、今回ハマったのがこちら。まず以下の引用を見てください。&lt;/p&gt;
        &lt;div class="quote"&gt;
            &lt;blockquote&gt;
                &lt;p&gt;
                1つのタグにidとclassを両方設定した際に起きるバグです。(わかりづらくて、すいません。。。)&lt;br /&gt;このバグが発生する条件は少し限られていて、idで設定したスタイルをclassを付け替えることによって、見た目を変更しようとすると発生します。
                &lt;/p&gt;
                &lt;p&gt;
                    ページのレイアウトは一緒だけど、色違いのページが数パターンあるという場合などで使用するかもしれませんね。
                &lt;/p&gt;
            &lt;/blockquote&gt;
            &lt;p class="source"&gt;
                出典：&lt;a href="http://css-el.seesaa.net/article/108157845.html" target="_blank"&gt;IE6.0のバグ　?idとclassを両方設定した際&lt;/a&gt;
            &lt;/p&gt;
        &lt;!-- /.quote --&gt;&lt;/div&gt;
        &lt;p&gt;
            具体的にどういうことかというと、下記のコードを見てください。
        &lt;/p&gt;
        &lt;textarea name="multipleClassHTML2" id="multipleClassHTML2" rows="8" cols="40" class="xml"&gt;
            &lt;div id="samp" class="class1"&gt;#samp.class1&lt;/div&gt;
            &lt;div id="samp" class="class2"&gt;#samp.class2&lt;/div&gt;
            &lt;div id="samp" class="class3"&gt;#samp.class3&lt;/div&gt;
        &lt;/textarea&gt;
        &lt;p&gt;
            まずは HTML から。&lt;br /&gt;
            &lt;strong class="attention"&gt;サンプルでは比較しやすいように id が重複していますが、通常のサイトのように 1 つであっても問題が発生します&lt;/strong&gt;。
        &lt;/p&gt;

        &lt;textarea name="multipleClassCSS3" id="multipleClassCSS3" rows="8" cols="40" class="css"&gt;
            #samp {
                border: solid 1px #000;
            }
            #samp.class1 {
                background: red;
            }
            #samp.class2 {
                background: green;
            }
            #samp.class3 {
                background: gray;
            }
        &lt;/textarea&gt;

        &lt;p&gt;
            続いて CSS。&lt;br /&gt;
            &lt;span class="pickup"&gt;#id.class&lt;/span&gt; と書くと、指定した id と class の両方が指定されている要素にのみスタイルを適用することができます。
        &lt;/p&gt;
        &lt;p&gt;
            想定としては、ID で大枠のレイアウトスタイルを書き、ページごと（あるいはモジュールごと）に class をつけかえて色や見た目を変化させる、という感じになるかと思います。（というかまさに今回ハマったのはそういった使い方でした）
        &lt;/p&gt;
        &lt;p&gt;
            上記のものを表示してみると以下のようになります。（Google Chrome でのキャプチャ）
        &lt;/p&gt;
        &lt;p&gt;&lt;img src="/images/1004/sample_multiClass_05.png" alt="" class="sampleImg" /&gt;&lt;/p&gt;
        &lt;p&gt;
            見てみると、それぞれ上からしっかりとスタイルが適用されているのが分かるかと思います。&lt;br /&gt;
            しかし、これを IE6 で見てみると下のような感じになります。
        &lt;/p&gt;
        &lt;p&gt;&lt;img src="/images/1004/sample_multiClass_04.png" alt="" class="sampleImg" /&gt;&lt;/p&gt;
        &lt;p&gt;
            3 つの内、下ふたつにスタイル（背景色）が当たっていないのが分かると思います。&lt;br /&gt;
            複数クラスの場合は、他で指定されたものが反映されていましたが、今回のサンプルでは完全にスタイルが無視されてしまっています。&lt;br /&gt;
            こうなると、&lt;span class="pickup"&gt;!important&lt;/span&gt; 規則を使ってもなにをしても反映されなくなってしまいます。（優先度ではなく、完全に無視されているような感じ）
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;バグの回避方法&lt;/h2&gt;
        &lt;p&gt;そこで、このバグの回避方法が引用先の記事で書かれていました。そこで紹介されていたのは 2 つになります。&lt;/p&gt;

        &lt;div class="section"&gt;
            &lt;h3 class="sectionTitle"&gt;要素を追加して回避する&lt;/h3&gt;
            &lt;div class="quote"&gt;
                &lt;blockquote&gt;
                    &lt;p&gt;
                        バグの発生条件にも書きましたが、どうやらセレクタの最後でクラスの付け替えによるスタイルの上書きをしようと試みた際に発生するようなので、最後に別のものを追加すれば回避することができます。
                    &lt;/p&gt;

                    &lt;p&gt;
                        下記のソースでは、セレクタの最後をpにすることでバグを回避しています。
                    &lt;/p&gt;
                &lt;/blockquote&gt;
                &lt;p class="source"&gt;
                    出典：&lt;a href="http://css-el.seesaa.net/article/108157845.html" target="_blank"&gt;IE6.0のバグ　?idとclassを両方設定した際&lt;/a&gt;
                &lt;/p&gt;
            &lt;!-- /.quote --&gt;&lt;/div&gt;
            &lt;p&gt;
                上記の説明を、今回のサンプルに適用すると以下のようになります。
            &lt;/p&gt;

            &lt;textarea name="multipleClassHTML3" id="multipleClassHTML3" rows="8" cols="40" class="xml"&gt;
                &lt;div id="samp" class="class1"&gt;&lt;p&gt;#samp.class1&lt;/p&gt;&lt;/div&gt;
                &lt;div id="samp" class="class2"&gt;&lt;p&gt;#samp.class2&lt;/p&gt;&lt;/div&gt;
                &lt;div id="samp" class="class3"&gt;&lt;p&gt;#samp.class3&lt;/p&gt;&lt;/div&gt;
            &lt;/textarea&gt;

            &lt;p&gt;
            このように、#id.class の指定をしている要素のさらに内側に、別の要素を追加します。（サンプルでは p 要素を追加していますが、p 以外でも大丈夫です）&lt;br /&gt;
            そして CSS は以下のようにします。
            &lt;/p&gt;

            &lt;textarea name="multipleClassCSS4" id="multipleClassCSS4" rows="8" cols="40" class="css"&gt;
                #samp {
                    border: solid 1px #000;
                }
                #samp.class1 p {
                    background: red;
                }
                #samp.class2 p {
                    background: green;
                }
                #samp.class3 p {
                    background: gray;
                }
            &lt;/textarea&gt;

            &lt;p&gt;
                こうすることで CSS の指定を認識してくれるようになります。（これが認識される、ということは id + class の指定はいちおう認識してるってことですよね・・なぜ最後に要素を足さないと認識しないのか・・まさにバグですね；）
            &lt;/p&gt;
        &lt;!-- /.section --&gt;&lt;/div&gt;

        &lt;div class="section"&gt;
            &lt;h3 class="sectionTitle"&gt;ID と class を分ける&lt;/h3&gt;
            &lt;p&gt;
                これは、#id.class という表記だとバグが発生するために、この連結での指定をやめてclass 単体でスタイルを指定する、というもの。&lt;br /&gt;
                ただ、これだと根本の解決にはなっておらず、おそらく普通の指定方法となんら変わらないですよね。
            &lt;/p&gt;
            &lt;p&gt;
                それでもやはり、 IE6 対応を視野に入れるのであればこうした処置はやむを得ないことだとは思います。&lt;br /&gt;
                また他のところでも言っていますが、ID でなければならない状況ってなにげに少ないと思っています。&lt;br /&gt;
            &lt;/p&gt;
            &lt;p&gt;
                JavaScript からアクセスする、というような用途がない限りは、class 指定だけでもスタイルを当てていくことはむずかしくありません。むしろ、ID の介入によって &lt;a href="/beginner/cssbeginer7.html#beginer03"&gt;優先度&lt;/a&gt; が上がり、かなりしっかりと構造を定義しておかないと、後々別の箇所で新しい指定をしたい、と思ったときに上書きできずに、仕方なく id による優先度上げを行うしかない場合もあったりします。
            &lt;/p&gt;
            &lt;p&gt;
                そういう意味でも、あまり id での指定を多用せず、複数クラスの指定に留めておくのが安全かもしれません。
            &lt;/p&gt;
        &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;script type="text/javascript"&gt;	
	dp.SyntaxHighlighter.HighlightAll('multipleClassHTML1');
	dp.SyntaxHighlighter.HighlightAll('multipleClassHTML2');
	dp.SyntaxHighlighter.HighlightAll('multipleClassHTML3');
	dp.SyntaxHighlighter.HighlightAll('multipleClassCSS1');
	dp.SyntaxHighlighter.HighlightAll('multipleClassCSS2');
	dp.SyntaxHighlighter.HighlightAll('multipleClassCSS3');
	dp.SyntaxHighlighter.HighlightAll('multipleClassCSS4');
&lt;/script&gt;
            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RwaKGgQL2ZL76BTaRJUhC7DuJy8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RwaKGgQL2ZL76BTaRJUhC7DuJy8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RwaKGgQL2ZL76BTaRJUhC7DuJy8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RwaKGgQL2ZL76BTaRJUhC7DuJy8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/9SPv5PzlZ78" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/ie-css-problems/ie6-multiple-class.html</feedburner:origLink></entry><entry>    <title>CSS Nite LP9 第2回コーディングコンテストで、見事に入賞しました！</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/mwTM7h64eqY/lp9cc-prize.html" />    <id>tag:css-eblog.com,2010://1.183</id>    <published>2010-04-20T14:56:27Z</published>    <updated>2010-04-27T05:54:49Z</updated>    <summary>見事、コーディングコンテストで受賞しました！Web Site Expert賞という賞を頂きました！</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="雑談" scheme="http://www.sixapart.com/ns/types#category" />        <category term="cssnite" label="CSS Nite" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="コーディングコンテスト" label="コーディングコンテスト" scheme="http://www.sixapart.com/ns/types#tag" />    <category term="受賞" label="受賞" scheme="http://www.sixapart.com/ns/types#tag" />        <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;Web Site Expert 賞を頂きました&lt;/h2&gt;
    &lt;p&gt;&lt;ins class="insert" datetime="2010-04-27T14:41:00+09:00"&gt;
        &lt;a href="http://lp9cc.pxgrid.com/"&gt;コーディングコンテストの結果が発表&lt;/a&gt;されたようです。応募された作品や、入賞した作品へのコメントも掲載されているので、見てみると面白いかもしれません。
    &lt;/ins&gt;&lt;/p&gt;
    &lt;p&gt;
        前回の記事の &lt;a href="http://css-eblog.com/note/lp9cc.html"&gt;CSS Nite LP9 第2回コーディングコンテストに応募しました&lt;/a&gt; で応募したコンテストで、見事入賞することができました！（&lt;a href="http://www.pxgrid.com/2010codingcontest/#%E5%8F%97%E8%B3%9E%E4%BD%9C%E5%93%81" target="_blank"&gt;結果発表はこちら&lt;/a&gt;）
    &lt;/p&gt;
    &lt;p&gt;
        時間があまり取れず、最後の方は急ぎ足で作ったのと、&lt;a href="http://html5.jp/" target="_blank"&gt;HTML5.JP&lt;/a&gt; を運営している羽田野さんの &lt;a href="http://www.amazon.co.jp/gp/product/4798025291?ie=UTF8&amp;tag=edom18-22&amp;linkCode=as2&amp;camp=247&amp;creative=1211&amp;creativeASIN=4798025291"&gt;書籍：徹底解説HTML5マークアップガイドブック&lt;/a&gt; &lt;img src="http://www.assoc-amazon.jp/e/ir?t=edom18-22&amp;l=as2&amp;o=9&amp;a=4798025291" width="1" height="1" alt="" /&gt;を応募後に読んで、なんだか色々と「ああしておけばよかった・・orz」としきりに後悔していましたが、幸いにも賞を頂くことができました。
    &lt;/p&gt;
    &lt;p&gt;
        ただ、今回のコンテストでは最優秀賞はいなかったとのこと。&lt;br /&gt;
        次回（もしあれば）は最優秀賞をもらえるよう、がんばりたいと思います。
    &lt;/p&gt;
    &lt;p&gt;
        今回のコンテスト参加で、賞以前に、とても勉強させてもらいました。&lt;br /&gt;
        一度、がっつりとコーディングをしてみることで色々なものが見えてきます。&lt;br /&gt;
        まだ上記の結果発表ページの下から、デザインデータなどがダウンロードできるのでコンテストに関係なく、コーディングルールを意識して制作してみると色々と勉強になっていいと思います。時間があるかたはぜひ、チャレンジしてみてください。
    &lt;/p&gt;
    &lt;p&gt;
        いちおう、CSS Nite LP9 にも参加してきたんですが、あいにくお通夜と重なってしまい、一番見たかった最後の 3 セッションは結局断念・・(´；ω；｀)　とりあえずそのセッションに関しては公開されているスライドを見て気を紛らわせることにしますｗ
    &lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OvHr7GtmgUTYf1eiLZihWi7ZyE8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OvHr7GtmgUTYf1eiLZihWi7ZyE8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OvHr7GtmgUTYf1eiLZihWi7ZyE8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OvHr7GtmgUTYf1eiLZihWi7ZyE8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/mwTM7h64eqY" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/note/lp9cc-prize.html</feedburner:origLink></entry><entry>    <title>CSS Nite LP9 第2回コーディングコンテストに応募しました</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/cno-1gj1G2o/lp9cc.html" />    <id>tag:css-eblog.com,2010://1.181</id>    <published>2010-03-28T06:47:00Z</published>    <updated>2010-04-21T08:56:55Z</updated>    <summary>CSS Nite LP9のコーディングコンテストに応募した作品の公開と感想などを書いてます。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="雑談" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;無事、コーディングコンテストに応募できました。&lt;/h2&gt;
    &lt;ins datetime="2010-04-21T17:53:00+09:00"&gt;
    &lt;div class="pickupBox"&gt;
        &lt;div class="pickupBoxInner"&gt;
            なんと見事、コーディングコンテストで受賞しました！ &lt;a href="/note/lp9cc-prize.html"&gt;詳細はこちら！&lt;/a&gt;
        &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
    &lt;!-- /.pickupBox --&gt;&lt;/div&gt;
    &lt;/ins&gt;
    &lt;p&gt;
        以前 &lt;a href="/web/coding-contest.html"&gt;CSS Nite LP9にて、第2回コーディングコンテスト開催決定。&lt;/a&gt; で書いたコーディングコンテストに応募しました！
    &lt;/p&gt;
    &lt;p&gt;
        なかなか時間が取れず、結局最後の 3 連休で時間を作って大慌てで作成しました。作業時間としては大体 13 時間くらいかな？&lt;br /&gt;
        だからというのでもないですが、今見直すと色々と直したいところがちらほら・・。
    &lt;/p&gt;
    &lt;p&gt;
        しかし、実際に作ってみてとても勉強になったいい課題だったと思います。&lt;br /&gt;
        CSS3 を前提としているからか、「あ、きっとこれはこれを使うことを考えてるんだろうな」みたいなところが見え隠れして、細部まで考えられてるなーというのが印象に残ってます。
    &lt;/p&gt;
    &lt;p&gt;
        ということで、とりあえず応募したのはこんな感じになりました↓
    &lt;/p&gt;
    &lt;div class="pickupBox demo"&gt;
        &lt;div class="pickupBoxInner"&gt;
            &lt;a href="/eblog_sample/1003/lp9cc/"&gt;http://css-eblog.com/eblog_sample/1003/lp9cc/&lt;/a&gt;
        &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
    &lt;!-- /.pickupBox --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;        &lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;応募した感想&lt;/h2&gt;
    &lt;p&gt;
        作ってみての感想をちょろちょろと書いてみます。&lt;br /&gt;
        そして制作に当たる前に念頭において作業に当たったテーマが "&lt;strong class="attention"&gt;とにかく減らせる部分は減らす&lt;/strong&gt;" ということ。例えば画像だったり、class名だったり、要素だったり。
    &lt;/p&gt;
    &lt;p&gt;
        色々見ていくと結構減らせるところがあるんです。特に画像なんかは。なのでコンテスト以前に、どこまで減らせるものなのか、っていうことに挑戦しようと思って制作に当たりました。（まぁ結局精査できずに、冗長になってるところとかありますが・・）
    &lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;CSS3 についての感想&lt;/h3&gt;
        &lt;p&gt;
            今回の主題のひとつ。そして CSS-EBLOG って名前のブログなので、ここを重点的に書きたいと思います。
        &lt;/p&gt;
        &lt;p&gt;
            作成し終えての感想としては "&lt;strong class="attention"&gt;とにかく CSS3 は面白い！&lt;/strong&gt;" ということ。&lt;br /&gt;
            マークアップを終えて、「さーCSS当てるぞー」ってなったとき、とにかくできることが豊富なので（そして普段の案件ではまず使わないプロパティ目白押しなので）一瞬手が止まるｗ　「あ、ここはこのプロパティでいいのか・・」みたいな感じで、なんかついつい普段使ってるテクニックを使ったりなんかして、書き直したり、みたいなことがありました。&lt;br /&gt;
            でもやっぱり、「あー、これ使えるなら楽だわー」ということのほうが圧倒的に多かったｗ
        &lt;/p&gt;
        &lt;p&gt;
            各カラムの高さを揃えるなんて&lt;span class="pickup"&gt;display: box&lt;/span&gt;で OK だし、角丸も画像要らないし、グラデも楽チン。
        &lt;/p&gt;
        &lt;p&gt;
            あ、そうそう、今回の制作で（自作ですが）とても重宝したツールが &lt;a href="/css3/css3-generator.html"&gt;Photoshopライクな操作で手軽に作れるCSS3ジェネレーター&lt;/a&gt; です。ちらほらグラデを利用したデザインだったので、PSD から色をとりつつ、このツールでグラデを作ってはコピペ、を繰り返してました。&lt;del&gt;あー、ここの文脈に aside 使いたい・・&lt;/del&gt;
        &lt;/p&gt;
        &lt;p&gt;
            &lt;span class="pickup"&gt;box-shadow&lt;/span&gt;なんかも大いに役に立ってくれました。（これが使えないだけでほんとにめんどくさい作業になる・・。どうか仕様に戻ってきてください）
        &lt;/p&gt;
        &lt;p&gt;
            参加された方の twitter のつぶやきなどを見ていると、グラデ＋パターンどうしよう、というのを見たりしました。これを通常の案件でやられたら、実現するのにかなり悩みますが、CSS3 の multiple background と linear-gradient を使えば、パターン用の小さい画像ひとつ用意するだけで簡単に実現できてしまいます。
        &lt;/p&gt;
        &lt;p&gt;
            なので、デザインの再現、という部分においてはかなり楽に作業ができました。「NEW!」なんかのアイコン部分なんかもなにげに CSS のみで実現できちゃいますし。どちらかというと、マークアップのほうが時間がかかったかも。ただ 1 点、「ライセンスについて」の説明部分で、情報詳細へのリンクなどが（文章量に関係なく）横一列に並んでいるデザインだったので、ここの実装がすごい手間取りました。（ボックス全体が同じ高さなら楽なんですが、途中だけ同じ高さ、みたいな感じなので・・）
        &lt;/p&gt;
        &lt;p&gt;
            とにかく、制作したことで色々な発見があってすごい勉強になった課題でした。もし参加されていない人も、応募締め切りは過ぎていますが、挑戦するとすごい勉強になるのでおすすめですよ！
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;HTML5 についての感想&lt;/h3&gt;
        &lt;p&gt;
            こちらも今回の主題のひとつ。そして HTML5 は勉強不足でした・・。応募終了後、締め切りを過ぎてからちらほらコンテストについてのコメントが流れ始めたんですが、「あー、ここはこれがあったかー！」なんて気づきがあったりして、もっと勉強せねば！　という思いにかられました。
        &lt;/p&gt;
        &lt;p&gt;
            ただ、実際に組んでみて思ったことは "&lt;strong class="attention"&gt;HTML の見通しがとてもいいこと&lt;/strong&gt;"。&lt;br /&gt;
            どういうことかというと、&lt;span class="pickup"&gt;section&lt;/span&gt;や&lt;span class="pickup"&gt;nav&lt;/span&gt;、&lt;span class="pickup"&gt;header&lt;/span&gt;など、要素名自体に意味があるものが増えたことで、div によるマークアップが減ったこと。結果、なにを意味している部分なのか、というのが見やすくなったわけです。
        &lt;/p&gt;
        &lt;p&gt;
            さらに、これは CSS3 前提というのも大きくて、普段なら色々入れ子にしたり、class 名をつけたり、ということをしないといけない部分をかなりクリーンに保つことができたことです。子供セレクタがあるおかげで、汎用的な要素に対しても特に class 名をつけたりすることなく、気軽にスタイルを当てることができました。
        &lt;/p&gt;
        &lt;p&gt;
            将来的には（しっかりと作りさえすれば）とても見やすく、メンテナンス性の高いものが作れるようになるんだろうなーというふうに思っています。
        &lt;/p&gt;
        &lt;p&gt;
            ちなみに、CSS HappyLife さんが &lt;a href="http://css-happylife.com/log/html/000760.shtml" target="_blank"&gt;HTML5 ざっくりメモ&lt;/a&gt; なんてものを書かれてて、ここを見て「そうだったかー」という発見もあったり。分かりやすく書いてくれているので、一度見ておくといいかも。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h3 class="sectionTitle"&gt;全体を通しての感想&lt;/h3&gt;
        &lt;p&gt;
            さて、色々と書いてきましたが、ちょっとだけ気になった部分などを。&lt;br /&gt;
            メンテナンス性や HTML をクリーンに、と書きましたが、場合によっては今以上に厳密に設計しないと大変なことになるかなーということも同時に感じたのでそれを書きたいと思います。
        &lt;/p&gt;
        &lt;p&gt;
            まず、&lt;span class="pickup"&gt;nth-child&lt;/span&gt; の擬似クラス。&lt;br /&gt;
            とても便利で、使い勝手のいいものですが、更新などについてよく考えて使わないと、ただ単に「上から 3 つ目の p 要素だけ背景色これね」みたいな感覚で使ってしまうと、もし更新が入った際に、そのひとつ前になにか要素を追加しなければいけなくなったとき、同様にして CSS も修正しないといけなくなります。
        &lt;/p&gt;
        &lt;p&gt;
            なので、擬似クラスにもしっかりと意味を与えて、例えば 3 つ目の li 要素は margin を 0 に、みたいに前後になにか要素が入った場合でも、必ず「3 番目に意味がある」という感じで使わないととても修正が大変になってしまいそうです。
        &lt;/p&gt;
        &lt;p&gt;
            それから、様々に追加されたセレクタを駆使して実現するデザイン。これは、「やっぱりこれこっちに移動しよう」みたいになったときに、今までのように class 名をつけておけば HTML だけの移動で済んだものが、あまりに擬似クラスなどのセレクタに頼りすぎていると、やはり CSS 側での修正が入ってしまう可能性があること。
        &lt;/p&gt;
        &lt;p&gt;
            ユーザスタイルシートなどで、HTML をいじれないけど・・みたいなときはとても効果を発揮してくれそうな各種セレクタですが、新規の構築時には意味をもたせるという意味でも、妥当な class 名は指定しておいたほうがいいかもしれません。（あくまでモジュール単位を意識して、全部につける必要はないと思いますが）
        &lt;/p&gt;
        &lt;p&gt;
            さて、色々と書きましたが、実際に作ったものを見て、色々と突っ込んでくれると勉強になるので嬉しいッスｗ
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/g6tSBu42Q-NlMzstzcmCIIDKFp8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g6tSBu42Q-NlMzstzcmCIIDKFp8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/g6tSBu42Q-NlMzstzcmCIIDKFp8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/g6tSBu42Q-NlMzstzcmCIIDKFp8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/cno-1gj1G2o" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/note/lp9cc.html</feedburner:origLink></entry><entry>    <title>box-shadowを使った面白演出 - CSS3で遊んでみる4</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/rlSanZ3AYnU/box-shadow-tips.html" />    <id>tag:css-eblog.com,2010://1.180</id>    <published>2010-03-08T05:04:00Z</published>    <updated>2010-03-14T16:05:59Z</updated>    <summary>box-shadowを複数指定して、Photoshopで実現するようなボタンデザインをCSS3のみで実現する方法の紹介。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSS3関連" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSだけでアクションを作る" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
	&lt;p class="photo"&gt;&lt;img src="http://css-eblog.com/images/sample_box-shadow.png" alt="box-shadowサンプル" /&gt;&lt;/p&gt;
	&lt;p&gt;
		今回のネタは、box-shadow を使った、ちょっと面白い演出とデザインの紹介です。&lt;br /&gt;
		box-shadow は現在、最初に書かれていた仕様の &lt;a href="http://www.w3.org/TR/css3-background/" target="_blank"&gt;CSS Backgrounds and Borders Module Level 3&lt;/a&gt; からは削除されおり、まだ策定中の段階ですが、先日リリースされた Opera10.50 ではベンダープレフィクスが取れた状態で使用できるようになっています。（なぜ・・・？）
	&lt;/p&gt;
	&lt;p&gt;
		そのため、Firefox や WebKit 系ブラウザで使うには&lt;span class="pickup"&gt;-moz-&lt;/span&gt;や&lt;span class="pickup"&gt;-webkit-&lt;/span&gt;のベンダープレフィクスが必要です。
	&lt;/p&gt;
	&lt;p&gt;
		また今回のネタでは、transition プロパティに対応している WebKit のみ、アニメーションの演出を見ることができます。&lt;br /&gt;
		いちおう Opera10.50 でも transiton には対応したのですが、box-shadow へのアニメーションは適用されませんでした。
	&lt;/p&gt;
	&lt;p&gt;
		ということで、百聞は一見にしかず、ということでデモを見てください。
	&lt;/p&gt;

	&lt;div class="section"&gt;
		&lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;
		&lt;div class="pickupBox demo"&gt;
			&lt;div class="pickupBoxInner"&gt;
				&lt;a href="/eblog_sample/1003/box-shadow-tips/"&gt;http://css-eblog.com/eblog_sample/1003/box-shadow-tips/&lt;/a&gt;
			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;
	&lt;!-- /.section --&gt;&lt;/div&gt;

	&lt;div class="section"&gt;
		&lt;h2 class="sectionTitle"&gt;ダウンロード&lt;/h2&gt;
		&lt;div class="pickupBox download"&gt;
			&lt;div class="pickupBoxInner"&gt;
				&lt;a href="/eblog_sample/1003/box-shadow-tips/box-shadow-tips.zip"&gt;http://css-eblog.com/eblog_sample/1003/box-shadow-tips/box-shadow-tips.zip&lt;/a&gt;
			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;
	&lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;        &lt;div class="section"&gt;
	&lt;div class="section"&gt;
		&lt;h2 class="sectionTitle"&gt;今回のネタの解説&lt;/h2&gt;
		&lt;p&gt;
			今回使用しているのは&lt;span class="pickup"&gt;box-shadow&lt;/span&gt;がほとんどです。&lt;br /&gt;
			box-shadow の使い方は以下の通りです。（※現在は草案からも消えているので、今後仕様が変更される可能性があります[2010/03/06 現在]。下の書式については、&lt;a href="https://developer.mozilla.org/en/CSS/-moz-box-shadow" target="_blank"&gt;mozilla developer center&lt;/a&gt; を参考にしました）n
		&lt;/p&gt;
		&lt;textarea class="css" cols="40" rows="5" id="boxShadow01" name="boxShadow01"&gt;
			-moz-box-shadow:  none | &lt;shadow&gt; [,&lt;shadow&gt;]*
			/* shadow の意味 */
			inset? &amp;&amp; [ &lt;offset-x&gt; &lt;offset-y&gt; &lt;blur-radius&gt;? &lt;spread-radius&gt;? &amp;&amp; &lt;color&gt;? ]
		&lt;/textarea&gt;
		&lt;p&gt;
			inset は、Photoshop で言うところのシャドウ内側に当たる指定になります。&lt;br /&gt;
			続いて左から順に、X 座標のずれ、Y 座標のずれ、ぼかしの度合い、シャドウの幅、色、となります。&lt;br /&gt;
			offset-x, offset-y, spread-radius に関してはマイナス値も指定することができます。&lt;br /&gt;
		&lt;/p&gt;
		&lt;p&gt;
			inset を指定すると、効果がボックスの内側に作用するようになります。今回のネタは、この inset を使ったテクニックです。n
		&lt;/p&gt;

		&lt;div class="section"&gt;
			&lt;h3 class="sectionTitle"&gt;box-shadow の値は複数指定することができる&lt;/h3&gt;
			&lt;p&gt;
				デモのソースを見てもらうと分かりますが、box-shadow プロパティの値には、複数の値を指定することができます。（指定する場合は、カンマ区切りで列挙します）&lt;br /&gt;
				つまり、外側に普通のドロップシャドウをつけつつ、inset を利用してちょっとした装飾ができる、というわけです。例えば、n
			&lt;/p&gt;
			&lt;textarea class="css" cols="40" rows="5" id="boxShadow02" name="boxShadow02"&gt;
				box-shadow: 1px 1px 2px rgba(0,0,0,0.5), 1px 1px 0 1px rgba(255,255,255,0.8) inset;
			&lt;/textarea&gt;
			&lt;p&gt;
				上記のように、カンマ区切りで外側のシャドウと、内側に 1px のボーダーのようなシャドウを指定することができます。&lt;br /&gt;
				内側に 1px のハイライトを入れることによって、立体感を増し、よりディティールを意識したボタンをデザインすることができるようになります。n
			&lt;/p&gt;
			&lt;p&gt;
				またカラーには RGBa も使えるので、透明度を調整することで色を直接指定するよりも直感的にデザインすることができます。n
			&lt;/p&gt;
			&lt;p&gt;
				幅のサイズを変更したり、X 座標のずれを調整したりすることを複数指定でいくつも適用することで面白い演出が可能です。&lt;br /&gt;
				Photoshop のレイヤースタイルでやるようなことが結構実現できると思うので、色々いじってみてはどうでしょうか。n
			&lt;/p&gt;
		&lt;!-- /.section --&gt;&lt;/div&gt;

		&lt;div class="section"&gt;
			&lt;h3 class="sectionTitle"&gt;画像は一切使用していません&lt;/h3&gt;
			&lt;p&gt;
				ちなみに、今回のサンプルでは画像を一切使っていません。グラデーションも CSS3 の機能を使って描いています。&lt;br /&gt;
				そのため、Firefox3.6、Google Chrome, Safari でしか正常に動作しません。&lt;br /&gt;
			&lt;/p&gt;
			&lt;p&gt;
				グラデーションの指定は結構めんどくさいですが、以前作った &lt;a href="/css3/css3-generator.html"&gt;Photoshopライクな操作で手軽に作れるCSS3ジェネレーター&lt;/a&gt; を使うと、比較的簡単にグラデーションのソースが生成できるので、よかったら利用してみてください。n
			&lt;/p&gt;
		&lt;!-- /.section --&gt;&lt;/div&gt;
	&lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="relEntry"&gt;
	&lt;p class="title"&gt;合わせて読むと役に立つかもなエントリー&lt;/p&gt;
	&lt;ul&gt;
		&lt;li&gt;&lt;a href="/css3/css3-generator.html" title="Photoshopライクな操作で手軽に作れるCSS3ジェネレーター"&gt;&amp;raquo;Photoshopライクな操作で手軽に作れるCSS3ジェネレーター&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="/summary/css3-summary.html" title="各ブラウザで先行実装しているCSS3プロパティまとめ"&gt;&amp;raquo;各ブラウザで先行実装しているCSS3プロパティまとめ&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="/css3/text-stroke.html" title="CSSのみで袋文字を実現する - CSS3で遊んでみる3"&gt;&amp;raquo;CSSのみで袋文字を実現する - CSS3で遊んでみる3&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="/css3/css3-flash-button.html" title="ボタンに光のエフェクトを加えるCSS3 - CSS3で遊んでみる2"&gt;&amp;raquo;ボタンに光のエフェクトを加えるCSS3 - CSS3で遊んでみる2&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="/css3/css3-radial-button.html" title="CSS3だけで丸いボタンを作る方法 - CSS3で遊んでみる"&gt;&amp;raquo;CSS3だけで丸いボタンを作る方法 - CSS3で遊んでみる&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
&lt;/div&gt;

&lt;script type="text/javascript"&gt;	
	dp.SyntaxHighlighter.HighlightAll('boxShadow01');
	dp.SyntaxHighlighter.HighlightAll('boxShadow02');
&lt;/script&gt;    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h1wCUvtf8oKun3qhW555OI9TDQA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h1wCUvtf8oKun3qhW555OI9TDQA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h1wCUvtf8oKun3qhW555OI9TDQA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h1wCUvtf8oKun3qhW555OI9TDQA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/rlSanZ3AYnU" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css3/box-shadow-tips.html</feedburner:origLink></entry><entry>    <title>CSS Nite LP9にて、第2回コーディングコンテスト開催決定。</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/Y53sKCEjOmg/coding-contest.html" />    <id>tag:css-eblog.com,2010://1.179</id>    <published>2010-02-21T14:09:00Z</published>    <updated>2010-03-14T17:01:16Z</updated>    <summary>CSS Nite LP9 にて、コーディングコンテストが開催されます。今回はなんとHTML5+CSS3でのコーディングが審査対象になっています。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="web関連記事" scheme="http://www.sixapart.com/ns/types#category" />            <category term="雑談" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
	&lt;p class="photo"&gt;&lt;img src="http://css-eblog.com/images/samp_contest.png" alt="コーディングコンテストデザインサンプル" /&gt;&lt;/p&gt;
	&lt;p&gt;
		表題通り、4/17に開催される &lt;a href="http://lp9.cssnite.jp/" target="_blank"&gt;CSS Nite LP9&lt;/a&gt; にて、&lt;a href="http://www.pxgrid.com/2010codingcontest/" target="_blank"&gt;コーディングコンテスト&lt;/a&gt; が開催されることになりました。
	&lt;/p&gt;
	&lt;p&gt;
		あらかじめ用意されている PSD データを基に、自分の考えに基づいてコーディングを行い、テクニック、デザイン再現性、メンテナンス性の高さを競うものです。
	&lt;/p&gt;
	&lt;p&gt;
		さらに今回のコンテストはなんと、&lt;strong class="attention"&gt;HTML5+CSS3&lt;/strong&gt; でのコーディングとなります。&lt;br /&gt;
		HTML5 とか CSS3 まだ使ったことないんだよなーという人も、この機会に参加してみてはいかがでしょうか。いちおう自分も参加するつもりでおります。
	&lt;/p&gt;
	&lt;p&gt;
		しかも発表は、&lt;a href="http://lp9.cssnite.jp/" target="_blank"&gt;CSS Nite LP9&lt;/a&gt; イベント当日に行われるそうです。いくつかの賞が用意されているようで、最優秀賞作品はシックス・アパート公式サイトで公開されるようです。（デザインサンプルの提供がシックス・アパートで、コンテスト対象のデザインも MT5 のページ 1 ページをコーディングする、というものです）
	&lt;/p&gt;
	&lt;p&gt;
		対象ブラウザも Firefox3.6 と Safari4 と、かなり思い切ったものなので、&lt;strong class="attention"&gt;思う様 CSS3 を書くチャンス&lt;/strong&gt;ですｗ&lt;br /&gt;
		なかなか実務で使うことが難しい CSS3 ですが、たまに CSS3 のサンプルを書くとあまりにも楽なセレクタや表現の幅の広がりに涙が出そうになります。&lt;br /&gt;
		そういった CSS3 の素晴らしさを知る、という意味でも参加してみると面白いと思います。
	&lt;/p&gt;
	&lt;div class="pickupBox"&gt;
		&lt;div class="pickupBoxInner"&gt;
			&lt;ul class="bulletedList"&gt;
				&lt;li&gt;&lt;a href="http://www.pxgrid.com/2010codingcontest/" target="_blank"&gt;CSS Nite LP9 連動 第 2 回コーディングコンテスト&lt;/a&gt;&lt;/li&gt;
				&lt;li&gt;&lt;a href="http://cssnite.jp/archives/post_1766.html" target="_blank"&gt;LP9 連動企画：「第 2 回コーディングコンテスト」を併催 | CSS Nite 公式サイト&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;
		&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
	&lt;!-- /.pickupBox --&gt;&lt;/div&gt;

	&lt;p&gt;
	&lt;a href="http://www.pxgrid.com/2010codingcontest/" target="_blank"&gt;&lt;img src="http://www.pxgrid.com/2010codingcontest/images/CSSNiteLP9-CC_banner.gif" alt="Coding Contest #02 - HTML5 + CSS3" /&gt;&lt;/a&gt;
	&lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RNey65pzB45gyDNIYVtnRzSIKSY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RNey65pzB45gyDNIYVtnRzSIKSY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RNey65pzB45gyDNIYVtnRzSIKSY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RNey65pzB45gyDNIYVtnRzSIKSY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/Y53sKCEjOmg" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/web/coding-contest.html</feedburner:origLink></entry><entry>    <title>CSSのみで袋文字を実現する - CSS3で遊んでみる3</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/8hkKBGBav-0/text-stroke.html" />    <id>tag:css-eblog.com,2010://1.178</id>    <published>2010-01-29T01:46:00Z</published>    <updated>2010-03-14T16:37:22Z</updated>    <summary>CSS3のtext-shadowプロパティをうまく使って袋文字を実現するネタです。いちおう、filterを使ってIEにも対応しています。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSS3関連" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSS小技" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
	&lt;p class="photo"&gt;&lt;a href="/eblog_sample/1001/text-stroke/" target="_blank"&gt;&lt;img src="/images/sample_text-stroke.png" alt="袋文字のサンプル画像" /&gt;&lt;/a&gt;&lt;/p&gt;
	&lt;p&gt;
		今回も CSS3 で遊んでみるシリーズです。&lt;br /&gt;
		"&lt;strong class="attention"&gt;今回のネタは、CSS3 で袋文字を作る&lt;/strong&gt;"、です。
	&lt;/p&gt;
	&lt;p&gt;
		いちおう、WebKit では &lt;code class="pickup"&gt;-webkit-text-stroke&lt;/code&gt;というそのものズバリなプロパティがありますが、そもそも WebKit しか対応していないこと、また微妙に縁がテキストにかぶるので（現状のままだと）使いづらい、というのがあります。
	&lt;/p&gt;
	&lt;p&gt;
		今回のネタは、見栄えはよくないですが、いちおう IE にも対応させてあります。&lt;br /&gt;
		ただ、やっぱりネタなので実践で使うには「？」ですが、こんなこともできるよーという感じでご覧下さいｗ
	&lt;/p&gt;
	&lt;p&gt;
		ちなみに、色々なサイズを見られるように JavaScript を使って境界線の太さを調整できるようにしてあります。また、&lt;del&gt;使う人がいるか分かりませんが&lt;/del&gt; 設定したものを CSS として書き出すようにしてあります。
	&lt;/p&gt;

	&lt;div class="section"&gt;
		&lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;
		&lt;div class="pickupBox demo"&gt;
			&lt;div class="pickupBoxInner"&gt;
				&lt;a href="/eblog_sample/1001/text-stroke/" target="_blank"&gt;http://css-eblog.com/eblog_sample/1001/text-stroke/&lt;/a&gt;
			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;
	&lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;        &lt;div class="section"&gt;
	&lt;h2 class="sectionTitle"&gt;解説&lt;/h2&gt;
	&lt;p&gt;
		今回のネタは、ズバリ&lt;code class="pickup"&gt;text-shadow&lt;/code&gt;です。&lt;br /&gt;
		実はこのプロパティ、値を複数指定してシャドウの部分をいくつも作れるのです。&lt;br /&gt;
		それを利用して、円状に微妙にずらしたシャドウをいくつも指定することで袋文字を実現している、というわけです。
	&lt;/p&gt;
	&lt;p&gt;
		なので見てもらうと分かりますが、かなりの量のコードを吐きますｗ&lt;br /&gt;
		実際これを組み込むのは骨だよなーと思ったのが「ネタ」という位置づけにした理由です。&lt;br /&gt;
		いちおう JavaScript で自動で生成しているのでそれをコピペすればそれほど大変ではありませんが、負荷的にどうなのかとか、そのへん一切考えていないのでやはり微妙かなと。&lt;br /&gt;
		ただ、"&lt;strong class="attention"&gt;text-shadow の値を複数指定する&lt;/strong&gt;" というのは意外と使い道があったりするのかなーというのもあって、今回ネタを考えてみました。
	&lt;/p&gt;
	&lt;p&gt;
		それといちおう、filter プロパティを使って IE にも対応させています。
		ただ、正直 IE での表示はきれいなものとは言えませんｗ　なので使うときは自己責任で・・・。
	&lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;
    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-vpPHzZ5ciW7e2zzfqhV7DmXwSg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-vpPHzZ5ciW7e2zzfqhV7DmXwSg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-vpPHzZ5ciW7e2zzfqhV7DmXwSg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-vpPHzZ5ciW7e2zzfqhV7DmXwSg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/8hkKBGBav-0" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css3/text-stroke.html</feedburner:origLink></entry><entry>    <title>RGBaを使ったプログレッシブ・エンハンスメントと注意点</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/juPWVwqMI2Q/rgba-pe.html" />    <id>tag:css-eblog.com,2010://1.177</id>    <published>2010-01-27T05:16:00Z</published>    <updated>2010-05-11T03:57:51Z</updated>    <summary>RGBaを使いながら、IE6,7向けにはRGBを適用する際の注意点（問題点）とそのデモの紹介です。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSS小技" scheme="http://www.sixapart.com/ns/types#category" />            <category term="IEのCSSの問題を回避する技" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;p&gt;
        &lt;ins datetime="2010-01-27T15:09:00+09:00" class="insert"&gt;いきなりはてブで vantguarde さんに突っ込まれました・・。今回の件はプログレッシブ・エンハンスメントではないですね。フォールバック、というらしいです。&lt;br /&gt;プログレッシブ･エンハンスメントは、「なくても内容が破綻しない」というときのことですね。今回は "代替" を用意してるので違う、と。てか、こうなるとすでにタイトルが破綻してる気が・・ｗ　とりあえず積極的に新しい技術を使っていこう、という気持ちは変わらないので、このままにしておきます、ってことでいちおう注意。&lt;br /&gt;ちなみに &lt;a href="http://www.skyward-design.net/blog/archives/000009.html" target="_blank"&gt;CSSのプログレッシブエンハンスメントの例&lt;/a&gt; にちょっと詳しく書いてありました。&lt;/ins&gt;
    &lt;/p&gt;
    &lt;p&gt;
        ちょっと面白い記事を見つけたので紹介です。（元記事： &lt;a href="http://css-tricks.com/ie-background-rgb-bug/" target="_blank"&gt;IE Background RGB Bug&lt;/a&gt;）
    &lt;/p&gt;
    &lt;p&gt;
        概要はというと、単一セレクタによる指定で &lt;a href="http://builder.japan.zdnet.com/sp/css-firefox-safari/story/0,3800083423,20367389,00.htm" target="_blank"&gt;RGBa&lt;/a&gt; に対応していない IE6, 7 に対処しつつ、対応しているブラウザには RGBa を適用させる、というときの注意点です。
    &lt;/p&gt;
    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;
        &lt;div class="pickupBox demo"&gt;
            &lt;div class="pickupBoxInner"&gt;
                &lt;a href="/eblog_sample/1001/rgba-pe/" target="_blank"&gt;http://css-eblog.com/eblog_sample/1001/rgba-pe/&lt;/a&gt;
            &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
        &lt;!-- /.pickupBox --&gt;&lt;/div&gt;
        &lt;p&gt;&lt;img src="/images/sample_rgba_pe.png" alt="RGBaを使ったサンプル" /&gt;&lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;RGBa を使う&lt;/h2&gt;
        &lt;p&gt;
            RGBa は、IE6, 7 は対応していません。なので、もしそのまま指定すると当然、IE6, 7 では背景色がない状態になってしまいます。&lt;br /&gt;
            背景色がなくても問題ないこともありますが、例えばベースのテキストカラーが白（黒背景）で、見出しだけ白っぽい背景にした、などという場合、当然その見出しに載せるテキストカラーは黒に近い色になると思います。
        &lt;/p&gt;
        &lt;p&gt;
            そんなとき、もし背景色が表示されないとなるとテキストが見づらいばかりか、最悪の場合見れない、などということにもなりかねませんよね。&lt;br /&gt;
            なので、RGBa に対応していない IE6, 7 であっても適切に文字が見えるようにしなければなりません。
        &lt;/p&gt;
        &lt;p&gt;
            CSS ハックを利用して、IE6, 7 だけに改めて背景の色を指定する、ということも考えられますがやや冗長になってしまいます。そこで、ひとつのセレクタ内で完結する記述方法が下記です。
        &lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;CSS ソース01&lt;/h2&gt;
        &lt;textarea class="css" cols="40" rows="5" id="ul-rollover-CSS" name="RGBa-CSS01"&gt;
            div {
                background: rgb(200, 54, 54); /* IE6, 7向け */
                background: rgba(200, 54, 54, 0.5);
            }
        &lt;/textarea&gt;
        &lt;p&gt;こうして並べて記述することで、IE6, 7 とモダンブラウザ双方とも背景色が表示されるようになります。&lt;/p&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;注意点&lt;/h2&gt;
        &lt;p&gt;
            しかし、元記事でも触れていますが、この方法、ショートハンド（&lt;span class="pickup"&gt;background&lt;/span&gt;のみのもの）で指定しないと IE6, 7 では反映しないようです。なので、下記のように書いてしまうと IE6, 7 では背景色が表示されません。
        &lt;/p.
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;CSS ソース02&lt;/h2&gt;
        &lt;textarea class="css" cols="40" rows="5" id="ul-rollover-CSS" name="RGBa-CSS02"&gt;
            div {
                background-color: rgb(200, 54, 54); /* IE6, 7向け */
                background-color: rgba(200, 54, 54, 0.5);
            }
        &lt;/textarea&gt;

        &lt;div class="section"&gt;
            &lt;h3 class="sectionTitle"&gt;プログレッシブ・エンハンスメントという考え方&lt;/h3&gt;
            &lt;p&gt;
                最近では、モダンブラウザで使える機能は積極的に使い、IE6（場合によっては IE7）などの対応していないブラウザに対しては同じような表示になるよ代替を用意する、という "&lt;strong class="attention"&gt;プログレッシブ・エンハンスメント&lt;/strong&gt;" という考え方が徐々に広まってきています。&lt;br /&gt;
                RGBa はとても使いやすい機能なので、積極的に使っていきたいですね。
            &lt;/p&gt;
            &lt;p&gt;
                ちなみに、IE6, 7 では RGBa に対応していない、と書きましたが、filter をうまく使うと RGBa のようなことを実現することは可能です。以前、&lt;a href="/csstechnique/rgba-for-ie.html"&gt;IE6, IE7でもRGBaを使う&lt;/a&gt; という記事を書いたので、よかったら参考にしてみてください。
            &lt;/p&gt;
        &lt;!-- /.section --&gt;&lt;/div&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;script type="text/javascript"&gt; 
    dp.SyntaxHighlighter.HighlightAll('RGBa-CSS01');
    dp.SyntaxHighlighter.HighlightAll('RGBa-CSS02');
&lt;/script&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GO2FwZSIBNOYwrAXbNrilLE7mZE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GO2FwZSIBNOYwrAXbNrilLE7mZE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GO2FwZSIBNOYwrAXbNrilLE7mZE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GO2FwZSIBNOYwrAXbNrilLE7mZE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/juPWVwqMI2Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/ie-css-problems/rgba-pe.html</feedburner:origLink></entry><entry>    <title>CSSのみでグローバルメニューのhover以外をぼかしてhover中ボタンを強調する</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/vKoXRLpCfAE/ul-rollover.html" />    <id>tag:css-eblog.com,2010://1.176</id>    <published>2010-01-19T14:51:00Z</published>    <updated>2010-06-16T13:35:39Z</updated>    <summary>グローバルメニューのポイントしたとき、マウスが乗っていないボタンをぼかしてマウスオーバーを強調するテクニックをCSSのみで実装する方法を解説しています。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSSだけでアクションを作る" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;p class="photo"&gt;&lt;a href="/eblog_sample/1001/ul-rollover/" target="_blank"&gt;&lt;img src="/images/sample_ul-rollover.png" alt="ul要素のぼかしエフェクト画像" /&gt;&lt;/a&gt;&lt;/p&gt;
    &lt;p&gt;
    今回のテクニックは、以前書いた &lt;a href="/css-only/dkir-rollover.html"&gt;ピュアCSSで実装する DKIR を応用した画像ボタンのロールオーバー効果&lt;/a&gt; の応用版です。&lt;br /&gt;
    なので HTML はいじらずに、CSS の変更だけで実現しています。
    &lt;/p&gt;
    &lt;p&gt;
    また、今回のテクニックは ul, li 要素に対して&lt;span class="pickup"&gt;:hover&lt;/span&gt;擬似クラスを使って実現しているためIE6 は未対応です。が、IE6 でもマウスオーバーの効果は正常に動作するので、IE6 以外のモダンブラウザ向けに仕込んでおくといい感じです。いわゆる "&lt;strong class="attention"&gt;プログレッシブ・エンハンスメント&lt;/strong&gt;" ってやつですねｗ
    &lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;
        &lt;div class="pickupBox demo"&gt;
            &lt;div class="pickupBoxInner"&gt;
                &lt;a href="/eblog_sample/1001/ul-rollover/" target="_blank"&gt;http://css-eblog.com/eblog_sample/1001/ul-rollover/&lt;/a&gt;
            &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
        &lt;!-- /.pickupBox --&gt;&lt;/div&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;ダウンロード&lt;/h2&gt;
        &lt;div class="pickupBox download"&gt;
            &lt;div class="pickupBoxInner"&gt;
                &lt;a href="/eblog_sample/1001/ul-rollover/ul-rollover.zip"&gt;http://css-eblog.com/eblog_sample/1001/ul-rollover/ul-rollover.zip&lt;/a&gt;
            &lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;
        &lt;!-- /.pickupBox --&gt;&lt;/div&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;
        &lt;div class="section"&gt;
    &lt;p&gt;今回のテクニックの肝はやはり前回同様、z-index のマイナス値による画像置換になります。&lt;br /&gt;ただ、今回は "&lt;strong class="attention"&gt;ul 要素に対して :hover 擬似クラスを使い、マウスオーバーしていないボタンを画像置換&lt;/strong&gt;"しています。&lt;/p&gt;

    &lt;div class="section"&gt;
        &lt;h2 class="sectionTitle"&gt;HTML ソース&lt;/h2&gt;
        &lt;textarea class="xml" cols="40" rows="5" id="ul-rollover-HTML" name="ul-rollover-HTML"&gt;
            &lt;ul id="menu"&gt;
                &lt;li class="home"&gt;&lt;a href="#"&gt;&lt;img src="btn_home.png" alt="HOME" /&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li class="product" id="current"&gt;&lt;a href="#"&gt;&lt;img src="btn_product.png" alt="Product" /&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li class="about"&gt;&lt;a href="#"&gt;&lt;img src="btn_about.png" alt="About" /&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li class="blog"&gt;&lt;a href="#"&gt;&lt;img src="btn_blog.png" alt="Blog" /&gt;&lt;/a&gt;&lt;/li&gt;
                &lt;li class="contact"&gt;&lt;a href="#"&gt;&lt;img src="btn_contact.png" alt="Contact" /&gt;&lt;/a&gt;&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/textarea&gt;
    &lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;CSS ソース&lt;/h2&gt;
    &lt;textarea class="css" cols="40" rows="5" id="ul-rollover-CSS" name="ul-rollover-CSS"&gt;
        #menu {
            /* ぼかし画像を指定 */
            background: url(bg_blur.png) left top no-repeat;
            zoom: 1;
        }
        #menu:after {
            content: ".";
            clear: both;
            display: block;
            line-height: 0;
            height: 0;
            visibility: hidden;
        }
        #menu:hover li a {
            background-image: none;
        }
        #menu:hover li img {
            position: relative;
            z-index: -1;
        }
        #menu:hover li:hover a {
            background-image: url(menu.png);
        }
        #menu li {
            float: left;
        }
        #menu li a {
            background: url(menu.png) left top no-repeat;
            display: block; /* Firefox2用の指定 */
            display: inline-block;
            vertical-align: top;
        }
        #menu li.product a { background-position: -135px 0; }
        #menu li.about a { background-position: -255px 0; }
        #menu li.blog a { background-position: -375px 0; }
        #menu li.contact a { background-position: -495px 0; }
        #menu li a:hover {
            position: static; /* IE6用の指定 */
        }
        #menu li a:hover img ,
        #menu li#current a img {
            position: relative;
            z-index: -1;
        }
    &lt;/textarea&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;div class="section"&gt;
    &lt;h2 class="sectionTitle"&gt;解説&lt;/h2&gt;
    &lt;p&gt;このテクニックの要は&lt;span class="pickup"&gt;#menu:hover li a&lt;/span&gt;と&lt;span class="pickup"&gt;#menu:hover li img&lt;/span&gt;の部分で、hover 時に a 要素の背景を非表示にし、かつ img 要素を ul 要素の背面に移動させることです。&lt;/p&gt;
    &lt;p&gt;こうすることで、#menu 内のボタンすべてが ul 要素の背景に隠れることになります。そしてこの ul 要素にぼかしをかけた画像を配置しておくことで ul 要素にマウスオーバーした段階でメニューがぼける、というわけです。&lt;/p&gt;
    &lt;p&gt;ただ、これだけだとどれをポイントしているか分からないので、&lt;span class="pickup"&gt;#menu:hover li:hover a&lt;/span&gt;とすることで、ul:hover の中にある li:hover、つまり現在ポイントしている部分の a 要素の背景だけを復活させ、マウスオーバー処理を実現する、というわけです。そしてこれら ul:hover, li:hover は IE6 では対応していないためぼかしの部分は動作せず、マウスオーバー処理だけが実行されるため IE6 でも問題なくマウスオーバーの効果が得られる、というわけです。&lt;/p&gt;
    &lt;p&gt;ただ本当は、:not(:hover) が使えればもう少しスマートにできたんですが、あいにくとこれは IE ではいまだに対応してないのでややめんどくさい方法で実装しています。そのおかげで、IE7で動作するので、そこそこ使えるかなーなんて思ってます。&lt;/p&gt;
    &lt;p&gt;それから前回のものと同じ仕組で実現しているので、画像オフの場合でもアクセシビリティを保ったまま実装できる点もポイントです。最近は、IE6 でも問題がなく、でもモダンブラウザで見てる人だけにちょっとしたお楽しみ♪ 的な感じでこういったことを実装するのが結構好きだったりしますｗ&lt;/p&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;

&lt;script type="text/javascript"&gt; 
    dp.SyntaxHighlighter.HighlightAll('ul-rollover-HTML');
    dp.SyntaxHighlighter.HighlightAll('ul-rollover-CSS');
&lt;/script&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UGpp2w8GQfcykD442h3Hju_FZT8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UGpp2w8GQfcykD442h3Hju_FZT8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UGpp2w8GQfcykD442h3Hju_FZT8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UGpp2w8GQfcykD442h3Hju_FZT8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/vKoXRLpCfAE" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css-only/ul-rollover.html</feedburner:origLink></entry><entry>    <title>web creators vol.98で1記事執筆しました</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/hnW3hBvcOQM/web-creators-vol98.html" />    <id>tag:css-eblog.com,2010://1.175</id>    <published>2010-01-13T04:52:00Z</published>    <updated>2010-05-18T15:57:32Z</updated>    <summary>web creators vol.98の特集「WEB制作テクニックの新標準2010」で、レイアウトについて執筆しました。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="執筆" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;
    &lt;p class="photo"&gt;&lt;img src="/images/web_creators_vol98.jpg" alt="web creators vol.98 写真" /&gt;&lt;/p&gt;
    &lt;p&gt;
        明けましておめでとうございます。&lt;br /&gt;
        新春一発目のネタが、去年の 12 月に発売された雑誌の内容ですみませんｗ
    &lt;/p&gt;
    &lt;p&gt;
        今年は転職を予定していたりと、色々新しいことがありそうな感じです。&lt;br /&gt;
    &lt;/p&gt;
    &lt;p&gt;
        さて、12 月に発売された web creators では、「WEB制作テクニックの新標準2010」という特集で 1 記事担当しました。&lt;br /&gt;
        今回は読み物系の記事だったので結構大変でした；
    &lt;/p&gt;
    &lt;p&gt;
        が、とてもいい経験になりました。特集の中で、レイアウトについて書いているので読んでいただければ幸いです。
    &lt;/p&gt;
    &lt;p&gt;
        こうして執筆をしていますが、逆に執筆することによってとてもたくさんのことを学ばせていただいています。逆に書けば書くほど、もっとがんばらねば、という気持ちにさせられます。&lt;br /&gt;
        今年は、勉強会をしてみたりと新しいことをやっていきたいな、なんて思っていたりもします。
    &lt;/p&gt;
    &lt;p&gt;
        このブログでも、なにか新しい動きが出せればなーと思っているので、これからも CSS-EBLOG をよろしくお願いします。
    &lt;/p&gt;
    &lt;div class="relEntry"&gt;
        &lt;p class="title"&gt;合わせて読むと役に立つかもなエントリー&lt;/p&gt;
        &lt;ul&gt;
            &lt;li&gt;&lt;a href="/writing/web-creators-vol97.html" title="web creators vol.97で1記事執筆しました"&gt;&amp;raquo;web creators vol.97で1記事執筆しました&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="/writing/web-creators-vol96.html" title="web creators vol.96で1記事執筆しました"&gt;&amp;raquo;web creators vol.96で1記事執筆しました&lt;/a&gt;&lt;/li&gt;
            &lt;li&gt;&lt;a href="/writing/web-creators-vol94.html" title="web creators vol.94で7記事執筆しました"&gt;&amp;raquo;web creators vol.94で7記事執筆しました&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;!-- /.relEntry --&gt;&lt;/div&gt;
&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/448nJLXos5PjQ_-e73amgeFcwuA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/448nJLXos5PjQ_-e73amgeFcwuA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/448nJLXos5PjQ_-e73amgeFcwuA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/448nJLXos5PjQ_-e73amgeFcwuA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/hnW3hBvcOQM" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/writing/web-creators-vol98.html</feedburner:origLink></entry><entry>    <title>ピュアCSSで実装するDKIRを応用した画像ボタンのロールオーバー効果</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/vOAdfjFMhPs/dkir-rollover.html" />    <id>tag:css-eblog.com,2009://1.174</id>    <published>2009-12-22T13:00:00Z</published>    <updated>2009-12-30T01:04:01Z</updated>    <summary>CSSのみで実装するロールオーバー効果テクニックの紹介です。画像オフなどの環境でもしっかりと情報にアクセスできるテクニックです。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSSだけでアクションを作る" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;	&lt;p class="photo"&gt;		&lt;iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&amp;amp;bc1=000000&amp;amp;IS2=1&amp;amp;bg1=2F2F2F&amp;amp;fc1=DDDDDD&amp;amp;lc1=18D1FF&amp;amp;t=edom18-22&amp;amp;o=9&amp;amp;p=8&amp;amp;l=as1&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;asins=4883376710" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;	&lt;/p&gt;	&lt;p&gt;		最近、「XHTML&amp;amp;CSS超高速コーディング術」という &lt;a href="http://www.makinokobo.com/" target="_blank"&gt;牧野工房&lt;/a&gt; さんが出している本を読みました。その中で、画像のロールオーバー効果を CSS で実現しているくだりがありました。n	&lt;/p&gt;	&lt;p&gt;		そこでは&lt;span class="pickup"&gt;visibility: hidden&lt;/span&gt;を利用したテクニックが載っていました。&lt;br /&gt;		概要としては、メニューなどの部分を普通に img 要素でマークアップしておき、マウスオーバー時や閲覧中のカテゴリの画像を背景にして該当の場合に img 要素を文字通り非表示にする、という方法で実装していました。n	&lt;/p&gt;	&lt;p&gt;		が、その場合だともし画像オフの場合や、オフにしていなくても回線の問題などで画像が表示されていないような場合に、マウスオーバーしたとき（あるいはカテゴリ閲覧中）に情報がまったく見れない、ということが（少ないですが）可能性としてありえるのでは、と思いました。n	&lt;/p&gt;	&lt;p&gt;		そこで、以前書いた &lt;a href="/csstechnique/dkir.html"&gt;これで決まり？な画像置換 - DKIR&lt;/a&gt; を応用した、上記のような場合でも情報が見れなくならないようなロールオーバー効果を実現する方法を書いてみたいと思います。n	&lt;/p&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;		&lt;div class="pickupBox demo"&gt;			&lt;div class="pickupBoxInner"&gt;				&lt;a href="/eblog_sample/0912/dkir-rollover/" target="_blank"&gt;http://css-eblog.com/eblog_sample/0912/dkir-rollover/&lt;/a&gt;			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;ダウンロード&lt;/h2&gt;		&lt;div class="pickupBox download"&gt;			&lt;div class="pickupBoxInner"&gt;				&lt;a href="/eblog_sample/0912/dkir-rollover/dkir-rollover.zip"&gt;http://css-eblog.com/eblog_sample/0912/dkir-rollover/dkir-rollover.zip&lt;/a&gt;			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;&lt;!-- /.section --&gt;&lt;/div&gt;        &lt;div class="section"&gt;	&lt;p&gt;		今回のテクニックは、&lt;a href="/csstechnique/dkir.html"&gt;前回&lt;/a&gt; のものと同様、&lt;span class="pickup"&gt;z-index&lt;/span&gt;のマイナス値を利用したものになります。&lt;br /&gt;		なぜそうなるのか、という理由については前回のエントリーを参考にしてください。そちらには詳しく図説もあります。n	&lt;/p&gt;	&lt;p&gt;		さて、まずはマークアップから見ていきます。といっても、今回はまったく普通のマークアップになります。（不要な span 要素などは一切ありません）n	&lt;/p&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;HTML ソース&lt;/h2&gt;&lt;textarea class="xml" cols="40" rows="5" id="DKIR-rollover-HTML" name="DKIR-rollover-HTML"&gt;&lt;ul id="menu"&gt;	&lt;li class="home"&gt;&lt;a href="#"&gt;&lt;img src="btn_home.png" alt="HOME" /&gt;&lt;/a&gt;&lt;/li&gt;	&lt;li class="product" id="current"&gt;&lt;a href="#"&gt;&lt;img src="btn_product.png" alt="Product" /&gt;&lt;/a&gt;&lt;/li&gt;	&lt;li class="about"&gt;&lt;a href="#"&gt;&lt;img src="btn_about.png" alt="About" /&gt;&lt;/a&gt;&lt;/li&gt;	&lt;li class="blog"&gt;&lt;a href="#"&gt;&lt;img src="btn_blog.png" alt="Blog" /&gt;&lt;/a&gt;&lt;/li&gt;	&lt;li class="contact"&gt;&lt;a href="#"&gt;&lt;img src="btn_contact.png" alt="Contact" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/textarea&gt;		&lt;p&gt;			見ての通り、基本的な画像を使ったメニューのマークアップですね。&lt;br /&gt;			なので、逆に考えればこのようにマークアップしている場合は、ほぼ CSS のみで対応可能、ということになります。n		&lt;/p&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;CSS ソース&lt;/h2&gt;&lt;textarea class="css" cols="40" rows="5" id="DKIR-rollover-CSS" name="DKIR-rollover-CSS"&gt;#menu li {	float: left;	position: relative;	z-index: 3;}#menu li a {	background: url(menu.png) left top no-repeat;	display: -moz-inline-box; /* Firefox2 用のスタイル */	display: inline-block;}#menu li.product a { background-position: -135px 0; }#menu li.about a { background-position: -255px 0; }#menu li.blog a { background-position: -375px 0; }#menu li.contact a { background-position: -495px 0; }#menu li a:hover {	position: static;}#menu li a:hover img ,#menu li#current a img {	position: relative;	z-index: -1;}&lt;/textarea&gt;		&lt;p&gt;			前回と同様、隠したい部分の要素（img 要素）に z-index: -1 を指定します。&lt;br /&gt;			こうすることで a 要素の下に img 要素が潜り込みます。そしてこれが今回のテクニックの主題ですが、もし仮に画像がオフだったり、読み込みがされていなくても、メニューに指定した画像は alt 属性でテキストが表示され、下に潜り込んだとしてもそもそも画像が読み込まれていなければテキストは画像で隠れないので、結果テキストは表示されたままになる、というわけです。n		&lt;/p&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;使う上でのポイント&lt;/h2&gt;		&lt;p&gt;			このテクニックを使う上でのちょっとしたポイントです。n		&lt;/p&gt;		&lt;div class="section"&gt;			&lt;h3 class="sectionTitle"&gt;IE 対策の注意点&lt;/h3&gt;			&lt;p&gt;				注意点としては&lt;span class="pickup"&gt;#menu li a:hover&lt;/span&gt;に指定している&lt;span class="pickup"&gt;position: static&lt;/span&gt; です。n			&lt;/p&gt;			&lt;p&gt;				これは IE6 対策です。なので、モダンブラウザでは必要のない指定になります。n				IE6 の場合、a 要素自身もなにか変更がないと、hover 時に子要素に変化をさせたい場合でも変化がおきません。hasLayout あたりの問題だと思っているのですが、それを回避するためです。n			&lt;/p&gt;			&lt;p&gt;				理由については &lt;a href="/csstechnique/css-remote-rollover.html"&gt;画像のマウスオーバーで、離れた位置に拡大画像を表示する&lt;/a&gt; の「新発見したこと」で詳しく書いているので参考にしてみてください。n			&lt;/p&gt;		&lt;!-- /.section --&gt;&lt;/div&gt;		&lt;div class="section"&gt;			&lt;h3 class="sectionTitle"&gt;a 要素に display: inline-block を指定する&lt;/h3&gt;			&lt;p&gt;				もう 1 点は、a 要素に&lt;span class="pickup"&gt;display: inline-block&lt;/span&gt;を指定していることです。&lt;br /&gt;				これは、a 要素をブロック要素にしないとしっかりとエリアが確保されないためです。（指定しないと、img 要素が a 要素の後ろに潜り込んだときにおかしな表示になってしまいます）n			&lt;/p&gt;			&lt;p&gt;				ただ、&lt;span class="pickup"&gt;display: block&lt;/span&gt;を指定してしまうと、幅を明示しないといけなくなってしまいます。&lt;br /&gt;				そこで&lt;span class="pickup"&gt;display: inline-block&lt;/span&gt;を使うわけです。（これならインライン要素としての性質もあるので、子要素（img 要素）の幅までしか広がりません）n			&lt;/p&gt;			&lt;p&gt;				さらにこの&lt;span class="pickup"&gt;display: inline-block&lt;/span&gt;、IE にもちゃんと対応しています。（ただし、対応しているのはインライン要素のみ、という限定的な対応の上、仕様通りの実装ではなく、display: inline + hasLayout が true、というちょっと特殊な状態になります）n			&lt;/p&gt;			&lt;p&gt;				ただ、IE には対応していますが、逆に Firefox2 では対応していません。その代わりに指定しているのが&lt;span class="pickup"&gt;display: -moz-inline-box&lt;/span&gt;です。&lt;br /&gt;				これは、Firefox が独自に実装している値で、&lt;span class="pickup"&gt;display: inline-block&lt;/span&gt;とほぼ同様の動きをします。厳密に言うと違いがあるのですが、今回のサンプルでは問題がないので説明は割愛します。n			&lt;/p&gt;			&lt;p&gt;				上記の部分を指定しておくことで、画像サイズと同じに a 要素のサイズが拡張されるので CSS 側の指定が少なくて済む、というわけです。（ちょっと分かりづらいですが、HOME 部分だけちょっと横幅が大きいものを指定しています。それでも、CSS 側の指定に一切手を加えることなくロールオーバーの効果が実現できているのが分かると思います）n			&lt;/p&gt;		&lt;!-- /.section --&gt;&lt;/div&gt;		&lt;div class="section"&gt;			&lt;h3 class="sectionTitle"&gt;このテクニックを使う上でのメリット&lt;/h3&gt;			&lt;p&gt;				最後に、今回は CSS Sprite を利用していますが、ロールオーバー用の画像を個別に書き出してそれぞれに指定しても問題ありません。しかも、普通に背景に指定しているのでロールオーバーでありがちな画像がチラつく、という問題がないのもメリットのひとつです。n			&lt;/p&gt;		&lt;!-- /.section --&gt;&lt;/div&gt;		&lt;div class="section"&gt;			&lt;h3 class="sectionTitle"&gt;「XHTML&amp;amp;CSS超高速コーディング術」を読んだ感想&lt;/h3&gt;			&lt;p&gt;				最後にちょっとだけこの本を読んだ感想を書いてみたいと思います。&lt;br /&gt;				内容は、「コーディングの徹底的な効率化の実現方法」です。n			&lt;/p&gt;			&lt;p&gt;				読んでいて感じたのは、大体の場合においてここまで徹底はできないのではないかな、ということと、ルールを厳格化する上で、ブラウザの表示時のパフォーマンスをややないがしろにしているのでは、という印象を受けました。n			&lt;/p&gt;			&lt;p&gt;				ただ、非常に効率的なことが書いてあるので、ポイントポイントで拾っていくことで管理がしやすくなるんじゃないかな、というのも同時に感じました。n			&lt;/p&gt;			&lt;p&gt;				こういった本を読むのは久々だったんですが、「なるほどーこんなやり方があったんだ！」っていう気付きもあったりしました。やっぱり本を読むのは大事ですね。また、こういった管理方法などを読むことで自社にはない方法に気付けたり、それを取り入れたりできると思うので一度読んで見るといいかもしれません。n			&lt;/p&gt;		&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="relEntry"&gt;		&lt;p class="title"&gt;合わせて読むと役に立つかもなエントリー&lt;/p&gt;		&lt;ul&gt;			&lt;li&gt;&lt;a href="/csstechnique/dkir.html" title="これで決まり？な画像置換 - DKIR"&gt;&amp;raquo;これで決まり？な画像置換 - DKIR&lt;/a&gt;&lt;/li&gt;			&lt;li&gt;&lt;a href="/csstechnique/css-remote-rollover.html" title="画像のマウスオーバーで、離れた位置に拡大画像を表示する"&gt;&amp;raquo;画像のマウスオーバーで、離れた位置に拡大画像を表示する&lt;/a&gt;&lt;/li&gt;			&lt;li&gt;&lt;a href="/beginner/css-only-zoom.html" title="CSSだけで作るマウスオーバーでの画像の拡大"&gt;&amp;raquo;CSSだけで作るマウスオーバーでの画像の拡大&lt;/a&gt;&lt;/li&gt;			&lt;li&gt;&lt;a href="/javascript-link/rollover-javascript.html" title="手軽に画像のロールオーバー効果を実装するJavaScript"&gt;&amp;raquo;手軽に画像のロールオーバー効果を実装するJavaScript&lt;/a&gt;&lt;/li&gt;			&lt;li&gt;&lt;a href="/csstechnique/css-8.html" title="CSSのみでプルダウンメニューを作る"&gt;&amp;raquo;CSSのみでプルダウンメニューを作る&lt;/a&gt;&lt;/li&gt;			&lt;li&gt;&lt;a href="/csstechnique/css-7.html" title="CSSのみでタスクバー風メニュー"&gt;&amp;raquo;CSSのみでタスクバー風メニュー&lt;/a&gt;&lt;/li&gt;		&lt;/ul&gt;	&lt;!-- /.relEntry --&gt;&lt;/div&gt;	&lt;script type="text/javascript"&gt;		dp.SyntaxHighlighter.HighlightAll('DKIR-rollover-HTML');		dp.SyntaxHighlighter.HighlightAll('DKIR-rollover-CSS');	&lt;/script&gt;&lt;!-- /.section --&gt;&lt;/div&gt;    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cVhhpclYsSyu_uSAcfAVEdHO2Nw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cVhhpclYsSyu_uSAcfAVEdHO2Nw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cVhhpclYsSyu_uSAcfAVEdHO2Nw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cVhhpclYsSyu_uSAcfAVEdHO2Nw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/vOAdfjFMhPs" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css-only/dkir-rollover.html</feedburner:origLink></entry><entry>    <title>Photoshopライクな操作で手軽に作れるCSS3ジェネレーター</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/UleYSIbgTi8/css3-generator.html" />    <id>tag:css-eblog.com,2009://1.173</id>    <published>2009-12-17T05:49:00Z</published>    <updated>2010-01-25T02:07:06Z</updated>    <summary>Photoshopのような感覚でCSS3のグラデーションを作成できるツールです。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSS3関連" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <category term="ツール" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;	&lt;div class="pickupBox image"&gt;		&lt;div class="pickupBoxInner"&gt;			&lt;a href="/eblog_sample/0912/css3-generator/" target="_blank"&gt;&lt;img src="/images/samp_css3generator.png" alt="PhotoshopライクなCSS3ジェネレーターイメージ" /&gt;&lt;/a&gt;		&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;	&lt;!-- /.pickupBox --&gt;&lt;/div&gt;	&lt;div class="pickupBox history"&gt;		&lt;div class="pickupBoxInner"&gt;			&lt;dl class="historyList"&gt;				&lt;dt&gt;[09/12/22]&lt;/dt&gt;				&lt;dd&gt;				&lt;a href="http://dev.opera.com/articles/view/css3-border-background-boxshadow/" target="_blank"&gt;Opera でもいよいよ border-radius に対応する&lt;/a&gt; ようです。また、W3C の「&lt;a href="http://www.w3.org/TR/css3-background/" target="_blank"&gt;CSS Backgrounds and Borders Module Level 3&lt;/a&gt;」が勧告案（Candidate Recommendation）になったためか、Opera ではプレフィクスがないようです。&lt;br /&gt;				なので、プレフィクスのない border-radius プロパティも出力するように修正しました。n				&lt;/dd&gt;				&lt;dt&gt;[09/12/18]&lt;/dt&gt;				&lt;dd class="lastChild"&gt;				若干 機能追加を行いました。&lt;br /&gt;				作成したものを、IE の独自拡張である filter を用いて、同じような表示になるソースも出力できるようになりました。&lt;br /&gt;				ただ、そもそもの実装が違うので完全には再現されません。（グラデーションが最初と最後の色しか指定できない、など）n				&lt;/dd&gt;			&lt;/dl&gt;		&lt;!-- /. pickupBoxInner --&gt;&lt;/div&gt;	&lt;!-- /. pickupBox --&gt;&lt;/div&gt;	&lt;p&gt;		今まで、CSS3 のグラデーションを利用したサンプルの作成を作成するとき、Photoshop っぽい感じでグラデーションが作れたらなーと前から思っていたので、最近 JavaScript から遠ざかっていたのもあって思い切って自分で作ってみました。&lt;/p&gt;	&lt;p&gt;		メインはグラデーションの作成ですが、Photoshop ライクなものを目指したので、Photoshop では当たり前のように出来るドロップシャドウなんかも設定できたら便利かな、と思って付け加えてあります。n	&lt;/p&gt;	&lt;p&gt;		ちなみに、CSS3 のグラデーションがメインなので、"&lt;strong class="attention"&gt;CSS3 のグラデーションに対応している Firefox3.6β以上か、WebKit 系のブラウザでしか動作しません&lt;/strong&gt;"。n	&lt;/p&gt;	&lt;p&gt;		色々チェックはしていますが、もし不具合なんかあったら連絡もらえるとうれしいです。&lt;br /&gt;		連絡いただける際は、この記事へのコメントか、&lt;a href="/inquiry.html"&gt;問い合わせ&lt;/a&gt;からお願いします。n	&lt;/p&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;Photoshop ライクな CSS3 ジェネレーター&lt;/h2&gt;		&lt;div class="pickupBox demo"&gt;			&lt;div class="pickupBoxInner"&gt;				&lt;a href="/eblog_sample/0912/css3-generator/" target="_blank"&gt;http://css-eblog.com/eblog_sample/0912/css3-generator/&lt;/a&gt;			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;		&lt;div class="section"&gt;			&lt;h3 class="sectionTitle"&gt;作ってみた感想など&lt;/h3&gt;			&lt;p&gt;				今回は、CSS3 のプロパティを出力するのが目的だったので、そもそも CSS3 に対応していないブラウザはすっぱり切り捨てましたｗ　なので、全体的に CSS3 をめっさ使ってます。n			&lt;/p&gt;			&lt;p&gt;				加えて、IE6 などのブラウザを切り捨てたので、気兼ねなく色々なセレクタを使ったりしてとてもコーディングが楽でした。&lt;br /&gt;				CSS3 が当たり前になったらこんなに楽になるんだなー・・としみじみ思いました。早く、CSS3 をメインで使ってコーディングがしたい・・・。n			&lt;/p&gt;		&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NW6T7h8ZHGMPcrK1OD44wgeSPv4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NW6T7h8ZHGMPcrK1OD44wgeSPv4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NW6T7h8ZHGMPcrK1OD44wgeSPv4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NW6T7h8ZHGMPcrK1OD44wgeSPv4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/UleYSIbgTi8" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css3/css3-generator.html</feedburner:origLink></entry><entry>    <title>ボタンに光のエフェクトを加えるCSS3 - CSS3で遊んでみる2</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/1jJni9cUW-Q/css3-flash-button.html" />    <id>tag:css-eblog.com,2009://1.172</id>    <published>2009-12-15T05:27:00Z</published>    <updated>2009-12-30T01:21:27Z</updated>    <summary>CSS3を使って光が左から右に通過するようなエフェクトを作ってみました。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="CSS3関連" scheme="http://www.sixapart.com/ns/types#category" />            <category term="CSSテクニック" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;	&lt;p&gt;	考えてみたら -webkit-animation についての記事を書いていなかったので、ちょうどいいかなーと思いつつエントリー。n	&lt;/p&gt;	&lt;p&gt;	今回の記事は、&lt;a href="/csstechnique/dkir.html"&gt;これで決まり？な画像置換 - DKIR&lt;/a&gt; で紹介した&lt;span class="pickup"&gt;z-index&lt;/span&gt;のマイナス値と、&lt;span class="pickup"&gt;-webkit-animation&lt;/span&gt;を使ったボタンに光るエフェクトを加える方法の紹介です。n	&lt;/p&gt;	&lt;p&gt;	&lt;a href="/css3/css3-radial-button.html"&gt;前回&lt;/a&gt; に引き続き、CSS3 で遊んでみるの第 2 段ですｗ&lt;br /&gt;	ちなみに今回のサンプルは、WebKit 系が先行実装している&lt;span class="pickup"&gt;-webkit-animation&lt;/span&gt;を使ったものなので、Google Chrome や Safari で見ないとまったくなにも起こりませんのであしからず。（ただ、逆を返せばその他のブラウザ（もちろん IE6 も）では変化がないので、WebKit 系ブラウザで見た人向けに仕込んでおく、なんていう使い方もできちゃったりします）n	&lt;/p&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;デモ&lt;/h2&gt;		&lt;div class="pickupBox demo"&gt;			&lt;div class="pickupBoxInner"&gt;		&lt;a href="/eblog_sample/0912/flash-button/" target="_blank"&gt;http://css-eblog.com/eblog_sample/0912/flash-button/&lt;/a&gt;			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;ダウンロード&lt;/h2&gt;		&lt;div class="pickupBox download"&gt;			&lt;div class="pickupBoxInner"&gt;		&lt;a href="/eblog_sample/0912/flash-button/flash_button.zip"&gt;http://css-eblog.com/eblog_sample/0912/flash-button/flash_button.zip&lt;/a&gt;			&lt;!-- /.pickupBoxInner --&gt;&lt;/div&gt;		&lt;!-- /.pickupBox --&gt;&lt;/div&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;&lt;!-- /.section --&gt;&lt;/div&gt;        &lt;div class="section"&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;HTML ソース&lt;/h2&gt;		&lt;textarea class="xml" cols="40" rows="5" id="FlashBtnHTML" name="FlashBtnHTML"&gt;		&lt;p class="flashBtn"&gt;		&lt;span&gt;&lt;img src="btn_sample.png" alt="よくあるサンプル" /&gt;&lt;/span&gt;		&lt;/p&gt;		&lt;/textarea&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;CSS ソース&lt;/h2&gt;		&lt;textarea class="css" cols="40" rows="5" id="FlashBtnCSS" name="FlashBtnCSS"&gt;		@-webkit-keyframes flash {			0% { 	background-position: -73px 0; }			20% { background-position: 195px 0; }			100% { background-position: 195px 0; 	}		}		.flashbtn {			position: relative;			z-index: 3;		}		.flashbtn span {			display: block;			background: url(bnr_lighting.png) -73px 0 no-repeat;			-webkit-animation-duration: 10s;			-webkit-animation-timing-fanction: ease-in-out;			-webkit-animation-iteration-count: infinite;			-webkit-animation-name: flash;		}		.flashbtn img {			position: relative;			z-index: -1;		}		&lt;/textarea&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;解説&lt;/h2&gt;		&lt;p&gt;		ざっくりとやっていることを解説すると、img 要素には普通にボタンの画像を指定します。&lt;br /&gt;		次に、その親要素である span 要素に今回の主題である光を表現する画像（透明→白→透明のグラデーションをした PNG 画像）を指定します。n		&lt;/p&gt;		&lt;p&gt;		これです↓&lt;br /&gt;		&lt;img src="/eblog_sample/0912/flash-button/bnr_lighting.png" alt="光エフェクトの画像" /&gt;		&lt;/p&gt;		&lt;p&gt;		ただこれだとただの背景になってしまうので、&lt;a href="/csstechnique/dkir.html"&gt;これで決まり？な画像置換 - DKIR&lt;/a&gt; で紹介した z-index にマイナス値を与えて、親要素の背景を表示させるテクニックを使います。n		&lt;/p&gt;		&lt;p&gt;		そうするとことで、背景に指定した PNG 画像がボタンの前面に来ます。&lt;br /&gt;		さらに、WebKit 系が先行実装している&lt;span class="pickup"&gt;-webkit-animation&lt;/span&gt;を使って背景画像を左から右に移動するように CSS を設定します。n		&lt;/p&gt;		&lt;textarea class="css" cols="40" rows="5" id="FlashBtnCSS2" name="FlashBtnCSS2"&gt;		@-webkit-keyframes flash {			0% { 	background-position: -73px 0; }			20% { background-position: 195px 0; }			100% { background-position: 195px 0; 	}		}		&lt;/textarea&gt;		&lt;p&gt;		この部分が左から右に移動するように設定している部分です。&lt;span class="pickup"&gt;@-webkit-keyframes ***&lt;/span&gt;でアニメーションの名前を定義します。&lt;br /&gt;		各 % はあとで設定するアニメーションする時間に対する割合になります。なのでもしアニメーション時間を 10 秒と設定したとすると、02 秒かけて background-position が 195px 0 へ移動します。そのあとは指定した % 通りに色々と変化していくわけです。n		&lt;/p&gt;		&lt;p&gt;		ただ今回のサンプルの場合、エフェクトが発生する間隔を調整したかったので、20% から 100% は変化がありません。（つまり光のエフェクト用の画像をとめている、ということです）n		&lt;/p&gt;		&lt;p&gt;		そして、設定した時間が経過すると、さらに別に指定した回数分繰り返し処理されます。&lt;br /&gt;		ただ今回のサンプルでは infinite を指定しているので無限ループとなります。n		&lt;/p&gt;		&lt;textarea class="css" cols="40" rows="5" id="FlashBtnCSS3" name="FlashBtnCSS3"&gt;		.flashbtn span {			display: block;			background: url(bnr_lighting.png) -73px 0 no-repeat;			-webkit-animation-duration: 10s;			-webkit-animation-timing-fanction: ease-in-out;			-webkit-animation-iteration-count: infinite;			-webkit-animation-name: flash;		}		&lt;/textarea&gt;		&lt;p&gt;		この部分が、アニメーションの時間や繰り返し回数などを指定している部分です。&lt;br /&gt;		最後の行が、上で定義したアニメーションの種類を設定している部分です。（&lt;span class="pickup"&gt;-webkit-animation-name: flash&lt;/span&gt;の部分）&lt;br /&gt;		もちろん、複数のアニメーションを定義している場合は、名前をカンマで区切って列挙することで複数指定することも可能です。n		&lt;/p&gt;		&lt;p&gt;		こうすると、背景の光のエフェクト部分が一定時間置きに左から右へ流れ、かつ z-index のマイナス値のテクニックでその背景画像がボタン画像の上を通過するようになる、というものです。n		&lt;/p&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;div class="section"&gt;		&lt;h2 class="sectionTitle"&gt;-webkit-animation とは&lt;/h2&gt;		&lt;p&gt;		さて、&lt;span class="pickup"&gt;-webkit-animation&lt;/span&gt;とはなんでしょう。&lt;br /&gt;		知っている人もいると思いますが、現在 CSS3 で策定中のアニメーションを定義する CSS です。n		&lt;/p&gt;		&lt;p&gt;		個人的に、アニメーションってスタイルなのか？　という疑問はあったりしますが（ｗ）、とにかく現在策定中のもので、WebKit 系が先行実装しています。（なので -webkit- のプレフィクスがついています）n		&lt;/p&gt;		&lt;p&gt;		似たようなものに、&lt;a href="/csstechnique/css3.html"&gt;CSS3はアニメーションも指定できる！&lt;/a&gt; で紹介した&lt;span class="pickup"&gt;-webkit-transition&lt;/span&gt;がありますが、こちらは :hover 擬似クラスなど、特定の条件下でのアニメーションを想定したものです。&lt;br /&gt;		いちおう今回紹介したアニメーションも :hover 擬似クラスなどのユーザーの操作をキーにアニメーションを開始することもできます。n		&lt;/p&gt;		&lt;p&gt;		その場合は、マウスオーバー中に限ってボタンが発光を繰り返す、みたいな使い方ができます。Flash などでよくありそうな効果ですね。そういった使い方も面白いかもしれません。n		&lt;/p&gt;		&lt;p&gt;		いやーこういう遊び記事を書くのは楽しいですねｗ&lt;br /&gt;		なので今回も特に使いどころとかは考えていませんｗn		&lt;/p&gt;	&lt;!-- /.section --&gt;&lt;/div&gt;	&lt;script type="text/javascript"&gt;		dp.SyntaxHighlighter.HighlightAll('FlashBtnHTML');		dp.SyntaxHighlighter.HighlightAll('FlashBtnCSS');		dp.SyntaxHighlighter.HighlightAll('FlashBtnCSS2');		dp.SyntaxHighlighter.HighlightAll('FlashBtnCSS3');	&lt;/script&gt;&lt;!-- /.section --&gt;&lt;/div&gt;    
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4uEgaEQ4bKd99iwLGAjHG0kjgkU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4uEgaEQ4bKd99iwLGAjHG0kjgkU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4uEgaEQ4bKd99iwLGAjHG0kjgkU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4uEgaEQ4bKd99iwLGAjHG0kjgkU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/1jJni9cUW-Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/css3/css3-flash-button.html</feedburner:origLink></entry><entry>    <title>またまた勉強会で発表してきました</title>    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Css-eblog/~3/BIbyUjFYdlY/web-study02.html" />    <id>tag:css-eblog.com,2009://1.171</id>    <published>2009-12-13T11:15:00Z</published>    <updated>2009-12-29T09:18:39Z</updated>    <summary>mixiのコミュで開催された勉強会で発表したのでそのときの動画と資料を公開します。</summary>    <author>        <name>えど</name>        <uri>http://css-eblog.com/</uri>    </author>            <category term="勉強会" scheme="http://www.sixapart.com/ns/types#category" />            <content type="html" xml:lang="ja" xml:base="http://css-eblog.com/">        &lt;div class="section"&gt;	&lt;p&gt;		&lt;a href="/web-study/web-study01.html"&gt;前回&lt;/a&gt; に引き続き、またまた勉強会で発表してきました。n	&lt;/p&gt;	&lt;p&gt;		今回の趣旨は、&lt;a href="/note/join-css-nite-vol40-rep.html"&gt;以前参加した CSS Nite&lt;/a&gt; で得た知識（HTML5）を自分なりにまとめて情報シェアする、というものでした。&lt;br /&gt;		それに加えて CSS3 も織りまぜてみました。n	&lt;/p&gt;	&lt;p&gt;		そのときに&lt;a href="http://docs.google.com/fileview?id=0BzgQC1agpgIDNTIwMTcxZTktMDI5MS00Yjk2LTk0YjUtM2NjZDlkYTI1Y2E5&amp;hl=ja" target="_blank"&gt;作成した資料&lt;/a&gt;もアップしてあるので、下の動画と連動して見てもらえると内容が分かりやすいと思います。&lt;br /&gt;		興味ある方はぜひぜひ見てみてください。そして勉強会に興味がある方は、&lt;a href="http://mixi.jp/view_community.pl?id=127364" target="_blank"&gt;mixi のコミュ&lt;/a&gt; に参加してもらえれば気軽に参加できる勉強会なのでよかったら参加してみてくださいね。n	&lt;/p&gt;	&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="386" id="utv938276" name="utv_n_58265"&gt;&lt;param name="flashvars" value="loc=%2F&amp;amp;autoplay=false&amp;amp;vid=2715626" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.ustream.tv/flash/video/2715626" /&gt;&lt;embed flashvars="loc=%2F&amp;amp;autoplay=false&amp;amp;vid=2715626" width="480" height="386" allowfullscreen="true" allowscriptaccess="always" id="utv938276" name="utv_n_58265" src="http://www.ustream.tv/flash/video/2715626" type="application/x-shockwave-flash" /&gt;&lt;/object&gt;&lt;!-- /.section --&gt;&lt;/div&gt;            
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QJ5gfYkuq6Cc0YWaFT-CIls5tfM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QJ5gfYkuq6Cc0YWaFT-CIls5tfM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QJ5gfYkuq6Cc0YWaFT-CIls5tfM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QJ5gfYkuq6Cc0YWaFT-CIls5tfM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Css-eblog/~4/BIbyUjFYdlY" height="1" width="1"/&gt;</content><feedburner:origLink>http://css-eblog.com/web-study/web-study02.html</feedburner:origLink></entry></feed>
