<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>CSS Radar</title>
	
	<link>http://css.studiomohawk.com</link>
	<description>現役ウェブデベロッパーである私がCSSに関する最新のトリックやティップスをお届けするブログ。 CSSコーダーに学びやすいjQueryについても紹介していきます。私のモットーは実践。理論や理念よりも実際に役立つCSSを重視します。</description>
	<lastBuildDate>Sun, 21 Feb 2010 03:42:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CssRadar" /><feedburner:info uri="cssradar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><item>
		<title>ページネーションを賢くセンタリング</title>
		<link>http://feedproxy.google.com/~r/CssRadar/~3/nzPM_5nQpY0/</link>
		<comments>http://css.studiomohawk.com/119/faking-centering-float/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 03:42:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Intermediate]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[pagination]]></category>

		<guid isPermaLink="false">http://css.studiomohawk.com/?p=119</guid>
		<description><![CDATA[よく見かけるナビゲーションであるページネーション。にも関わらず、意外とわからないそのユーザビリティガイドライン、そしてそのガイドラインを準拠するためのコーディングテクニックを紹介しよう。


No related posts.]]></description>
			<content:encoded><![CDATA[<div class="seven pic solo"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/pagination.png" alt="" title="pagination" width="760" height="200" class="alignnone size-full wp-image-120" /></div>
<h2>ページネーションとは</h2>
<p>
写真のギャラリー、複数ページに渡る記事、ページネーションはウェブサイトにおける標準的なナビゲーションの1つ。<br />
非常に一般的であり、便利なナビゲーションであるが故、ユーザビリティは忘れられがちでもある。</p>
<blockquote>
<ol>
<li>クリッカブルエリアを大きく</li>
<li>アンダーラインは不要</li>
<li>カレントページの明示</li>
<li>リンクとリンクのスペースをとる</li>
<li>次へと前へのリンクを設ける</li>
<li>最初のページと最後のページへのリンクを設ける(可能であれば)</li>
<li>最初のページと最後のページへのリンクは外側に設ける</li>
</ol>
<p><cite><a href="http://kurafire.net/log/archive/2007/06/22/pagination-101">Pagination 101 &#8211; KuraFire Network</a></cite>
</p></blockquote>
<p>このガイドラインに沿って、ページネーションの設計を行うことが好ましいだろう。
</p>
<h3>コーディングテクニック</h3>
<p>
一般的で、標準的であるが、なかなかコーディングのベストプラクティスが見つからない。<br />
先ほどのガイドラインに沿うと、リンクをブロックにし、リンクエリアを大きくする必要があり、そうなるとfloatを利用することになる。<br />
しかし、floatさせた要素をセンタリングするためには、そのセンタリングする要素の幅を知る必要があるだろう。</p>
<p>上図であげたDiggやFlickrのように最大表示件数が確定できる場合は、比較的簡単にコーディングできるが、<br />
そうでない場合もある。例えば、サイト全体を動的に生成できない場合がそうだ。<br />
そのような場面でも、もちろん最大表示件数が確定できるような場面でも使えるコーディングテクニックを紹介しよう。
</p>
<p>
<strong>HTML</strong></p>
<pre class="brush: html"> &lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;‹ 前へ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#&quot;&gt;次へ ›&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>HTMLはシンプルにliを使って。</p>
<p><strong>CSS</strong></p>
<pre class="brush: css">
ul {
	margin: 20px;
	padding: 0;
	list-style-type: none;
	text-align: center;
}
li {
	display: inline-block;
	*display: inline
	margin: 0;
	padding: 0;
}
li a {
	text-decoration: none;
	color: #555;
	padding: 4px 6px;
	border: 1px solid #ccc;
	margin: 0 4px;
	*zoom: 1;
}
li a:hover {
	border: 1px solid #999;
	color: #333;
	background-color: #f2f2f2;
}
 </pre>
<p>liに指定したdisplay: inline-blockは、IE8、FF3以上、safari3以上なら問題なく利用できる、inlineでありながらblockにできるという、<br />
便利なdisplayのプロパティ。inlineなので、liはfloatをしなくとも、通常の文字列と同じように横に並び、かつtext-alignでセンタリングすることが可能。</p>
<p>残念な事にIE6、7ではdisplay:inline-blockは使えない。<br />
そこで今回は、IE6、IE7のために、スターハックを利用し(<a href="http://css.studiomohawk.com/86/writing-maintainable-css/">ハックは使わずコンディショナルコメントを利用することをおすすめする</a>)、liをdisplay: inlineとし、通常であればinlineの要素であるaタグに*zoom:1を利用してIEの不思議に隠されたhasLayoutプロパティをtrueにすることで、同じ表現ができる。</p>
<p>inline-blockは非常に便利なプロパティなので、ページネーション以外にも使う場面は多いだろう。</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/s3NefQ4oEdqmHp63JSKQtb2mMX8/0/da"><img src="http://feedads.g.doubleclick.net/~a/s3NefQ4oEdqmHp63JSKQtb2mMX8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/s3NefQ4oEdqmHp63JSKQtb2mMX8/1/da"><img src="http://feedads.g.doubleclick.net/~a/s3NefQ4oEdqmHp63JSKQtb2mMX8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CssRadar?a=nzPM_5nQpY0:vOTD-Oxsdlk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CssRadar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CssRadar?a=nzPM_5nQpY0:vOTD-Oxsdlk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CssRadar?i=nzPM_5nQpY0:vOTD-Oxsdlk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CssRadar/~4/nzPM_5nQpY0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://css.studiomohawk.com/119/faking-centering-float/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://css.studiomohawk.com/119/faking-centering-float/</feedburner:origLink></item>
		<item>
		<title>10の必携オンラインCSS開発ツール</title>
		<link>http://feedproxy.google.com/~r/CssRadar/~3/_5Lvk3A5qAc/</link>
		<comments>http://css.studiomohawk.com/94/online-css-tools-you-should-bookmark/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 14:57:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://css.studiomohawk.com/?p=94</guid>
		<description><![CDATA[CSSの開発やHTMLのコーディングを少し楽にしてくれるオンラインツール集。使いこなせば、今よりも3倍は仕事が早くなるはず。


No related posts.]]></description>
			<content:encoded><![CDATA[<h3>1. Adobe BrowserLab</h3>
<div class="three pic left"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/browserlab.png" alt="" title="browserlab" width="215" height="150" class="alignnone size-full wp-image-97" /></div>
<p>多くのフロントエンドデベロッパーの悩みがクロスブラウザ対応。<br />
Adobe BrowserLabは</p>
<ul>
<li>Windows Chrome 3.0</li>
<li>Windows Firefox 2.0</li>
<li>Windows Firefox 3.0</li>
<li>Windows Firefox 3.5</li>
<li>Windows Internet Explorer 6.0</li>
<li>Windows Internet Explorer 7.0</li>
<li>Windows Internet Explorer 8.0</li>
<li>Mac OS Firefox 2.0</li>
<li>Mac OS Firefox 3.0</li>
<li>Mac OS Firefox 3.5</li>
<li>Mac OS Safari 3.0</li>
<li>Mac OS Safari 4.0</li>
</ul>
<p>での表示をスクリーンショットで確認できるツール、類似するサービスは数多くあるが、Adobe BrowserLabではブラウザ表示を重ねてみたり、2つの表示を左右で比べて見ることもでき、さらにAdobe製品にあるようなルーラーを表示する事も、ガイドを引くこともできる。<br />
外部から確認ができるサーバーにファイルをアップしておかなければならないが、WinとMacを切り替えたり、私の様にその両方を所有していない場合などに便利だ。</p>
<p><a href="https://browserlab.adobe.com/">https://browserlab.adobe.com/</a></p>
<h3>2. Styleneat</h3>
<div class="three pic right"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/styleneat.png" alt="" title="styleneat" width="215" height="150" class="alignnone size-full wp-image-101" /></div>
<p>&#8220;<a href="http://css.studiomohawk.com/86/writing-maintainable-css/" title="ノンプログラマーズ・スタイルシートライティングTips">ノンプログラマーズ・スタイルシートライティングTips</a>&#8220;でも触れたCSSオーガナイザーのStyleneat。<br />
その名が示す通り、CSSを清書してくれる。圧縮したCSSでも、元通りにしてくれるところが非常に便利。<br />
シンプルだが、強力なツールだ。<br />
Sort Properties alphabeticallyにはチェックを入れ、 Multi-line Formattingに設定することをおすすめする。
</p>
<p><a href="http://www.styleneat.com/">http://www.styleneat.com/</a></p>
<h3>3. Online YUI Compressor</h3>
<div class="three pic left"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/yuiconpressor.png" alt="" title="yuiconpressor" width="215" height="150" class="alignnone size-full wp-image-103" /></div>
<p>先ほど圧縮についてふれたが、私がCSSの圧縮に利用しているのが、Online YUI Compressor。<br />
他にも圧縮ツールはあるが、私はJSの開発も行うことがあるため、CSS/JSの両方が圧縮できるYUIがお気に入りだ。<br />
こちらも、シンプルに書いたコードをテキストボックスにコピペして、Compressボタンをクリックするだけ。<br />
CSSの圧縮の際はFile TypeのオプションをCSSにすることを忘れずに。</p>
<p><a href="http://www.refresh-sf.com/yui/">http://www.refresh-sf.com/yui/</a></p>
<h3>4. Typetester</h3>
<p><div class="three pic right"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/typetester.png" alt="" title="typetester" width="215" height="150" class="alignnone size-full wp-image-105" /></div>
<p>Information Architects Japanにて<a href="http://informationarchitects.jp/ja/the-web-is-all-about-typography-period/">ウェブデザインの95％はタイポグラフィ</a>という記事が書かれた。本当に95%もの割合がタイポグラフィーなのかはわからないが、重要視するべく要素の1つであることは間違いない。<br />
前置きが長くなったが、Typetesterはその名が示す通り、フォントをページに表示させ、確認できる優れたツール。英語のサービスではあるが、自分のマシンに入っているフォントであれば読み込ませる事が可能なので、MSゴシックや、メイリオなど、日本語で標準的に利用できるフォントを試すことが可能だ。<br />
<a href="http://www.typetester.org/">http://www.typetester.org/</a>
</p>
<h3>5. PXtoEM.com</h3>
<div class="three pic left"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/pxtoem-300x203.png" alt="" title="pxtoem" width="300" height="203" class="alignnone size-medium wp-image-107" /></div>
<p>
W3Cも推奨しているように、ウェブサイトのフォントサイズは絶対指定のpxなどではなく、相対指定のemが推奨されている(このサイトではpx指定のままだが)。<br />
そんなpx指定のフォントサイズをem指定に変換(反対も可能)してくれるのが、PXtoEM.com。<br />
実際にはpx、pt、em、パーセントとCSSで使えるほとんどの単位を変換してくれるツールだ。<br />
<a href="http://pxtoem.com/">http://pxtoem.com/</a>
</p>
<h3>6. Typograph</h3>
<div class="three pic right"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/typograph.png" alt="" title="typograph" width="215" height="150" class="alignnone size-full wp-image-108" /></div>
<p>
&#8220;Don’t compose without a scale.&#8221;<br />
とRobert Bringhurst氏が言う通り、タイポグラフィーには音楽とおなじようにリズムとハーモニーがあり、それらを構成するためには、スケール、音楽の例で表現すると、音階が必須である。<br />
その手助けをしてくれるのが、Typograph。<br />
初めは使いづらい印象があるが、基本に基づいたバーティカルリズムを作り出すための音階を、簡単にCSSにしてくれる非常に強力なツールなので、ぜひ少なくとも30分くらいは遊んでみてほしい。<br />
英語に少しでも抵抗を感じないのであれば、このツール自体に書かれた記事を読むことをおすすめする。</p>
<p><a href="http://lamb.cc/typograph/">http://lamb.cc/typograph/</a>
</p>
<h3>7. CSS Sprite Generator</h3>
<div class="three pic right"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/cssspritegenerator.png" alt="" title="cssspritegenerator" width="215" height="150" class="alignnone size-full wp-image-110" /></div>
<p>
より早くページをロードさせるためには、リクエストを減らせばいい。<br />
CSSスプライトとよばれる、背景画像の位置を指定することで、1枚の画像にいくつもの画像を置きながら、<br />
表示させることができるテクニック。<br />
サーバーのことなんてさっぱりわからないから、と言わずに、新しい表現の1つとしても覚えておきたいテクニックだ。<br />
そのCSSスプライトで面倒なのが、画像の結合と位置指定。<br />
CSS Sprite Generatorは、その面倒をあっという間に解決してくれる。<br />
スプライトしたい画像をzipに納めてアップロード。<br />
たったこれだけで、CSSスプライトが簡単に実現できてしまう。<br />
バージョンが変わり対応していない部分もあるが、私が日本語翻訳を手伝わせていただいたので、日本語でも利用可能だ。</p>
<p><a href="http://spritegen.website-performance.org/">http://spritegen.website-performance.org/</a></p>
<h3>8. Replace CSS Color</h3>
<div class="three pic left"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/csscoloreditor.png" alt="" title="csscoloreditor" width="215" height="150" class="alignnone size-full wp-image-112" /></div>
<p>
自分のサイトも含めて、サイトのリニューアルやリデザインを行うことが非常に多い私にとっての頭痛の種はCSSのカラー指定。<br />
カラーほどドラスティックに印象を変更できる要素はないだろうが、そんなカラーの指定箇所は非常に多く、抜けがち。<br />
そんな際に便利なのが、Replace CSS Color。<br />
CSSファイルをアップロードすると、カラー指定の箇所を抜きだし、その場で編集し、新しい指定のCSSを生成してくれる。<br />
ちょうど私が作成しようとしているWordpress用のテーマでもカラーの指定をたくさん変更する必要があるので、便利に活躍している。</p>
<p><a href="http://css-color-replace.orca-multimedia.de/">http://css-color-replace.orca-multimedia.de/</a>
</p>
<h3>9. ダミーテキストジェネレータ</h3>
<div class="three pic right"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/dummytext.png" alt="" title="dummytext" width="215" height="150" class="alignnone size-full wp-image-115" /></div>
<p>海外ではダミーテキストといえば、lorem ipsum。長い歴史をもつダミーテキストで、生成ツールも星の数程あるが、日本語にはダミーテキストを生成するツールがない。<br />
ダミーテキストジェネレータは世にも珍しい日本語のダミーテキストを生成してくれるツール。<br />
ダミーテキストの種類を選んで、文字数を入力すればOK。<br />
精度の高いプロトタイプを製作する際や、テキストがいつまでもやってこない制作現場で重宝するツール。</p>
<p><a href="http://dounokouno.com/webtools/dummytext/">http://dounokouno.com/webtools/dummytext/</a></p>
<h3>10. HTML Entity Character Lookup</h3>
<div class="three pic left"><img src="http://css.studiomohawk.com/wp-content/uploads/2010/02/htmlentities.png" alt="" title="htmlentities" width="215" height="150" class="alignnone size-full wp-image-116" /></div>
<p>HTMLのエンティティーキャラクターを検索するツール。<br />
エンティティーキャラクターとは、&Uuml;や&reg;などの文字。<br />
かなりの数のキャラクターがあり、それらを上手に活用すれば、<a href="http://www.webdesignerwall.com/tutorials/using-html-symbol-entities/">Using HTML Symbol Entities</a>で紹介されているようなことも可能だ。<br />
こちらも数ある類似ツールの中で１番使い勝手がいい。</p>
<p><a href="http://leftlogic.com/lounge/articles/entity-lookup/">http://leftlogic.com/lounge/articles/entity-lookup/</a></p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/qM_F-f4eWNaN8d7mntk1OrrhWMA/0/da"><img src="http://feedads.g.doubleclick.net/~a/qM_F-f4eWNaN8d7mntk1OrrhWMA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qM_F-f4eWNaN8d7mntk1OrrhWMA/1/da"><img src="http://feedads.g.doubleclick.net/~a/qM_F-f4eWNaN8d7mntk1OrrhWMA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CssRadar?a=_5Lvk3A5qAc:iTmTxpQKjDo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CssRadar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CssRadar?a=_5Lvk3A5qAc:iTmTxpQKjDo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CssRadar?i=_5Lvk3A5qAc:iTmTxpQKjDo:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CssRadar/~4/_5Lvk3A5qAc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://css.studiomohawk.com/94/online-css-tools-you-should-bookmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://css.studiomohawk.com/94/online-css-tools-you-should-bookmark/</feedburner:origLink></item>
		<item>
		<title>ノンプログラマーズ・スタイルシートライティングTips</title>
		<link>http://feedproxy.google.com/~r/CssRadar/~3/N8G8x3XAV_U/</link>
		<comments>http://css.studiomohawk.com/86/writing-maintainable-css/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 06:22:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Intermediate]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://css.studiomohawk.com/?p=86</guid>
		<description><![CDATA[CSSは難しくはない。しかし、大きなプロジェクトになればなるほど、そのメンテナンスは難しくなる。
そこで、今回はメンテナンス性を向上させる10のティップスを紹介しよう。


No related posts.]]></description>
			<content:encoded><![CDATA[<p>CSSはそれ自体、それほど高度な知識を必要とする言語では決してないが、CMSやブログツールのテーマあるいはスキンの開発や、中～大規模ウェブサイトにおけるCSSの開発には、効率的で合理的なCSSの組織化、スタイリングルールなど多くのプログラマ的観点が必要になってくる。<br />
そこで今回はプログラムの経験がないCSS開発者のための、スタイルシートライティングTipsを紹介しよう。</p>
<h3>1. reset.cssの活用</h3>
<p>クロスブラウザ対応がCSS開発者にとって最大の頭痛の種。<br />
その頭痛を最小限に止めるために、ブラウザがデフォルトで設定するスタイルを一旦リセットしてしまうためにreset.cssを利用しよう。</p>
<pre class="brush: css"> html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}

/* remember to define focus styles! */
:focus {
	outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
	text-decoration: none;
}
del {
	text-decoration: line-through;
}

/* tables still need &#039;cellspacing=&quot;0&quot;&#039; in the markup */
table {
	border-collapse: collapse;
	border-spacing: 0;
} </pre>
<p><a href="http://meyerweb.com/eric/thoughts/2008/01/15/resetting-again/">Eric&#8217;s Archived Thoughts: Resetting Again</a><br />
私はこのreset.cssを利用しているが、他にもYahoo!が公開している<a href="http://developer.yahoo.com/yui/reset/">YUI reset.css</a>なども活用されている機会は多い。</p>
<h3>2. IEハックは使わず、コンディショナルコメントを活用する</h3>
<p>クロスブラウザの頭痛の種であるIE。そのIEをターゲットにした様々なハックが発見されている。<br />
例えば、</p>
<pre class="brush: css"> selector { *property: value;  } /* IE6&amp;IE7 */
selector { _property: value;  } /* IE6 ONLY */ </pre>
<p>こうすることで、1行目で宣言した命令を、2行目で宣言した命令で上書きするため、この2行でIE7とIE6を別にターゲットにしたCSSを書くことができる。<br />
CSSハックを利用することで、CSSファイルを1つにできることは利点ではあるが、メンテナンス性を考えると、<strong>IE コンディショナルコメント</strong>を利用することが望ましい。</p>
<pre class="brush: html">
&lt;!--[if IE 6]&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie6.css&quot; /&gt;&lt;![endif]--&gt;
&lt;!--[if IE 7]&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie7.css&quot; /&gt;&lt;![endif]--&gt;
</pre>
<p>コンディショナルコメントを活用すれば、このようにそれぞれのIEバージョンに対応したCSSファイルを読み込むことが可能だ。<br />
＊1行目はIE6のみ、2行目はIE7のみをターゲットにしている</p>
<p>IE8ではIE6、IE7よりバグが少ないブラウザではあるが、<a href="http://jhop.me/ie8-bugs">バグはもちろん存在する</a>。</p>
<pre class="brush: html"> &lt;!--[if IE 8]&gt;&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie8.css&quot; /&gt;&lt;![endif]--&gt;</pre>
<p>とすれば、IE8のみをターゲットにすることが可能だ。</p>
<h3>3. ID名、クラス名には位置を示す単語を避ける</h3>
<pre class="brush: html"> &lt;div id=&quot;page&quot;&gt;
    &lt;div id=&quot;leftColumn&quot;&gt;左コラム&lt;/div&gt;
    &lt;div id=&quot;rightColumn&quot;&gt;右コラム&lt;/div&gt;
&lt;/div&gt;</pre>
<p>2カラムのデザインの場合を例に、上記のようなHTMLを書いたことはないだろうか？<br />
デザインが変更になり、右コラムが左コラムに変更になる場合などに非常に困るネーミングルールだろう。</p>
<pre class="brush: html"> &lt;div id=&quot;page&quot;&gt;
    &lt;div id=&quot;main&quot;&gt;左コラム&lt;/div&gt;
    &lt;div id=&quot;sidebar&quot;&gt;右コラム&lt;/div&gt;
&lt;/div&gt;</pre>
<p>このようにしておけば、左右を入れ替えても齟齬がない。自分以外の誰が見ても不思議ではないコードを書くことが最良のメンテナンス性能であるため、IDとくらすのネーミングルールはしっかりと考えておくことをおすすめする。<br />
同じく、top-や、bottom-というような場所を指し示す前置語を利用するのもあまりおすすめはしない。</p>
<h3>4. CSSの継承を活用する</h3>
<pre class="brush: html"> &lt;div class=&quot;parent&quot;&gt;
&lt;h2&gt;見出し&lt;/h2&gt;
&lt;p&gt;パラグラフと&lt;strong&gt;強調&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>というHTMLを例にして、</p>
<pre class="brush: css"> .parent h2 { color: #333; }
.parent p { color: #333; }
.parent strong { color: #333; } </pre>
<p>というように、文字色を墨色(#333333)にする場合、</p>
<pre class="brush: css"> .parent { color: #333; } </pre>
<p>とすれば、親要素(div.parent)で宣言された文字色は子要素に<strong>継承</strong>される。<br />
このほうがコードは短く、色の変更も1ヶ所のみ対応すればいい。<br />
CSSには継承するプロパティと、継承しないプロパティがあるので、下記を参照してほしい。<br />
<a href="http://css.eweb-design.com/0108_bsc.html">スタイルシートの継承 &#8211; スタイルシート</a><br />
実際に全部を覚えるのは大変なので、色、文字に関わるプロパティ、そしてリストに関わるプロパティは継承する。<br />
と覚えておけば、問題ないだろう。</p>
<h3>5. 同じ値のセレクタを結合する</h3>
<pre class="brush: css"> h1 { font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h2 { font-family:Arial, Helvetica, sans-serif; font-weight:normal; }
h3 { font-family:Arial, Helvetica, sans-serif; font-weight:normal; } </pre>
<p>というように同じ値を持つ宣言であれば、</p>
<pre class="brush: css"> h1, h2, h3 {
    font-family:Arial, Helvetica, sans-serif; font-weight:normal;
} </pre>
<p>とするほうが、より見やすいコードにできる。<br />
リーダビリティとファイルサイズを優先する場合、可能な限り結合できる宣言は結合するべきだが、<br />
ファイルサイズを犠牲にして、すこしメンテナンス性を向上させるために、私はしばしばこのルールを破ることがある。<br />
例えば、このブログのCSSを例にすると</p>
<pre class="brush: css"> .single #bd .article h2 {
	color: #CE5C00;
	font-size:18px;
	font-weight: bold;
	text-shadow: 0 1px 1px #212526;
}
.single #bd .article h3 {
	color: #CE5C00;
	font-size:16px;
	font-weight: bold;
	text-shadow: 0 1px 1px #212526;
}
.single #bd .article h4 {
	color: #CE5C00;
	font-size: 14px;
	font-weight: bold;
	text-shadow: 0 1px 1px #212526;
}
.single #bd .article h5 {
	color: #CE5C00;
	font-size:12px;
	font-weight: bold;
	text-shadow: 0 1px 1px #212526;
}
.single #bd .article h6 {
	color: #CE5C00;
	font-size:10px;
	font-weight: bold;
	text-shadow: 0 1px 1px #212526;
}
.single #bd .article h1,
.single #bd .article h2,
.single #bd .article h3,
.single #bd .article h4,
.single #bd .article h5,
.single #bd .article h6 {
	margin: 0 120px 5px 250px;
	padding: 5px 0;
} </pre>
<p>というように、結合するプロパティとそうでないプロパティを分けている。<br />
結合したのは、マージンとパディング。<br />
結合しなかったのは文字に関するプロパティ。<br />
現時点ではh1～h6まで文字に関するプロパティも結合できる同じ値に設定しているが、<br />
将来に変更できる環境を用意してある。<br />
プロジェクトに応じて、少し未来ための拡張性を残しておくことは、メンテナンス性を向上させる策の1つだろう。</p>
<h3>5. プロパティはアルファベット順に</h3>
<pre class="brush: css"> selector {
	background-color:#3399cc;
	color:	#666;
	font: 	1.2em/1.4em Arial, Helvetica, sans-serif;
	height:	300px;
	margin:	10px 5px;
	padding:5px 0 10px 5px;
	width:	30%;
	z-index:10;
} </pre>
<p>プロパティはアルファベット順に並べておく。Firebugでスタイルを見ると、同じくアルファベット順に並べ替えているのがわかる。<br />
私はここでもルールを破ることがある。</p>
<pre class="brush: css"> .selector {
	position :absolute；
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
} </pre>
<p>というように、position: absoluteを宣言する場合、位置を表すプロパティであるtop,right,bottom,leftはインデントして、<br />
上記の順番に並べることにしている。アルファベット順に並べてしまう方が、わかりづらくなるプロパティも存在するので、<br />
このガイドラインの上に、役割に応じた対応をするほうがいいだろう。</p>
<h3>６. 複数行の宣言は複数行、1行の宣言なら1行で</h3>
<p>CSSのコードフォーマットには、1行派と、複数行派がいる。<br />
前者はすべての宣言を1行で書き、後者は宣言は複数行で書く。<br />
前者は当然、後者とくらべてファイルサイズが小さくなるが、リーダビリティが高いとは言えない。<br />
後者はリーダビリティは高いが、ファイルサイズが大きくなる。<br />
私は折衷派だ。</p>
<pre class="brush: css"> .selector { property :value； }
.selector {
	property :value；
	property :value；
	property :value；
	property :value；
} </pre>
<p>1行で宣言が完結する場合は1行で、複数行に渡る場合は、複数行で書く。<br />
ファイルサイズも、リーダビリティも私にはちょうどいい。<br />
私は個人の場合のプロジェクトでは上記の方法でCSSを書き、サーバにアップロードしているが、仕事ではほぼ欠かさず、CSSを圧縮している。<br />
私はJavaScriptの開発を行うこともあるので、<br />
<a href="http://www.refresh-sf.com/yui/">Online YUI Compressor</a>を使って、CSSを圧縮している。<br />
作業用とアップロード用で別ファイルとしているが、<br />
圧縮したCSSにリーダビリティを復活させる場合や、フォーマットを後回しにしてしまった場合の救済として、<br />
<a href="http://www.styleneat.com/index.php">Styleneat &#8211; CSS Organizer</a><br />
を使用することもおすすめする。</p>
<h3>7. CSSプロパティの短縮形を活用する</h3>
<pre class="brush: css"> selector {
	padding-top: 1px;
	padding-right: 2px;
	padding-bottom: 1px;
	padding-left: 1px;
} </pre>
<p>とした場合、</p>
<pre class="brush: css"> selector {
	padding: 1px 2px 1px 1px;
} </pre>
<p>と短縮形を使うと1行にできる。<br />
paddingやmargin、border-widthなどで、同じように短縮形を使える他、fontやbackgroundでも使える。<br />
詳しい説明は別の機会にするが、覚えておいて損はない。</p>
<h3>8. コメントを使って、CSSを組織化する</h3>
<p>何度も繰り返すが、メンテナンス性のメインテーマは自分以外の人間が読み解くことができること。<br />
CSSのコメントを利用し、CSSファイルを組織化することで、追加や削除、変更などが簡単にできるようにしておこう。<br />
プロジェクトの規模やデザインに応じてコメントを変更する必要はあるが、</p>
<pre class="brush: css">/*--------------------------------------------------------------------
	1. COMMON
--------------------------------------------------------------------*/

/*--------------------------------------------------------------------
	2. HEADER
--------------------------------------------------------------------*/

/*--------------------------------------------------------------------
	4. MAIN
--------------------------------------------------------------------*/

/*--------------------------------------------------------------------
	5. SIDEBAR
--------------------------------------------------------------------*/

/*--------------------------------------------------------------------
	6. FOOTER
--------------------------------------------------------------------*/</pre>
<p>というように、セクションごとにコメントを書き込んでおく。</p>
<h3>9. コメントを使って、CSSの目次を作成</h3>
<p>8. と同じくコメントを活用して</p>
<pre class="brush: css"> /*--------------------------------------------------------------------
	1. COMMON
	2. HEADER
	3. MAIN
	4. SIDEBAR
	5. FOOTER
--------------------------------------------------------------------*/ </pre>
<p>というように、目次を作成しておく、このようにしておくことで、あまりおすすめはしないが、1ファイルが数千行に及ぶような場合でも、<br />
エディタの検索機能を使えば、目的の場所まですぐにたどり着ける。<br />
もっともFirebugを活用すれば、何行目に宣言があるのか教えてくれるが、このように目次を作成し、8.のようにセクションごとにCSSを書く癖をつければ、無駄な記述も少なくなり、メンテナンス性も向上する。</p>
<h3>10. ガイドラインを作成し、それに沿った記述を心がける</h3>
<p>多くのプログラミング言語もそうであるように、HTML、CSSにも同じ結果を得るために、様々な方法が存在する。<br />
今回紹介したティップスもその１部。<br />
ガイドラインを作成し、プロジェクト全体で、あるいは自分自身でその遵守を心がける。<br />
それ自体がもっとも有効なメンテナンス性向上の近道だろう。</p>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/Jmv8GzIg9HWYCHkNf6VO6QcibhI/0/da"><img src="http://feedads.g.doubleclick.net/~a/Jmv8GzIg9HWYCHkNf6VO6QcibhI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Jmv8GzIg9HWYCHkNf6VO6QcibhI/1/da"><img src="http://feedads.g.doubleclick.net/~a/Jmv8GzIg9HWYCHkNf6VO6QcibhI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CssRadar?a=N8G8x3XAV_U:_V7juACeriU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CssRadar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CssRadar?a=N8G8x3XAV_U:_V7juACeriU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CssRadar?i=N8G8x3XAV_U:_V7juACeriU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CssRadar/~4/N8G8x3XAV_U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://css.studiomohawk.com/86/writing-maintainable-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://css.studiomohawk.com/86/writing-maintainable-css/</feedburner:origLink></item>
		<item>
		<title>(New) Clearfixハック</title>
		<link>http://feedproxy.google.com/~r/CssRadar/~3/kiYTfv2Ksuc/</link>
		<comments>http://css.studiomohawk.com/57/new-clearfix/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 10:52:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Beginner]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://css.studiomohawk.com/?p=57</guid>
		<description><![CDATA[長年お世話になったClearfixをアップデート。Mac IEのサポートを外して、よりクリアでクリーンなコードになった。


No related posts.]]></description>
			<content:encoded><![CDATA[<h3>(New) Clearfixハック</h3>
<pre class="brush: css"> .clearfix:after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: &quot; &quot;;
	clear: both;
	height: 0;
	}
* html .clearfix                { zoom: 1; } /* IE6 */
*:first-child+html .clearfix　  { zoom: 1; } /* IE7 */ </pre>
<p>Clearfixハックは、</p>
<pre class="brush: html">
    &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
    &lt;br clear=both /&gt;
</pre>
<p>というように、余計なマークアップをしなくとも、floatをクリアできる。<br />
数年前から有名なハックだが、もはやMac IEを使っているユーザはいないだろうということで、<br />
Mac IE用の記述を除いたものを紹介。</p>
<p><a href="http://perishablepress.com/press/2009/12/06/new-clearfix-hack/">The New Clearfix Method • Perishable Press</a></p>
<p><strong>Example</strong></p>
<p>HTML</p>
<pre class="brush: html">
&lt;div class=&quot;parent clrearfix&quot;&gt;
	&lt;div class=&quot;children&quot;&gt;float: left&lt;/div&gt;
	&lt;div class=&quot;children&quot;&gt;flaot: left&lt;/div&gt;
&lt;/div&gt;
</pre>


<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/4g-8LKQ3JBC6FVe0h68Yc90x2pM/0/da"><img src="http://feedads.g.doubleclick.net/~a/4g-8LKQ3JBC6FVe0h68Yc90x2pM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4g-8LKQ3JBC6FVe0h68Yc90x2pM/1/da"><img src="http://feedads.g.doubleclick.net/~a/4g-8LKQ3JBC6FVe0h68Yc90x2pM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/CssRadar?a=kiYTfv2Ksuc:JyzwgqPhFo0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/CssRadar?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/CssRadar?a=kiYTfv2Ksuc:JyzwgqPhFo0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/CssRadar?i=kiYTfv2Ksuc:JyzwgqPhFo0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/CssRadar/~4/kiYTfv2Ksuc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://css.studiomohawk.com/57/new-clearfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://css.studiomohawk.com/57/new-clearfix/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 3.266 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-14 10:49:00 --><!-- Compression = gzip -->
