このブログがおいてある親ディレクトリでは、ホームページ・ビルダーに関する解説をしております。
んで、当然のことながら、図を多用しています。1つのブロック要素の中に、プレーンテキストとimg要素が同時に使われているといった例もまれではありません。
例として、以下のような文章を用意してみます。
<p>リンクを貼るのには、 <img src="http://hpbuilder.net/pictures/v11/button/link.png" width="26" height="27" alt="リンクの挿入"> ボタンを使用します。</p>
なお、外部スタイルシートで以下の指定がされているとします。
*{
zoom : 1;
}
これをそのまま、Internet Explorer7で拡大・縮小をして閲覧すると、崩れます。画像と後に続くプレーンテキストが重なって、何が何だかわからなくなります。
- ズーム率:125%

- ズーム率:75%

- ズーム率:100%(デフォルト。このときは崩れない)

img要素に続くプレーンテキストにはzoom : 1; が効いていません。なお、この現象は、a、abbr、code、kbdといったインライン要素でも発生します。
エレガントではありませんが、以下のような方法で解決することにします。
<p>リンクを貼るのには、 <img src="http://hpbuilder.net/pictures/v11/button/link.png" width="26" height="27" alt="リンクの挿入"> <span>ボタンを使用します。</span></p>
つまり、後に続くプレーンテキストをspan要素でマークアップします。
こうすることで、拡大・縮小を行っても崩れなくなります。
- ズーム率:125%

- ズーム率:75%

どの要素にhasLayoutがデフォルトでtrueとなっているのかやhasLayoutをtrueにするためにどうすればよいのかは、msdnの以下のサイトを見ると良いでしょう。
http://msdn2.microsoft.com/en-us/library/ms533776.aspx
ちなみに、ホームページ・ビルダーでは、メニューの「書式」→「文字飾り」→「フォントスタイルの設定(SPAN)」でスタイルの設定画面を開いたら、そのまま「OK」ボタンをクリック。これで、span要素でマークアップされます。
でも、メニューで、b,i,s,uとかといった物理要素と同じところにあるんで使うのがためらわれます。
span厨になりそうな予感です。
正直、ブラウザのバグ対策でHTMLも変えなければいけないのが辛いです。

コメント (3)
> 正直、ブラウザのバグ対策でHTMLも変えなければいけないのが辛いです。
いや、全称セレクタを使わなければいいだけじゃないでしょうか…?
投稿者: kotarok | 2007年08月03日 01:51
日時: 2007年08月03日 01:51
問題の発生する要素にだけzoomプロパティを適用したとしても、バグはそのまま残ります。
投稿者: FUMING | 2007年08月06日 11:16
日時: 2007年08月06日 11:16
*{zoom : 1;}
を使うと、ol要素での表示もバグるとのこと。番号が消えたり、番号が1だけになったりということがあるそうです。
投稿者: FUMING | 2007年08月06日 11:55
日時: 2007年08月06日 11:55