しらぎくモバイルシステム VIに於けるiモード向けXHTMLでの擬似枠線。

しらぎくモバイルシステム VIに於いて、第0.9500版(平成21年11月11日)から実装したiモード向けXHTMLでの擬似枠線機能についての解説です。

しらぎくモバイルシステム VIに於けるiモード向けXHTMLでの擬似枠線の概要。

この機能は、CSSで枠線を引く事が出来ないiモード向けXHTML対応端末で、指定されたブロックレヴェル要素について、設定に依り、要素の上下に擬似的に枠線のような横線を引く機能です。

iモード向けXHTMLでは、極めて限定された条件でCSSを利用する事が出来、その結果あらゆる要素への背景色の指定など表現力を増す事となりました。

しかし、利用出来る機能は極めて限定されたもので、例えば枠線を自由に引く事は出来ません。

  • 実はKDDI/沖縄セルラー用のモバイルブラウザも、インライン要素には枠線は引けないなどの制限がありますが、こちらは実装上の問題で、iモード向けXHTMLでのCSSは仕様上の問題となっております。

そうすると、KDDI/沖縄セルラー端末などとの表現の差が出てしまうため、何とかこの差を減らすべく、iモード向けXHTML端末に対しては擬似的に枠線のようなものを引く機能を導入したものです。

しらぎくモバイルシステム VIに於けるiモード向けXHTMLでの擬似枠線の使い方。(平成21年11月12日 更新)

擬似枠線サポートの対象となる端末。

擬似枠線をサポートしている端末は以下の通りです。

WAP 2.0向けCSSを用意している場合
iモード向けXHTML対応ドコモ端末に適用されます。
  • WAP 2.0携帯電話についてはCSSで枠線が引けるのでCSSで枠線を指定してください。
WAP 2.0向けCSSを用意していない場合
  • WAP 2.0携帯電話
  • iモード向けXHTML対応ドコモ端末

に適用されます。

尚、いずれの場合でもcHTML端末(旧世代機)に対しては適用いたしません

擬似枠線をサポートしている要素。(平成21年11月12日 更新)

第0.9500版(平成21年11月11日)現在、要素単位で擬似枠線を指定出来る要素は以下の通りです。

  • <h○>要素(見出し)
  • <blockquote>要素(ブロックレヴェル要素単位での引用)

第0.9508版(平成21年11月12日)現在、指定出来る要素は<table>要素, <marquee>要素及び<hr>要素を除く任意のブロックレヴェル要素となりました。すなわち、

  • <h○>要素(見出し)
  • <p>要素(段落)
  • <ul>要素, <ol>要素及び<dl>要素(リスト)
  • <div>要素(グループ化したブロックレヴェル要素)
  • <address>要素(連絡先情報)
  • <pre>要素(整形済みテキスト)
  • <blockquote>要素(ブロックレヴェル要素単位での引用)
  • <form>要素(入力フォーム)
  • <fieldset>要素(入力フォーム内のグループ)

などです。

指定方法は、

の二つがあります。

擬似枠線の設定方法。(平成21年11月12日 更新)

要素名での指定。(平成21年11月11日)

設定ファイル「KConfig.pl」内の初めの {} の間に,以下の文を入れます。

$borderColor{'要素名'}='色コード';
				$borderWidth{'要素名'}='枠の太さ';

このとき、

  • 要素名は半角小文字で書いたものを指定します。
  • 色コードはCSSで用いられる色のデータを記述します。
  • 枠の太さはピクセル単位(偶数推奨)とします。

クラス名またはIDでの指定。(平成21年11月12日)

設定ファイル「KConfig.pl」内の初めの {} の間に,以下の文を入れます。

クラス名で指定する場合
$borderByClass{'クラス名'}='色 太さ';

このとき、クラス名は指定したい要素に与えたclass属性の値となる文字列です。

IDで指定する場合
$borderByID{'ID'}='色 太さ';

このとき、IDは指定したい要素に与えたid属性の値となる文字列です。

いずれの場合も、値となる文字列は、

  • 色コード(CSSで指定出来る値) 太さ(正の整数・偶数推奨)

と二つの値を空白で区切ったものとします。

  • 太さは省略出来ますが、その場合は太さ 1と見なします。

尚、上記の指定は複数書いても構いません。

該当する指定が複数ある要素への扱い。(平成21年11月12日)

