AtoZ 時々 鬱な日記

Open / Close

docomoのCSS

04. Webデザイン 2009年4月23日 木曜日 19:34:14

docomoのcssはクセがある…というか使えない。


<?php header("Content-type: application/xhtml+xml;charset=euc-jp");?>
を書かないと、cssが使えない。
使えるようになってもインラインのみだが…
doctype以下はこんなにした。
よく解ってない…。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "https://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="content-type" content="application/xhtml+xml;charset=euc-jp" />

iモード対応XHTMLは、CSSの外部参照に対応していない。よって、link要素で拾ってきたCSSは適用されず、すっぴん(デフォルトスタイル)で表示される。内部参照も、a:link, a:visited, a:focusに限り対応しているとしている。
よって、基本的にはインライン、つまりstyle属性でやることになる。また、HTMLファイルのMIME タイプがtext/htmlだとスタイルは適用されない。application/xhtml+xmlにする必要がある。逆に、application/xhtml+xmlであれば、XHTML 1.0 Transitionalで書かれた文書のスタイルも適用される。サンプルはXHTML 1.0 Transitionalで書いている。
iモード対応HTML-XHTML比較表(NTT DoCoMo)にあるように、iモード対応XHTMLは、iモード対応HTMLでできることをXHTMLっぽく書き換えたらこうなりますよ、というもののように見える。style属性にスタイルを記述する場合は、iモード対応HTML-XHTML比較表を見た上で、どの要素のstyle属性に何が書けるのかを確認する必要がある。
たとえば、p要素にcolorやbackground-colorを指定しても適用されない。この場合は、p要素内のspan要素にcolorやbackground-colorを指定するとうまくいく。

…a要素に色をつけたいとき、
<a href="#">
<span style="color:red;">hoge</span>
</a>

とすれば、リンクの部分に思った色(この場合red)がつくと思いきや、
いや、つくのだが、今度はsoftbankとかでリンクの色がデフォルトになってしまう。
ので、
<a style="color:red;" href="#">
<span style="color:red;">hoge</span>
</a>

とかってしなきゃいけないのか??
めんどくせぇ
IEといい、docomoといい、何故にシェアNo1の規格が一番おかしいのか、
問いただしたい。

Write comment