2

私はcssを使った簡単なテーブルを持っています。真ん中の行に下の境界線を追加すると、次の行に奇妙な境界線が表示されます。それはクロムでのみ発生し、その理由はわかりません。

javascriptを使用して中央の行に下の境界線を適用します(テーブルのサイズが事前にわからないため)。私はjavascriptなしで適用しようとしましたが、奇妙な問題なしで動作します.

以下はテーブルの例です。中央の境界線に注目してください: http://ri-cloud.appspot.com/super_tacticko?create

真ん中の行を作成するために使用しているjavascriptは次のとおりです。

// add the middle line
var half = height / 2; // it has to be zugi anyway
var $middle = $('tr').slice(half-1, half);
$middle.find('td').addClass('middle-td');
4

3 に答える 3

3

ウィンドウのサイズを変更すると問題が解決する場合(私の場合もそうですが)、レンダリングのバグである可能性があります... Chromeには、主に他のすべてよりも高速にしようとするために、時々発生するこれらの問題がいくつかあります角を切ることによって(imo)。

バグを回避する唯一の方法は、問題を引き起こさないアプローチが見つかるまでさまざまなアプローチを試し続けるか、作成後にテーブル/本体のサイズをプログラムで変更してから、適切なサイズに戻すことです。 —これにより、Chromeが正しく再描画される可能性があります...ユーザーが気付かないほど迅速に実行されるはずです。3番目のアプローチは、テーブルを完全にJavaScriptで作成し、適切に形成されたら、それをページに埋め込むことです。

CSSメソッドがおそらく機能する理由は、JavaScriptスタイルの変更とは異なるレンダリングプロセスのポイントでChromeのレンダリングメソッドを使用するためです。

基本的に、私はChromeがかなり奇妙なことをするのを見てきました。Chromeの奇妙な問題を回避するために過去に使用したハックは、次のとおりです。

  1. 寸法計算に小数を使用します—つまり30.1px、代わりに30px
  2. 不透明度を完全に設定しない—つまり0.991.0
  3. .Cookieを設定するときに接頭辞aが付いたIPアドレスを使用しない
  4. overflow: hidden特定の状況で奇妙なレンダリングを修復するために使用します。


ああ、私がChromev25.0.1364.97経由でWindows7で表示している記録のためだけに

于 2013-03-05T09:00:37.823 に答える