1

ユーザー入力に基づいて動的に作成されるテーブルがあります。つまり、ユーザーはテーブルにデータを入力し、行にあるフィールドの数などを決定します。したがって、データの長さを制御することはできません、およびレイアウトの制限された制御。私はまだFF、Chrome、Safariでうまく動作するものを構築することができましたが、IE8とIE9で厄介な問題に遭遇しています. 問題のテーブルセルに次の css を含めます。

td.dc {
    white-space:normal;
    -ms-word-wrap: break-word;
    max-width: 80em;
}

IE はこれら 3 つのタグをすべて無視し、行全体にわたって続行します。セルの内容を div でラップし、css を div に適用すると、IE9 では機能しますが、IE8 では機能しません。IE8 では、テキストは実際には 80 em の後に折り返されますが、セルは折り返されていない行に収まる十分な幅でレンダリングされるため、テーブル内の他のすべてが押し出されます。これを回避する方法はありますか?

[編集] 壊れている特定のケースを説明するために jsfiddle を作成しました: http://jsfiddle.net/qz3rv/3/ (バグレポートから明らかではなかったのは) 特定のケースだけが壊れているように見えるということです- -おそらく、データ内の / と関係があります。

4

1 に答える 1

1

投稿されたコードは、最小限の HTML 環境でテストした場合、標準モードの IE で動作します。したがって、コードはQuirks Modeで実行されるようです。<!doctype html>そのため、HTML ファイルの先頭に追加してみてください。

80emテスト用よりも本質的に小さい値を使用することを検討してください。white-space:normalデフォルトを再確認するだけで-ms-word-wrap: break-wordあり、その標準的な対応物は、特定の例外的な規則で単語を壊す(通常の書き方規則に違反する) ことを意味するため、避ける必要があることに注意してください。

また、表の列幅は扱いが難しいため、特定の問題を説明するには、表のマークアップと関連する CSS を表示する必要があることに注意してください。

于 2012-09-18T17:20:35.767 に答える