摘要:總的來(lái)說(shuō),過(guò)程分以下幾步處理標(biāo)記并構(gòu)建樹(shù)。不說(shuō)這些題外話了,我們下面來(lái)畫(huà)幾個(gè)圖,幫助大家更清楚的理解的工作過(guò)程。
在平時(shí)的工作中,可能都是再用一些框架或者是簡(jiǎn)單的CSS來(lái)修飾我們的HTML頁(yè)面,那么仔細(xì)想想一個(gè)資深的前端從業(yè)者,是否需要知道他的工作原理和過(guò)程呢,技術(shù)這種東西,當(dāng)然是我們了解的越多,才會(huì)使用的越得心應(yīng)手。那么下面,我就為大家來(lái)介紹一下CSS的工作過(guò)程把。
有個(gè)經(jīng)典的問(wèn)題:從你輸入 URL 到看到頁(yè)面都發(fā)生了什么?這個(gè)問(wèn)題回答可長(zhǎng)可短,回答詳細(xì)了扯上大幾千字都不是問(wèn)題。這里我從接收到 HTML,CSS,JS 等各種文件之后開(kāi)始說(shuō),前面的都不是本題重點(diǎn)了。
總的來(lái)說(shuō),過(guò)程分以下幾步:
處理 HTML 標(biāo)記并構(gòu)建 DOM 樹(shù)。
處理 CSS 標(biāo)記并構(gòu)建 CSSOM 樹(shù)。
將 DOM 與 CSSOM 合并成一個(gè)渲染樹(shù)。
根據(jù)渲染樹(shù)來(lái)布局,以計(jì)算每個(gè)節(jié)點(diǎn)的幾何信息。
將各個(gè)節(jié)點(diǎn)繪制到屏幕上。
是不是感覺(jué)很神奇,簡(jiǎn)單的幾個(gè)過(guò)程就能讓我們的頁(yè)面變得好看起來(lái),這還是屬于很淺的一些內(nèi)容,更深層次東西在bob老師最近的直播課中經(jīng)常有講到,大家可以多多關(guān)注哦。不說(shuō)這些題外話了,我們下面來(lái)畫(huà)幾個(gè)圖,幫助大家更清楚的理解CSS的工作過(guò)程、。
構(gòu)建 DOM Tree:HTML 文件加載后,瀏覽器開(kāi)始構(gòu)建 DOM Tree,DOM Tree 就是描述 HTML 文檔中元素層疊關(guān)系的一棵樹(shù),長(zhǎng)這樣
??
構(gòu)建 CSSOM 樹(shù):與DOM 類似,我們需要對(duì) CSS 構(gòu)建樹(shù)。首先CSS 字節(jié)轉(zhuǎn)換成字符,接著轉(zhuǎn)換成令牌和節(jié)點(diǎn),最后鏈接到一個(gè)稱為“CSS 對(duì)象模型”(CSSOM) 的樹(shù)結(jié)構(gòu)內(nèi),CSSOM 樹(shù)長(zhǎng)這樣
??
3.合成渲染樹(shù):將 DOM 樹(shù)和 CSSOM 樹(shù)合并成一棵渲染樹(shù),長(zhǎng)這樣
??
4.繪制/柵格化:我們已經(jīng)知道各個(gè)元素的樣式和布局方式了,接下來(lái)就是瀏覽器內(nèi)核(平時(shí)說(shuō)的 webkit 內(nèi)核)來(lái)計(jì)算,將渲染樹(shù)中的每個(gè)節(jié)點(diǎn)轉(zhuǎn)換成屏幕上的實(shí)際像素。
5.繪制到屏幕。
喜歡的可以關(guān)注小編喲~
工作日每日一更新~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/116053.html
摘要:總的來(lái)說(shuō),過(guò)程分以下幾步處理標(biāo)記并構(gòu)建樹(shù)。不說(shuō)這些題外話了,我們下面來(lái)畫(huà)幾個(gè)圖,幫助大家更清楚的理解的工作過(guò)程。 在平時(shí)的工作中,可能都是再用一些框架或者是簡(jiǎn)單的CSS來(lái)修飾我們的HTML頁(yè)面,那么仔細(xì)想想一個(gè)資深的前端從業(yè)者,是否需要知道他的工作原理和過(guò)程呢,技術(shù)這種東西,當(dāng)然是我們了解的越多,才會(huì)使用的越得心應(yīng)手。那么下面,我就為大家來(lái)介紹一下CSS的工作過(guò)程把。有個(gè)經(jīng)典的問(wèn)題:從...
摘要:的主要組件包含了一個(gè)全新的引擎,稱為量子,也稱為。這個(gè)新引擎集成了四種不同瀏覽器的最新創(chuàng)新技術(shù),創(chuàng)造出一個(gè)全新的超級(jí)引擎。這可以發(fā)生在多個(gè)圖層上。最終,擁有最高特異性的規(guī)則會(huì)勝出。 原文:Inside a Super Fast CSS Engine: Quantum CSS(Aka Stylo), Lin Clark 注:原文發(fā)布于 2017 年 8 月,本文翻譯于 2018 年 4 ...
摘要:?jiǎn)栴A(yù)處理器的出現(xiàn)是否意味著開(kāi)發(fā)者社區(qū)對(duì)有所不滿你認(rèn)為有哪些地方需要改變定義了可以做什么,而其他人制造工具讓變得更好用。對(duì)于現(xiàn)在流行的預(yù)處理器,哪一個(gè)最好并沒(méi)有共識(shí),但是是使用更加廣泛的一個(gè)。 非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/124049 Charles Wyke-Smith一直從事與線上應(yīng)...
摘要:它制定了整個(gè)平臺(tái)的規(guī)則,監(jiān)督整個(gè)進(jìn)程。特邀專家指的是被邀請(qǐng)參與標(biāo)準(zhǔn)制定的開(kāi)發(fā)者,都是一些技術(shù)大牛。備注數(shù)據(jù)來(lái)源于揭秘三制定過(guò)程制定過(guò)程是公開(kāi)透明的,內(nèi)部交流都是公開(kāi)的。 W3C的標(biāo)準(zhǔn)規(guī)范是怎么制定出來(lái)的?瀏覽器廠商是收到來(lái)自w3c的規(guī)范標(biāo)準(zhǔn)才結(jié)合自己的瀏覽器進(jìn)行開(kāi)發(fā)更新以支持新特性嗎?一直很好奇,搜集了一些資料,主要參考了W3C CSS工作組特邀專家Lea Verou寫(xiě)的《CSS揭秘》...
閱讀 649·2021-11-25 09:43
閱讀 1920·2021-11-17 09:33
閱讀 834·2021-09-07 09:58
閱讀 2068·2021-08-16 10:52
閱讀 490·2019-08-30 15:52
閱讀 1730·2019-08-30 15:43
閱讀 996·2019-08-30 15:43
閱讀 2934·2019-08-29 16:41