如果我知道一個特定的類只會用於div或p,那麼通過指定div.class或p.class而不是.class來對性能產生最輕微的影響嗎?指定element.class {...}和僅僅.class {...}的性能增益?
回答
如果您有興趣測試這個自己,史蒂夫Souders的具有「CSS測試的創造者」,它可以讓你測試不同的CSS選擇器的速度:
http://stevesouders.com/efws/css-selectors/csscreate.php
我測試了.class
和a.class
使用10,000條規則和10,000個錨點。每次測試5次,我得到了以下結果:
+----------+-----------+----------+
| Test # | a.class | .class |
+----------+-----------+----------+
| 1 | 2915 ms | 2699 ms |
| 2 | 3021 ms | 2869 ms |
| 3 | 2887 ms | 3033 ms |
| 4 | 2990 ms | 3035 ms |
| 5 | 2987 ms | 2980 ms |
+----------+-----------+----------+
| AVERAGE | 2960 ms | 2923 ms |
+----------+-----------+----------+
正如你所看到的,.class
稍快,但不顯着所以(僅爲37微秒超過10000元)。然而,是使用.class
而不是tag.class
的原因,那就是靈活性。如果您有一堆<div class="content">
元素,您稍後更改爲<section class="content">
元素,則必須修改CSS,如果使用div.content
規則。如果您使用.content
,則不需要CSS更新。
一般來說,如果您有多個使用相同類的標記類型,並且您只想定位特定的標記類型,則只會使用tag.class
樣式選擇器。
我知道這不是問題,但它會影響特異性,所以在下面的示例中,innerClassFails不會覆蓋包含的tds,而table.innerClass會覆蓋它。
<style>
table.outerClass td {
color: red;
}
table.innerClass td {
color: green;
}
.innerClassFails td {
color: green;
}
</style>
<table class='outerClass'><tr><td><table class='innerClass'><tr><td>Hello!</td></tr></table></td></tr></table>
<table class='outerClass'><tr><td><table class='innerClassFails'><tr><td>Hello!</td></tr></table></td></tr></table>
'table.outerClass td' = 0012,'table.innerClass td' = 0012,'.innerClassFails td' = 0011 ...計算出的特異性告訴了所有人。 – War10ck
- 1. H2o模型性能指標和增益圖表定製
- 2. 性能增益屬性
- 3. C++/CLI性能增益
- 4. Ghostdriver的實際性能增益
- 5. 邊際的性能增益:: parallel_for時()
- 6. 是否可以選擇類和類&class,而不僅僅是class OR類或類?
- 7. 投影查詢,性能增益
- 8. CSS顯示性能增益:無或$ .remove()?
- 9. 僅以編程方式指定功能的易用性
- 10. ColdFusion〜Class不能是接口(僅限OSX)
- 11. 爲什麼class =「btn btn-default」而不是僅僅class =「btn-default」
- 12. 僅增量浮點型指數
- 13. 如何測量使用will-change屬性的性能增益
- 14. 分片EC2 EBS卷收益性能增益?
- 15. 如何驗證角JS的一次綁定性能增益?
- 16. ExecutorService沒有性能增益遞歸決定因素Java
- 17. jQuery驗證 - 僅指定errorPlacement
- 18. 結合SQL查詢簡化和性能增益
- 19. javascript class「chzn-select」不僅僅是一個類名嗎?
- 20. 「.class元素」和「element.class」之間有什麼區別?
- 21. 使用專門構建的操作系統的性能增益
- 22. 僅包含()特定屬性
- 23. 檢索整個對象的加入而不僅僅是性能
- 24. 視圖性能增益仍然與現代RDBMS相關
- 25. jQuery的元素[屬性=東西]對element.class性能
- 26. 多核應用程序中的性能增益問題
- 27. 索引減少讀取的行數;沒有性能增益
- 28. 並行性不提供任何性能增益
- 29. 幫助搞清楚性能增益的數學公式
- 30. 在一個UIVew中使用多個CALayer的性能增益
這將取決於CSS引擎的實現。是什麼讓你認爲所有的瀏覽器都以同樣的方式實現它? –
爲什麼要低調這個?這是一個合理的問題。 CSS性能是大型站點的一個重要問題。 – usr
@us不,它確實不是。您的CSS應該針對可維護性而不是性能進行優化。 – meagar