style属性でスタイルを設定するとimg要素の位置がずれる
症状
- style属性でスタイルを指定した要素の子要素に、style属性でスタイルを指定したimg要素があるとき
<X style="???"> <Y style="???"></Y> <img style="???"> </X>
- style属性でスタイルを指定した要素の後方に、style属性でスタイルを指定したimg要素があるとき
<X style="???"></X> <Y style="???"></Y> <img style="???">
このいずれかの条件を満たすとき、(前出の例で表すと)img要素がX要素の直前に置かれる。また、X要素に指定したスタイルはすべて無視される。
さらに、X要素開始タグとimg要素開始タグの中間にstyle属性でスタイルを指定した要素(Y要素)があるとき、Y要素に指定したスタイルも無視されることがある。
例示
<p>画<strong style="color:blue;">像</strong>→ <img src="/img/cssbug/nn4x/img02.png" alt="■" style="margin:0;"> ←画像</p>
画像→
←画像
strong要素とimg要素にstyle属性でスタイルを設定しています。
スクリーンショット
N7.1での表示
NN4.8での表示
補足
このバグが発生しているとき、親要素のマージンやパディングの指定が正しく反映されない状態になることがあります。
style属性を使用せず、style要素や外部スタイルシートを使用することでこのバグを回避できます。
修正状況
NN4.8で不具合の発生を確認しました。
関連記事
- 親要素で指定したスタイルが表要素に継承しない
- 親や祖先要素のレイヤーをスクリプトから認識できない
- 特定のスタイルを指定すると省略した終了タグが正しい位置に補われない
- clearでフロートへの隣接を禁止した要素がフロートに重なる
- アンカーにボーダーを設定するとアンカーとして機能しなくなる
- 画像アンカーのボーダーを消去できない
- マージン、ボーダー、パディングを設定したインライン要素の位置がずれる
- 画像を読み込まない設定下では背景画像と背景色の指定が無効になる
- 要素名に続けて書いた一意セレクタを認識しない
- 改行を挟まない連続した要素で直前の要素のfont-size値がfont-size算出に用いられる
- 実在しない開始タグがstyle属性を含む開始タグの直後に現れる
- line-heightの倍率指定で算出値が継承する
- border-colorの既定値とtransparent値に対応する色が#000000になっている
- head要素と子孫要素のdisplayプロパティを変更できない
- ボーダーとマージンを設定した要素内のフォント指定が無視される
- スタイル適用時にdt, dd, liなどの要素の内容物が無視される
- 背景やボーダーがブロック全体に表示されない
- fontプロパティで文法違反をするとブロック全体のスタイル指定が無視される
- 外部スタイルシート内の相対パスをリンク元文書からの相対パスとして扱う
- 表の背景色塗りつぶしが正常に行われない場合がある
- 存在しない外部スタイルシートを読み込むHTML文書をまったく表示できない
- 特定の条件下では、フレーズ要素を使用したページを表示できない
- ウィンドウをリサイズするとレイヤーの位置がずれる
- 画像が含まれる要素にline-heightを指定すると画像のレイアウトが狂う
- フォント名に2バイト文字が含まれるフォントを指定するとスタイルが無効になる
スポンサーリンク