Bug(バグ) #967
完了インフォメーション欄が空の場合、IE6でレイアウトが崩れる
100%
説明
Overview (現象)¶
information欄が空欄の場合、IE6でレイアウトが崩れる。
【参考画像】
http://kiwpon.tumblr.com/post/540633503/captured-with-gyamblr-for-windows-based-on
再現バージョン¶
- OpenPNE3.0.9-dev
- OpenPNE3.2.7-dev
- OpenPNE3.4.6-dev
- OpenPNE3.6beta1-dev
Causes (原因)¶
バグが発生した原因を記入
Way to fix (修正内容)¶
Minoru Takai さんが14年以上前に更新
.informationBox は、本文が書かれるボックス(div.informationBox > div.body)に対して、min-height: 1.2em が指定されていることで、本文が空の場合も 1.2em (line-height: 1.2 という指定に対応する一行の高さ) が確保されるように OpenPNE2.12.x で設計されています。
IE6 は min-height プロパティに対応していないため高さが確保されていません。min-height の代用として一般的に IE6 のみに対して height プロパティ(* html (selector) { height: (value) })が用いられますが、本件に対しては以下のスタイル指定によって解決させます。
- 次のスタイル記述を追加します。
* html .informationBox, * html .informationBox div.body { zoom: 1; }
今回は、任意の高さではなく、一行分が確保されればよいので zoom プロパティを用いて hasLayout 値を true にすることでレイアウト情報を持たせて最低限の高さを確保します(この方法で確保されるボックスの高さは、一行(=文字)の高さに依存します)。
また、レイアウト情報を持ったボックス(div.body)の親要素が hasLayout: false であると、IE6 では 3px ほど順方向(右方向)へボックスのズレが生じ、結果的に .informationBox の右側の枠線がなくなったように見えてしまいます(OpenPNE3 で実装されているドラッグによるボックスの位置移動などのきっかけで再描画されるとズレは直ります)。
.informationBox に対しても zoom プロパティを指定し hasLayout 値を true にすることで子要素 div.body のズレを解消します。
Minoru Takai さんが14年以上前に更新
note-2 で zoom プロパティのみによる対策を示しましたが、informationBox の中で高さを持たない要素(例えば空のdiv要素)が用いられると informationBox の高さが確保されないため、これを考慮して height プロパティの指定も併用することにします。
この併用は副作用がないと判断しているため、既に zoom プロパティのみによる対応を行ったバージョンに対しても height プロパティを追加する対応を行います。
Minoru Takai さんが14年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 4cbf8b3bb55c951703f5e00def44032c06c58565 で適用されました。
Shogo Kawahara さんが14年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Kousuke Ebihara さんが14年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更