携帯電話CSS読み込み対応表

up:

body{ background-color: #000000; color: #FFFFFF; }が適応するかどうかで判断しました。DOCTYPEはXHTML Basic 1.0で、MIMEタイプはapplication/xhtml+xml。MIMEタイプがtext/htmlだとDoCoMo(i-mode1)ではスタイルシートは全て適応されない仕様です。

読み込み方 AU(実機) DoCoMo(i-mode1) DoCoMo(i-mode2) SoftBank(ヴューア) SoftBank(実機)
<element style="background-color:#000000;">
style属性(XHTMLの仕様上NG) OK OK OK OK OK
<style>element{background-color:#000000;}</style">
style要素(XHTMLの仕様上NG) OK OK OK OK OK
<link rel="stylesheet" href="style.css">
link要素(メディア属性なし) OK NG OK OK OK
<link rel="stylesheet" href="style.css" media="handheld">
link要素(メディア属性1つ) OK NG OK 註1 OK
<link rel="stylesheet" href="style.css" media="screen,handheld">
link要素(メディア属性複数) OK NG OK 註1 OK
@media handheld{ background-color:#000000; }
@media規則(メディア1つ) 註2 NG OK NG OK
@media handheld,screen{ background-color:#000000; }
@media規則(メディア2つ) 註2 NG OK NG OK
@import url("handheld.css");
@import規則(メディアなし) NG OK NG OK
@import url("handheld.css") handheld;
@import規則(メディア1つ) NG OK NG OK
@import url("handheld.css") handheld,screen;
@import規則(メディア2つ) NG OK NG OK

SoftBankは、@から始まる規則は駄目そう。@charsetに後続する指定を無視した辺りから推測するに、単なる無視ではなく解析エラーになってるような気がする。ビューアーだからかも。実機では対応していたので、機種によりそう。最新ならOK?AUは、ちょっとややこしげ。

元々わかっていましたけど、実用的なのは<link><style>、メディアごとに読み込ませるのはmedia属性のようです。