だから私は JavaScript (jQuery) ウィジェットのセットを構築しています。これらのウィジェットのすべての要素が使用されていることを確認したいのですbox-sizing: border-box
(はい、これは IE バージョン 8 以降のみをサポートできることを認識しています。私は大丈夫です)。
a を実行するのは非常に遅いと聞きました[selector] > *
が、どれくらい遅いのでしょうか?
つまり、ウィジェットの 1 つだけに対して、すべての要素が正しいボックス サイズになっていることを確認するために、このセレクターがあります。
.jg-grid-wrap,
.jg-grid-content-outer-wrap,
.jg-grid-colum-actions a,
.jg-grid-content-wrap,
.jg-grid-wrap .hide,
.jg-grid-wrap ul,
.jg-grid-wrap ul li,
.jg-grid-header-wrap,
.jg-grid-header-wrap li,
.jg-grid-header-wrap .sort-indicator,
.jg-grid-row,
.jg-grid-row li,
.jg-grid-footer-wrap,
.jg-grid-footer-wrap .column-selection
.jg-grid-wrap .controls,
.jg-grid-wrap .controls .first-page-link,
.jg-grid-wrap .controls .previous-page-link,
.jg-grid-wrap .controls .next-page-link,
.jg-grid-wrap .controls .last-page-link,
.jg-grid-wrap .controls .column-selection-link,
.jg-grid-wrap .controls .set-page-link,
.jg-grid-wrap .controls .total-page-count,
.jg-grid-wrap .controls .record-counts,
.jg-grid-wrap .controls .record-display-text
{
box-sizing: border-box;
}
しかし、次のように書くだけで、はるかに小さくて簡単になります。
.jg-grid-wrap *
{
box-sizing: border-box;
}
また、要素を追加する場合は、それを巨大なセレクターに追加することを忘れないでください。スター セレクターを使用すると、心配する必要はありません。
[selector] > *
は本当に遅いので、考えられるすべての要素を個別にリストするのに時間をかける価値はありますか?
アップデート
最後に、私はただ行くつもりです:
[class^=jg-] *
{
box-sizing: border-box;
}
このセレクターは、Google Chrome に基づいて合計 4 ミリ秒の ~14% を持っています。その他は少し小さい (~4%) ですが、考えてみると、CSS はおそらくパフォーマンスについて心配する必要がある最後の場所になるでしょう (私の JavaScript とサーバー側のコードがボトルネックの大部分になります)。本当に CSS chrome プロファイラーを最適化する必要がある場合は、必要なときにそこにいます。