您目前的方法是依賴於一個網站只使用相對單位(或繼承)來確定使用什麼字體大小。
文(不是HTML,我用簡單的元素名稱爲便於參考):
<a> Alpha
<b> Beta
<c> Charlie
</c>
</b>
</a>
有:
b { font-size: 0.8em; }
c { font-size: 12px; }
您對a
任何更改都將用於計算b
(因爲em
是相對單位)。但是,c
是使用絕對的*
單位定義的,因此它始終爲12px
。
我應該遍歷所有頁面元素還是有更好的方法?
我可以看到一些粗略方法的選項。
- 迭代通過所有的樣式規則(包括
document.styleSheets
,並在頁面的每一個元素的style
屬性),並轉移到絕對單位的任何引用。
- 迭代頁面上的每個元素,測試其計算的樣式並隨時設置
element.style.fontSize = "something !important"
。
問題是,兩者都需要相當長的時間才能運行,特別是在大型頁面上(這是很多要測試的元素)。
您可能想要完全拋出默認樣式,可能是從頁面抓取所有HTML,然後清除現有內容。
我可能會考慮使用市場上現有的工具,而不是從頭開始寫自己的作品。我傾向於使用Mobile Safari的閱讀模式,當Chrome瀏覽器遇到一篇我想閱讀的文章或對比度過小的文章時,我傾向於使用Chrome。
或者,Firefox具有最小字體大小首選項。
*
OK,所以技術上嚴格CSS方面,像素是相對單位,但他們不是相對於其他元素的字體大小,所以他們是我們的目的絕對有效。
如果您願意切換到Firefox,則它內置了首選項>內容>默認字體:高級>最小字體大小。 – Quentin