@charset "UTF-8";


/* ブロック要素のデフォルト・スタイルをリセット。 */
/* fieldsetは、なんとなく除外しておく。 dir、menuなどのdeprecatedな要素も除外。 */

body, div, p, hr, blockquote, pre, adress,
dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6,
table, tr, th, td, caption, col, colgroup, thead, tfoot, tbody,
form, map, embed, object, iframe, noframes, script, norscripts {
	margin: 0px;
	padding: 0px;
	text-align: left;
}

table, th, td, img { border: 0px; }


/*1*/
p, hr, blockquote, pre, adress,
dl, dt, dd,
h1, h2, h3, h4, h5, h6,
embed, object { zoom: 1; }
span, label { zoom: 1; }

ol { padding-left: 2em; }
/* li { vertical-align: top; } */

/*2*/
html, body { height: 100%; }

/*3*/
html:not([lang*=""]) { overflow-y: scroll; }
html:not(:only-child:only-child) { /* Safari */
	min-height: 100%;
	padding-bottom: 1px;
}

/*4*/
body { text-align: center; }

/*5*/
object, embed { vertical-align: top; }

/*6*/
.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.clearfix { display: inline-block; }
/* Hides from IE-mac \*/
* html .clearfix { height: 1%;}
.clearfix {display: block;}
/* End hide from IE-mac */


/*
---------------------------------------------------------------------------
1.
「IEでhasLayoutの値がtrueの要素とfalseの要素が混在するとユーザがズームを変
更した際に要素が重なってしまう。また、flaotした要素の周辺の要素のhasLayout
の値がfalseのとき、marginやpaddingの解釈がおかしい」というバグを回避。
zoomプロパティ（IEの独自拡張のためinvalidですが）を指定することで、必要な要
素のhasLayoutをtrueにします。
body、img、input、table、tdは、もとから常にtrue。
参考： http://msdn.microsoft.com/en-us/library/ms533776(VS.85).aspx

単純に「* { zoom: 1; }」だと問題が生じます（下記URL参照）。
そこで、ここで採用している方法では、img要素やinput要素の後のプレーンテキス
トをspan要素またはlabel要素でマークアップする必要があります。
また、div要素等には、必要な場合に個別にzoom: 1を指定することとし、このスタ
イルシート内では指定しません。
参考： http://hpbuilder.net/weblog/2007/08/07123842.html
参考： http://likealunatic.jp/2007/09/16_zoom1.php

続くリスト関連の指定は、いずれもやはり、IEのhasLayout関連のバグ対処。

「hasLayoutがtrueなol要素で、リスト番号が消えてしまう」バグ。消えてしまった
番号を出すために左側にpaddingをとります。
参考： http://hpbuilder.net/weblog/2007/08/06203819.html

「li要素ないしその子孫要素におけるhasLayoutがtrueである場合、リストマーカが
下方にずれる」バグ。hasLayoutがtrueになってしまう状況は、例えばfloatを利用
した場合。li要素内でimg要素をfloat: leftする等。
参考： http://end-of-file.net/blog/2008-11.html


2.
Firefoxでswfなどを縦100%でレンダリングさせる場合、「height: 100%;」が必要。


3.
FireFoxでは、コンテンツが少ない場合に縦スクロールバーが消えてしまい、ページ
移動の際にセンタリングがずれることがあります。これを防ぐために、縦スクロー
ルバーを常に表示させておきます。
IEでは縦スクロールバーが二重に表示される場合があるため、FireFoxのみに有効な
セレクタで記述しています。（要検証：このCSSハックは正しく機能しているか？）
なお、Operaにも同様の問題がありますが、ここではあきらめています。どうしても
必要な場合は下記。
html:first-child body {
	min-height: 100%;
	padding-bottom: 1px;
}


4.
IE6のquirkモードで margin: auto; によるセンタリングができないバクの対策。
後続の子ブロック要素で text-align: center; を指定して左寄せに戻す必要あり。


5.
FireFoxでembed要素、Operaでobject要素の下に余白ができてしまう問題を回避。


6.
floatしたブロック要素の高さはその親要素の高さには反映されないため、親要素の
高さの方が小さい場合には、親要素に指定したborderやbackground-imageが、意図
に反して途切れてしまう（floatした子要素がはみ出してしまう）ことがあります。
（これはCSSの解釈としては正しいのでバグではない。）
親要素のクラスに上記で設定したclearfixを指定することで、この問題を解消しま
す。
---------------------------------------------------------------------------
*/



/* プリンター関連
---------------------------------------------------------------------------
*/

/* プリント時以外は表示しない要素。 */
.printOnly { display : none; }

/* プリンタ用指定 */
@media print {

	/* overflowにvisible以外を指定した要素も印刷されるように。 */
	* { overflow: visible; }

	/* プリントされず、レイアウトからも消える要素。 */
	.noPrint { display: none; }

	/* プリントされないものの、レイアウトには影響を与える要素（単なる非表示）。 */
	.noPrintContent { visibility: hidden; }

	/* プリント時以外は表示しない要素。＝プリント時のみ表示する要素。 */
	.printOnly, div.printOnly { display: block; }
	span.printOnly, label.printOnly { display: inline; }
	table.printOnly { display: table; }
	tr.printOnly { display: table-row; }
	td.printOnly { display: table-cell; }

}
