[解決済み】スタイルの変更を伝播するために、WebKitに再描画/再塗装を強制するにはどうすればよいですか?
2022-04-02 01:27:33
質問
私はスタイルを変更するためにいくつかの些細なJavaScriptを持っています。
sel = document.getElementById('my_id');
sel.className = sel.className.replace(/item-[1-9]-selected/,'item-1-selected');
return false;
FF、Opera、IEの最新版では問題なく動作しますが、Chrome、Safariの最新版では失敗します。
たまたま兄弟である2つの子孫に影響します。最初の兄弟は更新されますが、2番目の兄弟は更新されません。2番目の要素の子もフォーカスを持ち、その子には <a> タグの中に、上記のコードを含む オンクリック 属性で指定します。
Chromeの「デベロッパーツール」ウィンドウで、ナッジ(例:チェックを外す & チェックする)すると 任意の 属性の 任意の 要素を使用すると、2番目の兄弟が正しいスタイルに更新されます。
WebKit が正しいことをするように、簡単かつプログラム的に「誘導」する回避策はありますか?
解決方法は?
複雑な提案もあれば、単純な提案も多く、うまくいきませんでしたが、ある提案へのコメントで バシル・ディンコフ は、再描画/再塗装を強制する簡単な解決策を提供し、うまく機能しました。
sel.style.display='none';
sel.offsetHeight; // no need to store this anywhere, the reference is enough
sel.style.display='';
ブロック」以外のスタイルで動作するかは、他の方のコメントにお任せします。
Vasilさん、ありがとうございます。
関連
-
[解決済み] 2つのdivを隣り合わせに配置するには?
-
[解決済み] このベベルボタンをCSSで実現するには?
-
[解決済み] bootstrap 4 でカードブロックの不透明度を変更する方法
-
[解決済み] モバイル端末でCSSを使用したフルハイトの背景画像
-
[解決済み] ReactJSを使ったインラインのフォントサイズスタイルの生成
-
[解決済み] codepenでfont awesomeを使用する
-
[解決済み] How do I style a <select> dropdown with only CSS?
-
[解決済み] .css()関数で追加したスタイルを削除するにはどうしたらいいですか?
-
[解決済み] Javascript / Chrome - webkitインスペクタからオブジェクトをコードとしてコピーする方法
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 他のブラウザが画像を読み込むときに、Chromeがエラー **Failed to load resource: net::ERR_NAME_NOT_RESOLVED** を発生させる。
-
[解決済み】divの重なりについて
-
[解決済み] "セレクタ(CSS)にIDを使うな "なら、IDの代わりに何を使えばいい?
-
[解決済み] <div style="display:none">によるテーブルデータの非表示。
-
[解決済み] font-face は OpenType 埋め込み許可チェックに失敗しました。パーミッションはインストール可能である必要があります。
-
[解決済み] iframe 要素の scrolling 属性は廃止されました。代わりにCSSを使用してください。
-
[解決済み] Chrome で注入されたスタイルシートによる奇妙なスタイリングが発生する
-
[解決済み] Bootstrap 3でnavbar-static-topは何をするのですか?
-
[解決済み] DjangoのCSSが更新されない
-
[解決済み] Atomエディタで透明な背景を設定する方法は?