5

この質問は IE9 で既に尋ねられていますが、html テーブルのランダムな行に余分な列を追加しています。根本的な問題は、IE 10 で修正された IE 9 のバグのようです (ただし、多くの IE9 ユーザーがいます)。

通常、ajax を介して構築されたテーブルで発生すると述べていますが、html テーブルを出力する通常のページでこれが見られます。

回避策の Javascript ソリューションがありますが、答えは、(ajax 呼び出しから) Javascript を使用してテーブルを作成していることを前提としています。私は部分ビューを使用しています (または、場合によっては、通常の形式の html テーブルを 1 つのページに直接レンダリングするだけです) ので、単純に直接 html をレンダリングしているときに、IE9 でこの UI の問題を防ぐ解決策があるかどうかを調べたいと思いました。ページ。

維持するのが非常に難しいため、実際のコードに文字通り空白を持たないようにする必要はありません。

4

3 に答える 3

5

私はこの同じ問題に直面し、解決策を探してこのページにたどり着きました. 私の場合、ASP.Net 4 の Repeater コントロールによってレンダリングされた HTML に問題がありました。

サーバーが生成したコードを Charles で調べたところ、HTML に問題はありませんでした。

質問の最後の文は、私自身の簡単な解決策につながります。

維持するのが非常に難しいため、実際のコードに文字通り空白を持たないようにする必要はありません。

TR タグの開始タグと最初の TD タグの間、および各 TD タグと終了 TR タグの間にコメントを挿入するだけです。

<tr><!--
 --><td class="cell">
    Cell 1  
    </td><!--
 --><td class="cell">
    Cell 2  
    </td><!--
 --><td class="cell">
    Cell 3  
    </td><!--
 --><td class="cell">
    Cell 1  
    </td><!--
 --></tr>

このソリューションは、拡張機能を使用する必要がないことを意味し、将来的にコードを読んだり維持したりするのが難しくありません。

于 2014-03-07T22:48:36.013 に答える
0

空白をクリアする以外に、次の修正のいずれかを試すことができます。

  • CSS:td { white-space: nowrap; }該当する場合!

  • テーブルのレイアウトを固定する:

<table style="table-layout: fixed" width="600">
  <colgroup>
    <col width="100"><col width="300"><col width="200">
  </colgroup>
  <tr height="20">
    <td>...</td>
    <td>...</td>
    <td>...</td>
  </tr>
</table>
  • Web アプリケーションが既に IE8 をサポートしている場合は、次を使用して IE9 ユーザーに IE8 レンダリング エンジンの使用を強制できます。 <meta http-equiv="X-UA-Compatible" content="IE=8" />
于 2014-01-19T13:19:26.137 に答える