当ブログは移行しました。

http://www.symmetric.co.jp/blogに移行しました。
5秒後に自動的に移動します。
移動しない場合はこちらをクリックしてください。

携帯サイト実践ノウハウ:auで発生する「画像の隙間問題」を解消する

ブロック要素に背景色を付けるデザインは、ページにメリハリを付けるのに効果的なのでよく使われますが、auではたびたび「隙間発生問題」という意図通りの表示がされない問題にも遭遇します。



詳しくはsympleブログのエントリーで解説されていますが、このエントリではラウンドアバウトが用意している拡張タグ
  • <ra:field></ra:field>
  • <ra:area></ra:area>
を使った実例を紹介します。この拡張タグを使うことで、キャリアによってdivとtableを書き分けるという煩雑なことをせず、シンプルなソース記述で隙間の発生を防ぐことができます。隙間が消せないというデザインの限界・制約を乗り越えられるので、画像同士やブロック要素を隙間なく並べたデザインが簡単にできるようになります。




隙間を解消するラウンドアバウトの拡張タグ「ra:field」「ra:area」は、端末グループによって次のように言語変換されます。

・<ra:field>

au(テーブル対応するWIN端末)
それ以外
<table border="0" cellpadding="0" cellspacing="0">
<div>

・</ra:field>

au(テーブル対応するWIN端末)
それ以外
</table>
</div>

・<ra:area>
au(テーブル対応するWIN端末)
それ以外
<tr><td>
</div>

・</ra:area>
au(テーブル対応するWIN端末)
それ以外
</td></tr>
</div>

それでは、冒頭の隙間が発生してしまうHTMLソースを、拡張タグを使った書き方に変えてみましょう。手順は以下の3点で、大掛かりにHTMLを書き換えることなく使うことができると思います。
  1. 背景色付きのブロック(div要素)に接する画像のimg要素をra:area要素で囲む
  2. 背景色付きdiv要素をra:area要素に置き換える
  3. 画像・背景div・画像・・・と続く一連の要素全体をra:field要素で囲む

(隙間が発生するソース)
<body>
<img src="image/beach.gif" />
<div style="background-color:#33CCFF">
 <div class="center">
 &#xE63E;<span style="color:#000066;">8月のレジャー情報</span>&#xE63E;<br />
 <br />
 <a href="#">北海道・東北</a><br />
 <a href="#">関東・甲信越</a><br />
 <a href="#">東海・北陸</a><br />
 <a href="#">関西</a><br />
 <a href="#">中国・四国</a><br />
 <a href="#">九州・沖縄</a><br />
 </div>
</div> 
<img src="image/sea.gif" />
<div style="background-color:#0066FF">
 <div class="center">
 &#xE65F;<span style="color:#FFFF00">交通情報</span>&#xE65F;<br />
 <br />
 </div>
</div>
</body>

(拡張タグによって隙間を解消したソース)
<body>
<ra:field>
<ra:area><img src="image/beach.gif" /></ra:area>
<ra:area style="background-color:#33CCFF">
 <div class="center">
 &#xE63E;<span style="color:#000066;">8月のレジャー情報</span>&#xE63E;<br />
 <br />
 <a href="#">北海道・東北</a><br />
 <a href="#">関東・甲信越</a><br />
 <a href="#">東海・北陸</a><br />
 <a href="#">関西</a><br />
 <a href="#">中国・四国</a><br />
 <a href="#">九州・沖縄</a><br />
 </div>
</ra:area>
<ra:area><img src="image/sea.gif" /></ra:area>
<ra:area style="background-color:#0066FF">
 <div class="center">
 &#xE65F;<span style="color:#FFFF00">交通情報</span>&#xE65F;<br />
 <br />
 </div>
</ra:area>
</ra:field>
</body>

拡張タグを使って表示した結果がこちらです。3キャリアで見ても同じように画像と背景が馴染んだデザインをすることができました。


0 コメント:

コメントを投稿