- AU : 実機(6年位前の)
- DoCoMo : i-modeシュミレーター2
- SoftBank : ウェブコンテンツヴューア・実機(2010年春機種)
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 |
- 註1:
というようにscreenメディアがあとに読み込まれるとscreenメディアで上書きされる。(screen以外のメディアであれば上書きされない)<link ~ media="handheld" /> <link ~ media="screen" /> - 註2:
としたとき後者を適応するので、@media規則を無視してスタイルシートを全て読み込んでると思われる。@media handheld{ body{ background-color: #000000; color: #FFFFFF; } } @media screen{ body{ background-color: #CCCCCC; color: #000000; } } - ※:一番最初の@importだけ読んでる? ただし最初の@importに
handheld以外のメディアが指定されていたら無視?
SoftBankは、@から始まる規則は駄目そう。@charsetに後続する指定を無視した辺りから推測するに、単なる無視ではなく解析エラーになってるような気がする。ビューアーだからかも。実機では対応していたので、機種によりそう。最新ならOK?AUは、ちょっとややこしげ。
元々わかっていましたけど、実用的なのは<link>か<style>、メディアごとに読み込ませるのはmedia属性のようです。