2

我想做一個Chrome擴展(如此體面的&記錄的Javascript),從文檔中刪除所有font-size聲明。我可以使用Javascript刪除文檔中的字體大小聲明嗎?

文檔樣式表:

document.styleSheets 

樣式規則:

document.styleSheets[0].rules 

規則聲明(或叫幹麻EM):

document.styleSheets[0].rules[0].style.fontSize 

如何刪除最後一個?我想使用瀏覽器的標準,,所以沒有把一切設置爲100%。有沒有辦法去除所有font-size款式?

(我不關心內嵌樣式或JavaScript添加樣式。)

BTW
有人知道爲什麼.rules爲空(null)爲all.css樣式堆棧溢出?那裏有很多風格,Chrome使用它們。爲什麼我無法在document.styleSheets中訪問它們?

+0

你能找到瀏覽器的默認CSS模板,然後從那裏提取值? – mc10 2011-06-04 21:00:15

+0

這將是很多工作。我會認爲重置用戶/頁面的CSS更容易,但我可能是錯的。 'style.removeProperty('font-size')'做了些什麼,但我不確定是什麼。也許我正在接近問題/解決方案解決方案錯誤(使用document.styleSheets)..? – Rudie 2011-06-04 21:39:14

+1

你可以設置所有的字體大小爲'繼承'? – Jeff 2011-06-04 21:48:16

回答

-3
  1. 嘗試將其設置爲Nothing = ''
  2. 嘗試將其設置爲null
  3. 您可以嘗試的JavaScript delete功能: http://www.openjs.com/articles/delete.php
+0

不要工作。 '...風格。removeProperty('font-size')'的作品,但不知何故並沒有得到所有的字體樣式... – Rudie 2011-06-04 21:21:04

+0

爲什麼我低估了提供潛在的解決方案? – 2011-06-05 03:39:39

+1

據我所知:您無法從其他域訪問樣式表。前兩個是一樣的。你也不會考慮到它可以在一個組合的'font:...'聲明中。最後一個是完全不正確的,因爲a。)''delete'帶有主機對象可能是不可預測的。b)'delete'是*運算符*不是函數 - http://perfectionkills.com/understanding-delete/ – galambalazs 2011-06-05 09:01:04

2

我不認爲這是可能的,因爲你可以從另一個域加載訪問樣式表規則。這是一個類似於AJAX 同源策略的安全限制。

2

什麼注射custom css通過艙單和壓倒一切的字體大小爲默認值:

* {font-size:1em !important;} 
h1 {font-size:2em !important;} 
h2 {font-size:1.5em !important;} 
h3 {font-size:1.17em !important;} 
h5 {font-size:.83em !important;} 
h6 {font-size:.67em !important;} 

用戶代理樣式表並不爲許多元素大多隻爲頭文件中聲明大小。我找不到Chrome的確切默認樣式表,但here是其他瀏覽器中的一些,應該是非常相似的東西。

+0

+1可能是最簡單的解決方案。 FWIW,[HTML4推薦的默認樣式表](http://www.w3.org/TR/CSS2/sample.html)確認了這些值。這些對於Chrome來說也是如此。 – brymck 2011-06-05 06:43:17

+0

這不是最簡單的解決方案......所有'!重要'都不會被覆蓋,我只會添加更多的CSS。 **編輯**是的,所以也許這是最簡單的解決方案=(但我想重置'outline'和'line-height'以及... – Rudie 2011-06-05 10:09:08

+0

(順便說一句,在清單中添加它不會工作,因爲我想要它在瀏覽器動作按鈕後面,但這是細節。) – Rudie 2011-06-05 10:15:02

相關問題