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

<channel>
	<title>understandard &#187; css</title>
	<atom:link href="http://www.understandard.net/category/css/feed" rel="self" type="application/rss+xml" />
	<link>http://www.understandard.net</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 02:24:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>table に指定しておきたい CSS メモ</title>
		<link>http://www.understandard.net/css/css009.html</link>
		<comments>http://www.understandard.net/css/css009.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 14:55:33 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=339</guid>
		<description><![CDATA[table 関係で調べ物をしていたときに見かけた、Takazudo さんの zudolog » tableのcellspacing=”0″を消すためにという記事の中で
tableのcellspacing=&#8221;0 [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css004.html" rel="bookmark">デフォルトスタイルのリセット</a><!-- (9.82754)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/firefox/firefox010.html" rel="bookmark">Firefoxのキーボードショートカットのチートシート</a><!-- (5.3941)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/firefox" title="firefox の投稿をすべて表示" rel="category tag">firefox</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/firefox" rel="tag">firefox</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css008.html" rel="bookmark">display:inline-block; を使う</a><!-- (3)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/inline-block" rel="tag">inline-block</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>table 関係で調べ物をしていたときに見かけた、Takazudo さんの <a href="http://zudolab.net/blog/?p=12">zudolog » tableのcellspacing=”0″を消すために</a>という記事の中で</p>
<blockquote title="zudolog » tableのcellspacing=”0″を消すために" cite="http://zudolab.net/blog/?p=12"><p>tableのcellspacing=&#8221;0&#8243;が必要なことはかなり多い。<br />
しかし、これと同じことをしてくれるCSSのプロパティ、border-spacing:0 は、IE7以下では対応していない。そこで登場するのがborder-collapse:collapse なのだけれど、これにもまた問題がある。そんなこんなを解決するTips。やりたいのはcellspacing=&#8221;0&#8243;を入れたくないってだけですが。</p></blockquote>
<p>という一文。一文というより最後の一言がグッときましたね。<br />
そうそう、<strong>HTML 側に余計なもの書き込みたくない</strong>んですよね。それだけ。</p>
<p>できるだけキレイな HTML、CSS を組みたいものです。<br />
このブログはいろいろ汚いとこがあるので、ちょっとずつ直していきます…。</p>
<p>ということで、Takazudo さんの書いていた CSS を自分向けに改変したものをメモ。</p>
<pre class="brush: css;">table{
 width:auto;
 border-spacing:0;
 border-collapse:separate;
 /border-collapse:collapse; /* ie6,7 */
 border-right:1px solid #333333;
 border-bottom:1px solid #333333;
 table-layout:fixed;
 word-break:break-all;
 word-wrap:break-word;
}
th, td{
 border-top:1px solid #333333;
 border-left:1px solid #333333;
 padding:5px;
}</pre>
<p>Takazudo さんのサンプルに追加して、「table-layout:fixed;」、「word-break:break-all;」、「word-wrap:break-word;」を指定しています（プロパティの順番も変更）。</p>
<h2>追加したもの</h2>
<h3>table-layout:fixed;</h3>
<p>この指定を入れておくと、セルの横幅が以下のようになります。</p>
<ul>
<li>各セルの幅を指定していればそのサイズに</li>
<li>指定していない場合はセルの数で均等に分割</li>
</ul>
<p>table-layout はデフォルトが auto なので、自動で幅を調整してくれる方がいいなら、この指定を外すか該当する箇所で上書きすればいいと思います。</p>
<p>また、この指定をしておくと最初の一行目を読み込んだ時点で各列の幅を固定して表示を開始するため、 表示が速くなるメリットがあるそうです（参考: <a href="http://www.htmq.com/style/table-layout.shtml">table-layout－スタイ ルシートリファレンス</a>）。</p>
<p>回線速度自体が結構早くなっているので、そこまで気にする必要はないかもしれないですが。</p>
<h3>word-break:break-all; と word-wrap:break-word;</h3>
<p>これらの指定は、セル幅を超える長い単語や URL を強制的に折り返させるために入れています。<br />
日本語をエンコードした URL が表示された場合などに word-wrap:break-word; の指定をしていないとセルを突き破って表示しちゃいます。</p>
<dl>
<dt>指定なし</dt>
<dd>IE6, IE8, Fx 3.6, Chrome 6.0, Safari 5 で突き破る</dd>
<dt>word-wrap:break-all; のみ指定</dt>
<dd>IE6, IE8, Fx 3.6, Chrome 6.0, Safari 5 でオッケー</dd>
<dt>word-break:break-all; のみ指定</dt>
<dd>Fx 3.6 で突き破る</dd>
<dt>両方指定</dt>
<dd>IE6, IE8, Fx 3.6, Chrome 6.0, Safari 5 でオッケー</dd>
</dl>
<p>ということで、セル内で改行させるという本来の目的は果たせているので、word-wrap:break-word; の指定だけでもいいのですが、その場合には <strong>IE だけ改行位置が変わってしまいます</strong>。</p>
<p>そもそもなんでこの指定（word-break:break-all;）を入れたのかを覚えていないのですが、word-break:break-all; を加えると、IE と他のモダンブラウザ間で表示が近くなるので外さずに残しています。</p>
<p>原因が分からないので、また時間があるときにでも調べてみようと思います。<br />
原因が分かる方、うまくいかないパターンを発見された方がいらっしゃいましたら、ぜひ教えていただければと思います。</p>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css004.html" rel="bookmark">デフォルトスタイルのリセット</a><!-- (9.82754)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/firefox/firefox010.html" rel="bookmark">Firefoxのキーボードショートカットのチートシート</a><!-- (5.3941)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/firefox" title="firefox の投稿をすべて表示" rel="category tag">firefox</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/firefox" rel="tag">firefox</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css008.html" rel="bookmark">display:inline-block; を使う</a><!-- (3)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/inline-block" rel="tag">inline-block</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css009.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>display:inline-block; を使う</title>
		<link>http://www.understandard.net/css/css008.html</link>
		<comments>http://www.understandard.net/css/css008.html#comments</comments>
		<pubDate>Tue, 23 Mar 2010 08:21:10 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[inline-block]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=354</guid>
		<description><![CDATA[要素の横並びにfloat:left; ではなくdisplay:inline-block; を使うためのメモ。
元ネタは、CSS display: inline-block: why it rocks, and why i [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css007.html" rel="bookmark">cssでグラフを描く</a><!-- (10.8388)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css004.html" rel="bookmark">デフォルトスタイルのリセット</a><!-- (9.2585)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css009.html" rel="bookmark">table に指定しておきたい CSS メモ</a><!-- (5.24327)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>要素の横並びにfloat:left; ではなくdisplay:inline-block; を使うためのメモ。<br />
元ネタは、<a href="http://robertnyman.com/2010/02/24/css-display-inline-block-why-it-rocks-and-why-it-sucks">CSS display: inline-block: why it rocks, and why it sucks</a></p>
<p>float:left; で横並びにしようとしたとき、各要素の高さが違うと<br />
<img title="css008-1.png" src="/images/post/css/008/css008-1.png" alt="css008-1.png" width="310" height="200" /><br />
このようになってしまいます。<br />
カッコ悪いですよね…。というよりデザイン通りになっていません。</p>
<p>display:inline-block; を使うと、<br />
<img src="/images/post/css/008/css008-2.png" alt="css008-2.png" title="css008-2.png" width="310" height="162" /><br />
このようになります。素晴らしい！エクセレント！<br />
display:inline-block; には、text-align および vertical-align が指定できるので、今まで面倒だったレイアウトが簡単に実装できるようになります。</p>
<h2>と、そう簡単にはいきません</h2>
<p>記述もシンプルになるし、変な崩れも起こらないし、完璧だー！なんていうふうに特に何も考えずにコーディングすると、IE6、IE7以外で隙間が生まれてしまいます。</p>
<p>先に出した成功例は、以下に示す解決法を実践したものだったのです…。<br />
何も対応をしなかった場合、IE6、IE7以外ではこのようになってしまいます。<br />
<img src="/images/post/css/008/css008-3.png" alt="css008-3.png" title="css008-3.png" width="310" height="240" /></p>
<p>今回基準となるコードは以下。<br />
CSS</p>
<pre class="brush: css;">ul{
}
li{
	width:100px;
	vertical-align:top;
	display:inline-block;
	/display:inline;
	/zoom: 1;
}</pre>
<p>HTML</p>
<pre class="brush: xml;">&lt;ul&gt;
	&lt;li&gt;inline-blockのサンプル1&lt;/li&gt;
	&lt;li&gt;inline-blockのサンプル2&lt;/li&gt;
	&lt;li&gt;inline-blockのサンプル3&lt;/li&gt;
	&lt;li&gt;inline-blockのサンプル4&lt;/li&gt;
&lt;/ul&gt;</pre>
<p><strong>この隙間の原因は改行</strong>。<br />
試しに改行を消してみるときれいに隙間が埋まります。</p>
<p>解決法は大きく分けて2つ。<br />
HTMLで直すか、CSSで直すかです。</p>
<h2>解決法1: HTML側で直す</h2>
<h3>解決法1-1:改行を削除</h3>
<p>そのままですね。<br />
改行コードが原因なので、改行を削除してしまえば隙間が埋まります。</p>
<pre class="brush: xml;">&lt;ul&gt;
	&lt;li&gt;inline-blockのサンプル1&lt;/li&gt;&lt;li&gt;inline-blockのサンプル2&lt;/li&gt;&lt;li&gt;inline-blockのサンプル3&lt;/li&gt;&lt;li&gt;inline-blockのサンプル4&lt;/li&gt;
&lt;/ul&gt;</pre>
<p>問題は、横並び要素を1行にまとめて書くので、ソースの可読性が低下する可能性が高いこと。</p>
<h3>解決法1-2: コメントアウトを使う</h3>
<p>よくある解決法ですね。</p>
<pre class="brush: xml;">&lt;ul&gt;&lt;!--
	--&gt;&lt;li&gt;inline-blockのサンプル1&lt;/li&gt;&lt;!--
	--&gt;&lt;li&gt;inline-blockのサンプル2&lt;/li&gt;&lt;!--
	--&gt;&lt;li&gt;inline-blockのサンプル3&lt;/li&gt;&lt;!--
	--&gt;&lt;li&gt;inline-blockのサンプル4&lt;/li&gt;&lt;!--
--&gt;&lt;/ul&gt;</pre>
<p>こんなふうに改行部分をコメントアウトすれば、改行コードを隠すことができます。<br />
解決法1-1のように可読性は落ちることはないです。</p>
<h3>解決法1-3: 改行部分を変える</h3>
<p>こちらもよくある解決法。</p>
<pre class="brush: xml;">&lt;ul
	&gt;&lt;li&gt;inline-blockのサンプル1&lt;/li
	&gt;&lt;li&gt;inline-blockのサンプル2&lt;/li
	&gt;&lt;li&gt;inline-blockのサンプル3&lt;/li
	&gt;&lt;li&gt;inline-blockのサンプル4&lt;/li
&gt;&lt;/ul&gt;</pre>
<p>このように改行位置を本来の位置からずらすことで、li間で改行をしてないことにする方法です。<br />
こちらも解決法1-1のように可読性は落ちることはないです。</p>
<h2>解決法2: CSS側で直す</h2>
<h3>解決法2-1: letter-spacing で調整</h3>
<p>inline-blockを指定している要素とその親要素に以下の指定を加えるだけ。</p>
<pre class="brush: css;">ul{
	letter-spacing:-.40em;
}
li{
	letter-spacing:normal;
}</pre>
<h3>解決法2-2: font-size で調整</h3>
<pre class="brush: css;">ul{
	font-size:0;
}
li{
	font-size:16px;
	width:100px;
	vertical-align:top;
	display:inline-block;
	/display:inline;
	/zoom: 1;
}</pre>
<p>font-sizeをピクセルで指定しているので、IEで文字の拡大縮小ができません。<br />
IE7以降はページのズーム機能がついているので問題ないとは思いますが…。</p>
<h2>最終結果</h2>
<p>個人的には解決法2-1のサンプルが一番使いやすいなと思っています。<br />
基準にしたCSSと組み合わせると、以下のようになります。</p>
<pre class="brush: css;">ul{
	letter-spacing:-.40em;
}
li{
	letter-spacing:normal;
	width:100px;
	vertical-align:top;
	display:inline-block;
	/display:inline;
	/zoom: 1;
}</pre>
<p>記述はシンプルだし、横幅を変更するだけで流用できるので汎用性が高いと思います。<br />
解決法2-2でもいいのですが、修正箇所が解決法2-1に比べて1箇所増えるので次点としました。<br />
IEでの文字の拡大縮小がちょっと気になりますしね。</p>
<p>CSSで修正したほうがスマートな方法かと思いますが、CSSをいじれない場合もあるかもしれません。<br />
そういった場合には、HTMLをちゃちゃっといじっちゃってもオッケーだと思います。そこら辺は臨機応変に。</p>
<h3>Firefox 2 について</h3>
<p>inline-block 系の記事では、Firefox 2 用に display:-moz-inline-box; という指定がされているものが多いですが、Firefox 2 は、2008 年末で開発とサポートを終了しており、もう対象ブラウザからはずしちゃってもいいかなーと思っています。<br />
アップグレードできないなら他のブラウザ使ってねーとMozilla も言ってますし（参考ページ： <a href="http://mozilla.jp/firefox/download/older/">次世代ブラウザ Firefox – 旧バージョンのダウンロード</a> の下方）。</p>
<p>というわけで、Firefox 2 用の指定は削除してあります。<br />
そのため、Firefox 2 で見ると崩れているかと思います（display:inline-block; に対応していないため）。</p>
<p>もしFirefox 2 にも対応させたい場合は、ヨモツネットさんが公開してくれているスライドを参考にしてください。<br />
参考ページ： <a href="http://www.yomotsu.net/works/081016cssnite/">書籍などに紹介されていない display : inline-block について</a> （ヨモツネット）</p>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css007.html" rel="bookmark">cssでグラフを描く</a><!-- (10.8388)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css004.html" rel="bookmark">デフォルトスタイルのリセット</a><!-- (9.2585)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css009.html" rel="bookmark">table に指定しておきたい CSS メモ</a><!-- (5.24327)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css008.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>cssでグラフを描く</title>
		<link>http://www.understandard.net/css/css007.html</link>
		<comments>http://www.understandard.net/css/css007.html#comments</comments>
		<pubDate>Thu, 11 Dec 2008 03:50:38 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=45</guid>
		<description><![CDATA[css beautyで紹介されていたCSS Stacked Bar Graphsという記事で、下の画像のような棒グラフをcssと(x)htmlだけ描く方法が公開されていました。

このグラフは、縦軸と横軸部分を&#60;u [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css006.html" rel="bookmark">背景画像付きのボックス</a><!-- (10.4083)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css001.html" rel="bookmark">リストマーカーの表示位置を揃える</a><!-- (9.23826)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css008.html" rel="bookmark">display:inline-block; を使う</a><!-- (7.31316)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/inline-block" rel="tag">inline-block</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>css beautyで紹介されていた<a href="http://www.thewojogroup.com/2008/12/css-stacked-bar-graphs/">CSS Stacked Bar Graphs</a>という記事で、下の画像のような棒グラフをcssと(x)htmlだけ描く方法が公開されていました。</p>
<p><a href="http://assets.thewojogroup.com/csschart/"><img title="graph-image.gif" src="/images/post/css/007/graph-image.gif" alt="graph-image.gif" width="250" height="237" /></a></p>
<p>このグラフは、縦軸と横軸部分を&lt;ul&gt;、グラフ本体を&lt;dl&gt;で描いています。<br />
縦軸・横軸は単純に&lt;li&gt;を並べているだけなので割愛。</p>
<p>グラフ本体のhtmlは以下のように指定していく。</p>
<pre class="brush: xml;">&lt;dl&gt;
&lt;dt&gt;Mon&lt;/dt&gt;
&lt;dd class=&quot;p36&quot;&gt;&lt;span&gt;&lt;b&gt;36&lt;/b&gt;&lt;/span&gt;&lt;/dd&gt;
&lt;dd class=&quot;sub p30&quot;&gt;&lt;span&gt;&lt;b&gt;30&lt;/b&gt;&lt;/span&gt;&lt;/dd&gt;
&lt;/dl&gt;</pre>
<p>.subがついているほうが前面のグラフになり、.p30や.p36で高さを指定しています。<br />
cssの記述（一部）は以下の通り。</p>
<pre class="brush: css;">dl#csschart{
background:url(../images/bg_chart.gif) no-repeat 0 0;
width:454px;
height:360px;
padding-left:11px;
}
dl#csschart dt{
display:none;
}
dl#csschart dd{
position:relative;
float:left;
display:inline;
width:33px;
height:330px;
margin-top:22px;
}
dl#csschart span{
position:absolute;
display:block;
width:33px;
bottom:0;
left:0;
z-index:1;
color:#555;
text-decoration:none;
}
dl#csschart span b{
display:block;
font-weight:bold;
font-style:normal;
float:left;
line-height:200%;
color:#fff;
position:absolute;
top:5px;
left:3px;
text-align:center;
width:23px;
}
/* Styling the Bars. */
dl#csschart span{
height:50%;
background:url(../images/bar.png) repeat-y;
}
dl#csschart .sub{
margin-left:-33px;
}
dl#csschart .sub span{
background:url(../images/subBar.png) repeat-y;
}

