4月
17
スタイルシートに回避策を適用したため、この記事で言及されている現象はこの blog では発生しません。
一つ前の記事を見ていて気づいたのですが、IE7 で表示させると、どうも <li> の表示が変なのです。Firefox 2.0.0.3 や Opera 9.20 では問題ありません。
どう変かというと、
- 左に表示される数字の縦方向の位置がおかしい。
- 1., 2., 3., … と数字が増えていくべきなのに、 1., 1., 1., … となっている。
ページを保存してスタイルシートを指定している部分を削除すると、(当然レイアウトは崩れますが)<li> の表示は正しくなるので、スタイルシートの問題ではないかと推測できます。スタイルシートの方も保存してちょっとずつ削っていくと、以下の部分が問題であるらしいことが分かりました。
#content div.post div.storycontent li {
margin-left: 30px;
width: 85%; /* これ */
}
なんでこれで…?
ともあれ、検証のために以下の HTML ファイルを書いてみました。せっかくなので <ol> だけでなく <ul> の場合も調べてみます。
<html>
<style>
.foo li { width: 100%; }
.bar li { }
</style>
<body>
<p>width プロパティがある場合</p>
<ol class='foo'>
<li>ほげ</li>
<li>ふが<br>ふが</li>
</ol>
<ul class='foo'>
<li>ほげ</li>
<li>ふが<br>ふが</li>
</ul>
<hr>
<p>width プロパティがない場合</p>
<ol class='bar'>
<li>ほげ</li>
<li>ふが<br>ふが</li>
</ol>
<ul class='bar'>
<li>ほげ</li>
<li>ふが<br>ふが</li>
</ul>
</body>
</html>
で、これを IE7, FF, Opera で表示させてみるとこうなります。

見事に IE7 だけ変です。ちなみに IE6 は手元に環境がないのでどうなるか分かりません。
しかし、なんで width プロパティでこんなことが起こるのかは謎ですね。変なところでバッファオーバーフローしてなきゃいいけど…
ともあれ、変だと言っているだけでは仕方がないので、スタイルシートに回避策を適用することにします。具体的には width プロパティをコメントアウトするだけ。これでとりあえず変な表示は回避できます。

no comment untill now