我有一大堆(超過300)C#ASP.NET頁面* .aspx和控件* .ascx,它們內嵌CSS樣式。我的任務是將這些樣式提取到CSS文件中。從HTML中提取內聯CSS並淨化頁面
所以我正在尋找一個工具來簡化手動提取這種內聯樣式的任務,並用class =「」聲明替換它們。
現在我知道這不是理想的解決方案,但任何可以緩解任務的工具都會有幫助。
我有一大堆(超過300)C#ASP.NET頁面* .aspx和控件* .ascx,它們內嵌CSS樣式。我的任務是將這些樣式提取到CSS文件中。從HTML中提取內聯CSS並淨化頁面
所以我正在尋找一個工具來簡化手動提取這種內聯樣式的任務,並用class =「」聲明替換它們。
現在我知道這不是理想的解決方案,但任何可以緩解任務的工具都會有幫助。
我可能會選擇使用正則表達式的腳本語言。這看起來很適合python的列表功能 - 對於每個匹配到正則表達式,您可以檢查列表以查看是否有相應的條目,從該結果中提取並分配類,並添加每個未列出的匹配到名單繼續建設。
沒有工具會爲你寫好CSS選擇器,就像沒有工具可以爲你寫好代碼一樣。是的,您可以從模板生成代碼,但僅適用於最重複的編碼任務。 CSS比科學更藝術,因此「自動生成」不會產生好的結果。
編寫好的,乾淨的,精益的,可維護的CSS需要深入瞭解HTML標記,您試圖實現的樣式&佈局以及識別整個站點模式(如字體,顏色, h1標題,表格數據的表示等等,這些都是重複使用的。
即使編寫自己的腳本也不會產生良好的CSS。你所希望的最好的方式是提取所有這些內聯樣式,用一個唯一的id或class替換它們,並將它們全部轉儲到一個css文件中。我在這個練習中實際上並沒有看到很多好處。實際上,由於您要創建的所有額外ID或類都會有更多的代碼需要維護。
除非您開始將所有這些唯一ID或類整合到更少,更多重用的ID中,否則在上述練習中,整個站點的外觀不會保持一致,而且這是最好的手工完成的任務,而不是無論如何自動化。由於css樣式表的瀏覽器緩存,頁面加載時間可能會有所提高,但是這取決於您獲得的所有內容。
對不起,如果我偏離了你的問題,但你的網站聽起來像是在呼喚你從頭重新編寫你的CSS。
查看CSS Zen Garden獲取關於CSS可以做什麼的靈感,以及美麗CSS的例子,並且被啓發!
是的......這是真的,但我更期待現有的工具來做到這一點。我不喜歡寫自己的作品。 – Drejc 2010-07-09 12:06:40
不要使用正則表達式來解析HTML,請使用正確的HTML解析器:http://stackoverflow.com/a/1732454/3408 – rjmunro 2012-02-06 15:58:24
他沒有在尋找解析HTML的方法。他正在試圖用另一組特定的模式替換一組特定的文本。正則表達式可以做得很好。這些模式發生在HTML中與正則表達式是否能夠適應他的需求無關。 – 2012-02-07 16:27:08