参考資料・オープンウェーヴ社が定めているCSSのプロパティ。
EZウェブ端末が実装しているオープンウェーヴ社のモバイルブラウザに実装されているカスケーディングスタイルシート(CSS)について解説します。
ソフトバンクなど、オープンウェーヴ社以外のユーザエージェントを実装するキャリアもありますが、オープンウェーヴ社の実装は最大公約数的なもの、すなわちどのCSS対応ユーザエージェントでも実装されている筈のものと思われます。
- 参考資料・オープンウェーヴ社のXHTML モバイル・プロファイルもご一読下さい。
オープンウェーヴで使えるCSSのセレクタ。
オープンウェーヴで使えるCSSのセレクタには、以下のものがあります。
- 全称セレクタ(汎用セレクタ)
- 要素セレクタ(タイプセレクタ・型セレクタ)
- クラスセレクタ
- IDセレクタ(一意セレクタ)
- 下位セレクタ(子孫セレクタ)
- 直下セレクタ(子セレクタ)
- <a>要素の擬似クラス(
:link擬似クラスと:visited擬似クラスのみ)
尚、属性セレクタ及び隣接セレクタなど、WAP 2.0では利用出来ないセレクタがあります。
また、クラスセレクタについて、複数クラスの同時指定をサポートしておりません。(平成18年12月19日)
オープンウェーヴで使えるCSSのプロパティ。
オープンウェーヴ社で使えるCSSのプロパティには、以下のものがあります。
非公式に実装されたCSSのプロパティ。
仕様書には載っておりませんが、display: noneプロパティも有効です。
つまり、display: noneプロパティを活用して、PC向けのコンテンツを非表示にする事も可能です。
- displayプロパティは後述のWAP 2.0独自のプロパティでも利用されます。
WAP 2.0独自のプロパティ。
公式なWAP 2.0でのCSSには、以下のプロパティも定義されております。
これらは、W3Cが策定した一般のCSS仕様には無いもので、従ってPCのブラウザではエラー(無効)になるものです。
- オペラ 7.x以降では、一部を除いて実装されているようです。
オープンウェーヴ社のCSSに見られるバグ。(平成19年 9月 9日)
オープンウェーヴ社のブラウザは、他のCSS対応ブラウザに較べるとCSSの実装が今ひとつと言えます。
以下、制作者が気付いた重要と思われるバグを挙げておきます。
オープンウェーヴ社のブラウザに見られる、要素に絡むCSSのバグ。
- <hr>要素にはmarginプロパティが効かないようです。
- <h○>要素にはfont-sizeプロパティが効かないようです。
- borderプロパティ群で、上下左右の一部だけを指定する場合、正常に機能しないようです。
- インライン要素には、左右のmarginプロパティとpaddingプロパティ及びborderプロパティ群が一切効きません。
この他にも結構バギーな面があるようです。勿論、旧来の物理要素・属性でのデザイン以上の事は問題無く出来るのですが。
オープンウェーヴ社のブラウザに見られる、@import規則のバグ。(平成19年 9月 9日)
オープンウェーヴ社のブラウザでは、@import規則で別のスタイルシートをインポートしようとしてもインポートされず、従って@import規則が認識されないように見えますが、実際にはインポートを試みております。
しかし、その際にバグが原因で正しいスタイルシートにアクセスしようとせず、結果的にインポートに失敗するのです。
具体的には、
- オープンウェーヴ社のブラウザでは、@import規則で指定されるスタイルシートへの相対パスは、@import規則を記述しているスタイルシート基準ではなく、そのスタイルシートをリンクしているHTML文書基準
となっているのです。
例えば、
@import "sub.css";
と言う@import規則を含めたスタイルシート www.hoge.net/style/main.css をHTML文書 www.hoge.net/mobile/index.html からリンクした場合、オープンウェーヴ社のブラウザではこの sub.css を元のスタイルシートのパス基準である www.hoge.net/style/sub.css ではなく、HTML文書基準となる www.hoge.net/mobile/sub.css から取得しようとします。
偶々そのURIで示されるスタイルシートがあればそれがインポートされる筈ですが、スタイルシートなどそう沢山作る訳も無いので、大抵は Not Found エラーとなってインポートに失敗すると言う訳です。
- 特に全てのスタイルシートをHTML文書とは完全に別のディレクトリに設置している場合には絶対にインポートされない事となります。
- このバグは恐らく知られていると思われますが、制作者はアクセス解析を見ていてこのバグの存在に気づきました。
オープンウェーヴ社のバグ対策。(平成19年 9月 9日)
- 左右のmarginプロパティ及びpaddingプロパティは下手に設定すると、もじら系ブラウザ, オペラ及びネットフロントなどを搭載した端末(PC, ウィルコム, ソフトバンクなど)で逆に正常に表示出来なくなります。
ですから、左右のmarginプロパティ及びpaddingプロパティは設定しない方が賢明でしょう。
- 逆にもじら系ブラウザ, オペラ及びネットフロントなどを搭載した端末(PC, ウィルコム, ソフトバンクなど)でより精密なスタイルを定義したい場合は、@import規則を活用して別ファイルにします。
オープンウェーヴ社のブラウザは@import規則を認識しません。- このとき、HTML文書のディレクトリに同名のスタイルシートは置かないようにします。置いた場合、HTML文書のディレクトリ階層に依ってはそのスタイルシートが読み込まれる場合があるからです。出来ればスタイルシートはHTML文書とは完全に分離した専用のディレクトリに収めると良いでしょう。