// 1、空间占据display:none;// 隐藏的元素不占文档流visibility:hidden;// 隐藏的元素空间存在(占茅坑、不拉屎)// 2、回流和重绘(reflow/repaint)display:none;// 隐藏参数回流和重绘visibility:hidden;// 无回流和重绘// 3、株连九族display:none;// 其内的标签元素全部隐藏、无论如何挣扎都无济于事visibility:hidden;// 其元素若添加visibility:visible;则会显示出来
overflow:hidden;// 溢出隐藏//若父级被添加了position属性、子级内添加了绝对定位、则不会被隐藏//火星人在地球触发了法律,如果火星人的老爸在这法律之外,则这个火星人啥事没有;否则,坐牢!
position:absolute;top:-999em;// 不占空间、无法点击position:relative;top:-999em;// 占内存、无法点击position:absolute;visibility:hidden;// 不占空间、无法点击opacity:0;filter:Alpha(opacity=0);// 占内存、可以点击
フォントサイズを変更する
スタイルシートを変更する
DOM操作
CSS疑似クラス
要素コンテンツの変更、特に入力コントロール
ウィンドウサイズの調整(サイズ変更)
width、clientWidth(コンテンツの表示領域サイズ)、offsetWidth(border+clientWidth)) 、scrollTop/scrollHeight (要素コンテンツの高さ/オーバーフロー コンテンツを含む)
により、ブラウザはプログレッシブ リフロー キューをフラッシュし、すぐにリフローを実行します
ページ リフローを減らす方法
スタイルを 1 つずつ変更することはできれば避けてくださいスタイル属性 cssText を永続的に変更するか、クラスを定義して className を一度に追加します
DOM のループを避け、documentFragment または div を作成し、それにすべての DOM 操作を適用し、最後に指定された要素に追加します
また、display:none; での DOM 操作ではリフローや再描画が発生しないため、display:none; 要素を操作することもできます。 offsetLeft などの属性を読み取るループを避け、ループの前に配置します。
そうしないと、親要素と後続の要素のリフローが大量に発生します