- 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
属性のようです。