枠線指定で該当する要素が複数ある場合、

  1. IDでの指定
  2. クラス名での指定
  3. 要素名での指定

と言う優先順位となります。

尚、複数の枠線指定クラス名を与えている要素に対して、どのクラス名の定義が適用されるかは不定です。

  • このため、枠線を指定したクラス名を複数class属性値にするのは避けた方が良いでしょう。

しらぎくモバイルシステム VIに於けるiモード向けXHTMLでの擬似枠線についての注意事項。

枠線は<hr>要素で擬似的に表現されます
このため、携帯端末以外では枠線と要素の間が離れ過ぎるなど、見栄えに問題が生じる事もあります。
枠線は上下のみに引かれ、左右には引かれません
縦方向の線を引く要素がないためです。
  • だから擬似的と言う訳ですが。

実際に表示させた例。

この画面で見本として出しているうさ耳女子大生(堀北真希うさぎ)の紹介記事

モバイル版しらぎくさいと内のうさ耳女子大生の紹介記事を実際に表示させてみると、

  • iモード向けXHTML対応端末では、見出しの上下に山吹色の擬似枠線が
  • WAP 2.0対応端末では、CSSに依るスタイル指定に依り見出しの上下左右に山吹色の枠線が

それぞれ引かれます。

加えて、WAP 2.0 対応端末ではclass属性で特別に指定した要素について、緑色の枠が表示されますが、これもiモード向けXHTML対応端末では上下に緑色の擬似枠線が引かれる事で実現しているのが分かります。

  • 表示例はシミュレーションに依るイメージのため、実機では若干異なる場合があります。

しらぎくモバイルシステム VIに於けるiモード向けXHTMLでの擬似枠線についての解説。

iモード向けXHTML端末で無理矢理枠線のようなものを引かせるには、以下の二つの方法が考えられます。

テーブル(表)を利用する
かつて、CSSが普及するまでPC向けのHTML文書でも行われていた方法ですが、通常、テーブルの枠線は立体的なデザインとなっているため、要素への装飾用には向いていない場合があります。
横罫線で上下だけ表現する
<hr>要素(横罫線)については、こちらも立体的なデザインとなりますが、それをなくすための属性もあり、それを用いる事でテーブルより見た目が良い枠線となります。但し横方向のみですので、左右の枠線を引く事は出来ません。

今回制作者が採った方法は、後者の横罫線を擬似的に用いる方法です。

表を使えば上下左右に枠線が引けますが、枠線のデザインがどうしても違和感を感じるため(色に濃淡が出るなど)、色の濃淡を消せる横罫線を採る事にしたのです。

最後に。

平成21年 5月以降、漸くエヌ・ティ・ティ・ドコモもCSSに対応したiモードブラウザ 2.0搭載端末をリリースするようになりましたが、今後も当分の間従来のiモードブラウザ 1.0搭載端末が並行して出されるであろう事と、かつてのように簡単に機種変更がされ難くなりつつある事から、2.0端末への完全な移行はまだまだ先の事と考えられます。

つまり、今後もiモード向けXHTMLのサポートを続ける必要があると言う事になります。

一方、本来あるべき作法と言える、CSSでのサイトデザインを行おうとすると、iモードブラウザ 1.0搭載端末での見栄えがKDDI/沖縄セルラーなどCSS対応端末と較べると見劣りすると言う問題があります。

  • このため、今日でも携帯電話向けサイトではCSSを使わないようクライアントから依頼される事もあるそうです。

そうすると、KDDI/沖縄セルラー端末などとの表現の差が出てしまうため、せめて何とかこの差を減らすべく、iモード向けXHTML端末に対しては擬似的に枠線のようなものを引く機能を導入したものです。

  • 旧世代専用のコンパクトHTMLについては、旧世代機が現行機に切り替わりつつある現状から、無理してサポートする必要はないと考えました。ただでさえパケット料金を考慮する必要がある旧世代機の場合は、装飾のためにパケット代を余計に払わせるのは却って良くないとも思われます。

尚、これと全く同じ考えから、第0.9510版(平成21年11月12日)にはiモード向けXHTMLでのリスト項目マーカの機能も追加しました。

それにしても、本音を言えば、何で未だにこんな真似をしなければならないのかと思います。CSSがあれば何の手間も掛からずに多彩なデザインが出来るのに…。