CSS でルールをグループ化すると、解析とレンダリングのパフォーマンスにどのような影響があるのか 疑問に思っていました。
アプローチ 1:
.class1 {
margin: 10px;
padding: 20px;
color: #ccc;
}
.class2 {
margin: 10px;
padding: 30px;
color: #ddd;
}
.class3 {
margin: 20px;
padding: 30px;
color: #eee;
}
.class4 {
margin: 20px;
padding: 20px;
color: #fff;
}
対アプローチ2:
.class1,
.class2 {
margin: 10px;
}
.class3,
.class4 {
margin: 20px;
}
.class1,
.class4 {
padding: 20px;
}
.class2,
.class3 {
padding: 30px;
}
.class1 {
color: #ccc;
}
.class2 {
color: #ddd;
}
.class3 {
color: #eee;
}
.class4 {
color: #fff;
}
もちろん、同じルールのグループ化を持つ大きな css ファイルについて話しているため、同じセレクターが多数のチャンクに断片化されることがあります。
css の解析とレンダリングに大きな影響を与え、このアプローチを放棄してより大きなファイルを優先しますが、すべてのルールを 1 つのセレクターにまとめてクリーンにしますか?
セレクターのマッチングはコストがかかる場合があります。実際のケースでは、これらの各セレクターは 1 つのクラスではなく、2 ~ 3 個のネストされたクラスです。そのため、すべてのルールを適用するには、要素ごとにブラウザーがセレクターを 3 回一致させる必要があります。最初にマージン、次にパディング、次に色を適用します。2 番目のアプローチは非常にコストがかかるようです。