我正在研究如何優化css性能,並想知道它們是否是一個將複雜選擇器轉換爲更簡單的選擇器的現有工具。CSS選擇器優化
該工具將查看所有css規則並創建包含所有適當屬性的唯一單路徑選擇器。它會比查看每個dom節點並搜索任何css匹配,並且如果找到了某個節點,它會將簡化的選擇器添加到該節點。所呈現的CSS僅包含簡化版本,並且html仍然具有原始類/ ID,因此現有設置不會中斷。
一個誇張的例子說明我的意思:
#original {
padding: 5px;
background: blue;
}
#original .nav {
font-size: 24px;
}
#original .nav ul {
background: black;
}
#original .nav ul li {
list-style-type: none;
}
#original .nav ul li a {
text-decoration: none;
color: green;
}
#simplified {
padding: 5px;
background: blue;
}
._ranClass1 {
font-size: 24px;
}
._ranClass2 {
background: black;
}
._ranClass3 {
list-style-type: none;
}
._ranClass4 {
text-decoration: none;
color: green;
}
<div id="original">
<h1>Original CSS</h1>
<div class="nav">
<ul class="_ranClass2">
<li><a href="/">Link 1</a>
</li>
<li><a href="/">Link 1</a>
</li>
<li><a href="/">Link 1</a>
</li>
</ul>
</div>
</div>
<div id="simplified">
<h1>Simplified CSS</h1>
<div class="nav _ranClass1">
<ul class="_ranClass2">
<li class="_ranClass3"><a href="/" class="_ranClass4">Link 1</a>
</li>
<li class="_ranClass3"><a href="/" class="_ranClass4">Link 1</a>
</li>
<li class="_ranClass3"><a href="/" class="_ranClass4">Link 1</a>
</li>
</ul>
</div>
</div>
這當然需要大量的調整,比好可能導致更多的麻煩,但不知道是否這樣的事情存在。
編輯:
我不是在尋找一個方式來寫更方便CSS,SASS/SCSS存在這個原因。我正在尋找一種在瀏覽器方面優化CSS的方法。 EX:取原選擇
#original .nav ul li a {
text-decoration: none;
color: green;
}
簡化太
._ranClass4 {
text-decoration: none;
color: green;
}
而不是瀏覽器尋找每一個「A」節點,然後檢查以確保父母匹配,它只是如果節點匹配有類._ranclass4
你看過Rails的標準SCSS嗎? –
是的,但不是SCSS只是一個預處理器,呈現爲普通的css,它不一定會優化它? – user3023421
這是真的......我以爲你的目標是減少選擇器的長度以實現可讀性。我現在明白你在看性能......誤解了你的問題。 –