dl#csschart .p0 span{height:0%}
dl#csschart .p1 span{height:1%}
dl#csschart .p2 span{height:2%}
dl#csschart .p3 span{height:3%}
dl#csschart .p4 span{height:4%}
dl#csschart .p5 span{height:5%}

/*This continues until 100%*/</pre>
<p>曜日ごとに&lt;dd&gt;を並べ、左揃えにしています。</p>
<p>これだけで充分きれいなんですが、文字のサイズを大きくすると後ろにあるバーの数字が読めなくなったり、縦横軸の数字が重なってしまったりします。<br />
heightやwidthをemで指定して、文字の拡大縮小に対応できるようにしたらいいのかな。</p>
<p>あと、何よりも致命的なのは、前に来ているバーのほうが大きい数字の場合、後ろにいるバーは見えなくなっちゃうんですよねｗ</p>
<p>全く同じ見た目でやろうとすると使えない方法になっちゃいますが、半分だけ重ねて、数字はちょっと離れたところに表示、のようにすれば「前年度との比較」みたいな棒グラフが簡単に描けちゃいますね。</p>
<p><a href="http://www.thewojogroup.com/2008/12/css-stacked-bar-graphs/">作者のページ</a>で画像入りのファイルをダウンロードできるので、気になった方はどうぞ。</p>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css006.html" rel="bookmark">背景画像付きのボックス</a><!-- (10.4083)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css001.html" rel="bookmark">リストマーカーの表示位置を揃える</a><!-- (9.23826)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css008.html" rel="bookmark">display:inline-block; を使う</a><!-- (7.31316)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/inline-block" rel="tag">inline-block</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css007.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>背景画像付きのボックス</title>
		<link>http://www.understandard.net/css/css006.html</link>
		<comments>http://www.understandard.net/css/css006.html#comments</comments>
		<pubDate>Mon, 01 Dec 2008 04:01:33 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=37</guid>
		<description><![CDATA[Colissさんのところで紹介されていたCSS Spriteのtipsがいいなぁと思ってpost。
CSS Spriteのメリットは複数の画像を1枚にまとめて作ることでHTTPリクエストを減らせたり、上手く組み合わせれば [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css007.html" rel="bookmark">cssでグラフを描く</a><!-- (9.427)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css001.html" rel="bookmark">リストマーカーの表示位置を揃える</a><!-- (9.23826)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css009.html" rel="bookmark">table に指定しておきたい CSS メモ</a><!-- (3.21777)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>Colissさんのところで紹介されていたCSS Spriteのtipsがいいなぁと思ってpost。</p>
<p>CSS Spriteのメリットは複数の画像を1枚にまとめて作ることでHTTPリクエストを減らせたり、上手く組み合わせれば画像のトータルサイズを減らせたりできること。<br />
個人的には管理する画像の数が減らせるのがうれしかったり（あんまり数が多くなりすぎると画像名見ただけじゃ何の画像か分からなくなってしまうんです…）。</p>
<p>ロールオーバー画像に使っていると、印刷時にFirefoxでおかしなことになるので、そういうところにはなかなか使いにくいです。<br />
印刷用のCSSでメニューを表示させなければ問題ないですけどね。</p>
<p>前置きはこんなもんで本題に。</p>
<p>CSS Spriteって、「アイコンとかロゴを1枚にまとめとけー！」みたいなイメージだったけど、<a href="http://coliss.com/articles/build-websites/operation/css/2356.html/trackback/">[CSS]一枚の画像で、四隅が角丸のパネルを実装するスタイルシート</a>という記事で紹介されていた使い方は、便利だなぁと思った。</p>
<p>具体的には、<br />
<img title="1imageresults.png" src="/images/post/css/006/1imageresults.png" alt="1imageresults.png" width="323" height="259" /><br />
このボックスを<br />
<img title="background2.gif" src="/images/post/css/006/background2.gif" alt="background2.gif" width="400" height="34" /><br />
をこの画像で作る。<br />
<a href="http://sebs.ng5.as/files/content2.html">作者のデモを見る</a></p>
<p>見れば分かるけど、構造はこのようになっている。<br />
<img title="struct.gif" src="/images/post/css/006/struct.gif" alt="struct.gif" width="350" height="250" /></p>
<pre class="brush: css;">div, hx, p{
background-image:url(img.png);
}
div{background-position:left bottom;
}
hx{
background-position:left top;
}
p{
background-position:right top;
background-repeat:repeat-y;
}</pre>
<p>今までこういうタイプのボックス作るときには、上・真ん中・下の3つの画像に分けて書き出してました。<br />
これが1枚の画像（box.gifみたいに）で作れれば、画像管理がちょっとだけ楽になるかも。</p>
<p>この使い方一般的だったらすいません…<br />
こんな賢い使い方あるなんて知りませんでした(-_-;)</p>
<p>このサンプルだと文字数とか文字サイズによって見出しが崩れますが、見出しの背景に色を付けないなど工夫をすればもっと使いやすいものを作れそうですね。<br />
もっとも、分かりやすくするために色を付けてるだけかもしれませんが。</p>
<p>全パーツを1枚にまとめるとパーツの追加・変更などがあったときに編集するのが面倒なので、1パーツ1画像みたいに使ったほうがよりスマートかなと思います。</p>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/css/css007.html" rel="bookmark">cssでグラフを描く</a><!-- (9.427)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css001.html" rel="bookmark">リストマーカーの表示位置を揃える</a><!-- (9.23826)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>.</span>
					</div>
				</li>
								<li>
					<a href="http://www.understandard.net/css/css009.html" rel="bookmark">table に指定しておきたい CSS メモ</a><!-- (3.21777)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/css" title="css の投稿をすべて表示" rel="category tag">css</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/css" rel="tag">css</a>+<a href="http://www.understandard.net/tag/tips" rel="tag">tips</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css006.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hasLayoutメモ</title>
		<link>http://www.understandard.net/css/css005.html</link>
		<comments>http://www.understandard.net/css/css005.html#comments</comments>
		<pubDate>Sun, 27 Jul 2008 14:08:33 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[haslayout]]></category>
		<category><![CDATA[IE7]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=22</guid>
		<description><![CDATA[IE7に付いたズーム機能を使って拡大・縮小したときにbodyに指定した背景画像が拡大・縮小されず、理由が分からず困ったことがありました。
「原因はhaslayoutの値がfalseになっているから」
隣にいた同僚にそう教 [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			
関連投稿はまだありません。
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>IE7に付いたズーム機能を使って拡大・縮小したときにbodyに指定した背景画像が拡大・縮小されず、理由が分からず困ったことがありました。</p>
<p>「原因はhaslayoutの値がfalseになっているから」<br />
隣にいた同僚にそう教えてもらってなんとかズーム機能に対応はできましたが、今後同様の事例が出た時に困らないようにメモ。</p>
<h2>でhasLayoutって何？</h2>
<p>hasLayout は IE 独自のプロパティで、各要素がレイアウト情報を持っているかどうかを示すもののようです。<br />
上に書いた背景画像の拡大・縮小時のバグはhasLayoutプロパティの値がfalseになっている場合に起こるそうです。</p>
<p>その他のバグの情報はMicrosoftの<a href="http://support.microsoft.com/kb/933053/ja">Internet Explorer 7 におけるズーム機能の問題</a>で紹介されてます。<br />
ここで回避策として ZOOM 機能を無効化するという方法が書かれていますが、本末転倒というか全く意味ないですｗ</p>
<p>とにかく、haslayoutの値がfalseになってるからバグるなら、値ををtrueにすればバグらないはず。<br />
cssで下の表に示すプロパティを指定すればhaslayoutに伴うバグを回避できます（参考：MSDN <a rel="nofollow" href="http://msdn2.microsoft.com/en-us/library/ms533776.aspx">hasLayout Property (A, ABBR, ACRONYM, &#8230;)</a>）。</p>
<table border="0" summary="hasLayoutの値をtrueにする指定">
<tbody>
<tr>
<th>プロパティ</th>
<th>値</th>
</tr>
<tr>
<td>display</td>
<td>inline-block</td>
</tr>
<tr>
<td>float</td>
<td>left もしくは right</td>
</tr>
<tr>
<td>height</td>
<td>any value</td>
</tr>
<tr>
<td>position</td>
<td>absolute</td>
</tr>
<tr>
<td>width</td>
<td>any value</td>
</tr>
<tr>
<td>writing-mode</td>
<td>tb-rl</td>
</tr>
<tr>
<td>zoom</td>
<td>any value</td>
</tr>
</tbody>
</table>
<p>これを使って一番てっとり早くバグを解消するには、</p>
<pre class="brush: css;">*{
zoom:1;
}</pre>
<p>を指定すること。</p>
<p>これを指定するだけで、拡大・縮小時のバグが解消されてハッピー！となれば良かったんですが、そうはいかないのがさすがIE…。</p>
<h2>*{zoom:1;}の落とし穴</h2>
<p>全称セレクタを使ってhaslayoutの値をtrueにしたら、今まで発生しなかったバグが発生してしまいました…。</p>
<p>記事を書いていたら、olのリスト番号が表示されない！<br />
zoom:1を指定するまではちゃんと表示されていたので、原因は間違いなくこれ。</p>
<p>それで調べてみたら、<a href="http://webtech-walker.com/archive/2007/11/27033016.html/trackback">hasLayoutプロパティがtrueで発生するバグ &#8211; Webtech Walker</a>で解説されていました。<br />
サンプルページもあり、非常にわかりやすかったです。</p>
<p>前の記事で全称セレクタについて書きましたが、全称セレクタを使うってことは二次災害的なデメリットが生まれるし、良くないんだなと改めて痛感しました。</p>
<p>そこで全称セレクタではなく、バグる要素にだけzoom:1を指定することでひとまず解決しました。</p>
<p>IE８からhaslayoutはなくなるらしいですが、ブラウザの移行がすんなり進むとも考えにくいので、これからもしばらくはhaslayoutに頭を悩ませることになりそうですね。</p>
<p><ins datetime="2009-10-20T08:42:26+00:00"><span>※2009年10月20日17時42分</span>　追加</ins></p>
<p>せっかくなので、haslayoutをfalseにする指定も。<br />
こちらは、毎度勉強させてもらってるヨモツネットさんから。<br />
<a href="http://www.yomotsu.net/lab/css/tips_haslayout-false">hasLayout を false にするには | ヨモツネット</a></p>
<table border="0" summary="hasLayoutの値をfalseにする指定">
<tbody>
<tr>
<th>プロパティ</th>
<th>値</th>
</tr>
<tr>
<td>display</td>
<td>block もしくは inline</td>
</tr>
<tr>
<td>float</td>
<td>none</td>
</tr>
<tr>
<td>height</td>
<td>auto</td>
</tr>
<tr>
<td>position</td>
<td>static もしくは relative</td>
</tr>
<tr>
<td>width</td>
<td>auto</td>
</tr>
<tr>
<td>writing-mode</td>
<td>lr-tb</td>
</tr>
<tr>
<td>zoom</td>
<td>normal</td>
</tr>
</tbody>
</table>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<p>関連投稿はまだありません。</p>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/css/css005.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
