浏览器字体大小设置_CSS之 浏览器解析样式的过程
生活随笔
收集整理的這篇文章主要介紹了
浏览器字体大小设置_CSS之 浏览器解析样式的过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
閱讀本文約需要10分鐘
div { background: blue;}現在CSS將生成以下數據結構,在本文中,我們將繼續在此基礎上進行構建。來源CSS也有來源,但它們的用途不同:CSS信息可以從各種來源提供,這些來源可以是 用戶(user) 和 作者(author) 及 用戶代理/瀏覽器(user agent),優先級如下:用戶樣式瀏覽器還允許用戶設置網頁的樣式,例如,我們用IE瀏覽網站的時候,都可以通過瀏覽器查看菜單下的樣式或者文字大小子菜單來設置網頁實際的顯示效果。作者樣式網頁創建者建立的樣式表,一般會css文件出現或者是在頁面頭部里定義的style,也就是網站源代碼的一部分。例如,大家看百度和谷歌的頁面就不一樣,這就是作者樣式不一樣的結果。用戶代理/瀏覽器樣式也就是瀏覽器自身設置用來顯示網站的樣式,不同的瀏覽器可能有不同的樣式表,例如IE和Firefox的就不一樣,所以大家分別使用這兩種瀏覽器訪問同一個網站的時候,看到實際效果可能就不同。通常情況下,作者樣式具有最高的重要性,其次是用戶樣式,最后才是瀏覽器樣式,但是如果出現了?!important?標記的話,那么規則會被改變,通過?!important?可以提高某種樣式的重要性,讓它的優先級高于其他沒有加該聲明的所有樣式。讓我們進一步擴展我們的數據集,看看當用戶將瀏覽器的字體大小設置為最小?2em?時會發生什么:做級聯當瀏覽器擁有一個完整的數據結構,包含來自所有源的所有聲明時,它將按照規范對它們進行排序。首先,它將按來源排序,然后按特性(specificity)排序,最后按文檔順序排序。從上圖可知,類名為?.fancy-button優先級最高(表中越上面優先級越高)。例如,從上表中,人會注意到用戶的瀏覽器首選項設置優先 于Web 開發人員的設置樣式。現在,瀏覽器找到與選擇器匹配的所有 DOM 元素,并將得到的計算樣式掛載到匹配的元素,在本例中?div?為類名為?.fancy-button:如果您希望了解更多關于級聯的工作原理,請查看官方規范。CSS對象模型雖然到目前為止我們已經做了很多,但還沒有完成。現在我們需要更新?CSS對象模型(CSSOM)。?CSSOM 位于document.stylesheets?中,我們需要對其進行更新,以便讓它知道我們目前為止已經解析和計算的所有內容。Web 開發人員可能在沒有意識到的情況下使用這些信息。例如,當調用?getComputedStyle()?時,如果需要,運行上面指出的相同過程布局現在我們已經應用了一個具有樣式的 DOM 樹,然后開始構建一個用于可視化目的的樹了。這棵樹出現在所有現代引擎中,被稱為盒子樹(box tree)。為了構造這棵樹,我們遍歷 DOM 樹并創建零個或多個 CSS 盒子,每個盒子都有一個?margin、border、padding?和?content?。在本節中,我們將討論以下 CSS 布局概念:格式化上下文(FC):有許多類型的格式化上下文,其中大多數 Web 開發人員通過更改?display?元素的值來調用。一些最常見的格式化上下文是塊(塊格式化上下文或BFC),flex,grid,table-cells 和 inline。其他一些CSS也可以強制使用新的格式化上下文,例如?position: absolute,float?或使用?multi-colum。包含塊:這是用于解析樣式的祖先塊。內聯方向:這是文本布局的方向,由元素的書寫模式決定。?在拉丁語言中,這是水平軸,在 CJK 語言中,這是垂直軸。塊方向:此行為與內聯方向完全相同,但與內聯軸垂直。因此,對于基于拉丁語的語言,這是垂直軸,而在CJK語言中,這是水平軸。解析 Auto請記住,在計算階段,維度值可以是三個值之一:auto、百分數或像素。布局的目的是在Box Tree中調整所有盒子的大小和位置,使它們為繪制做好準備。下面示例可以更容易地理解Box Tree是如何構建的。為了便于理解,這里不顯示單獨的CSS框,只顯示主盒(principal box)。讓我們看看一個基本的 “Hello world” 布局使用以下代碼:
大家好,我是你們的導師,經常看我朋友圈的同學應該知道,我每天會在微信上給大家免費提供以下服務!
1、長期為你提供最優質的學習資源!
2、給你解決技術問題!
3、每天在朋友圈里分享優質的技術文章!
4、每周1、3、5送紙質書籍免費送給大家,每年至少送書800本書!
5、為大家推薦靠譜的就業單位!
請注意!我上面說的5點全部都是免費的!全網你應該找不到第二家吧!
當然,大家在我私人微信上問我問題,僅限回答web前端、java相關的。
---------------------------
好了,接下來開始今天的技術分享!上次老師跟大家分享了React 面試知識點的知識,今天跟大家分享下CSS之 瀏覽器解析樣式的過程的知識。
1 解析一旦 CSS 被瀏覽器下載,CSS 解析器就會被打開來處理它遇到的任何CSS。這可以是單個文檔內的CSS、例如,考慮以下 CSS:div { background: blue;}現在CSS將生成以下數據結構,在本文中,我們將繼續在此基礎上進行構建。來源CSS也有來源,但它們的用途不同:CSS信息可以從各種來源提供,這些來源可以是 用戶(user) 和 作者(author) 及 用戶代理/瀏覽器(user agent),優先級如下:用戶樣式瀏覽器還允許用戶設置網頁的樣式,例如,我們用IE瀏覽網站的時候,都可以通過瀏覽器查看菜單下的樣式或者文字大小子菜單來設置網頁實際的顯示效果。作者樣式網頁創建者建立的樣式表,一般會css文件出現或者是在頁面頭部里定義的style,也就是網站源代碼的一部分。例如,大家看百度和谷歌的頁面就不一樣,這就是作者樣式不一樣的結果。用戶代理/瀏覽器樣式也就是瀏覽器自身設置用來顯示網站的樣式,不同的瀏覽器可能有不同的樣式表,例如IE和Firefox的就不一樣,所以大家分別使用這兩種瀏覽器訪問同一個網站的時候,看到實際效果可能就不同。通常情況下,作者樣式具有最高的重要性,其次是用戶樣式,最后才是瀏覽器樣式,但是如果出現了?!important?標記的話,那么規則會被改變,通過?!important?可以提高某種樣式的重要性,讓它的優先級高于其他沒有加該聲明的所有樣式。讓我們進一步擴展我們的數據集,看看當用戶將瀏覽器的字體大小設置為最小?2em?時會發生什么:做級聯當瀏覽器擁有一個完整的數據結構,包含來自所有源的所有聲明時,它將按照規范對它們進行排序。首先,它將按來源排序,然后按特性(specificity)排序,最后按文檔順序排序。從上圖可知,類名為?.fancy-button優先級最高(表中越上面優先級越高)。例如,從上表中,人會注意到用戶的瀏覽器首選項設置優先 于Web 開發人員的設置樣式。現在,瀏覽器找到與選擇器匹配的所有 DOM 元素,并將得到的計算樣式掛載到匹配的元素,在本例中?div?為類名為?.fancy-button:如果您希望了解更多關于級聯的工作原理,請查看官方規范。CSS對象模型雖然到目前為止我們已經做了很多,但還沒有完成。現在我們需要更新?CSS對象模型(CSSOM)。?CSSOM 位于document.stylesheets?中,我們需要對其進行更新,以便讓它知道我們目前為止已經解析和計算的所有內容。Web 開發人員可能在沒有意識到的情況下使用這些信息。例如,當調用?getComputedStyle()?時,如果需要,運行上面指出的相同過程布局現在我們已經應用了一個具有樣式的 DOM 樹,然后開始構建一個用于可視化目的的樹了。這棵樹出現在所有現代引擎中,被稱為盒子樹(box tree)。為了構造這棵樹,我們遍歷 DOM 樹并創建零個或多個 CSS 盒子,每個盒子都有一個?margin、border、padding?和?content?。在本節中,我們將討論以下 CSS 布局概念:格式化上下文(FC):有許多類型的格式化上下文,其中大多數 Web 開發人員通過更改?display?元素的值來調用。一些最常見的格式化上下文是塊(塊格式化上下文或BFC),flex,grid,table-cells 和 inline。其他一些CSS也可以強制使用新的格式化上下文,例如?position: absolute,float?或使用?multi-colum。包含塊:這是用于解析樣式的祖先塊。內聯方向:這是文本布局的方向,由元素的書寫模式決定。?在拉丁語言中,這是水平軸,在 CJK 語言中,這是垂直軸。塊方向:此行為與內聯方向完全相同,但與內聯軸垂直。因此,對于基于拉丁語的語言,這是垂直軸,而在CJK語言中,這是水平軸。解析 Auto請記住,在計算階段,維度值可以是三個值之一:auto、百分數或像素。布局的目的是在Box Tree中調整所有盒子的大小和位置,使它們為繪制做好準備。下面示例可以更容易地理解Box Tree是如何構建的。為了便于理解,這里不顯示單獨的CSS框,只顯示主盒(principal box)。讓我們看看一個基本的 “Hello world” 布局使用以下代碼:
Hello world
總結
以上是生活随笔為你收集整理的浏览器字体大小设置_CSS之 浏览器解析样式的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt学习资料汇总
- 下一篇: 2017年html5行业报告,云适配发布