整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          CSS 面試題:什么是 回流(reflow)- 重繪

          CSS 面試題:什么是 回流(reflow)? 重繪(repaint)?

          面的兩個問題還是比較常問到的, 希望大家能夠好好的記憶一下。

          1. 什么是 回流(reflow)? 重繪(repaint)?

          1-1. 回流 的核心概念:
               1. 當(dāng) render Tree 中的一部分(或者全部) 因元素的 規(guī)模尺寸 、 布局 、 隱藏 等改變而需要重新構(gòu)建, 這就稱為回流 。
               2. 當(dāng)頁面 布局和集合屬性 改變時就需要回流 。
          1-2. 回流詳細(xì)解析:
               1. 回流更多的是涉及到頁面元素大小的變化, 尺寸的變化, 布局的變化, 這些核心概念變化的時候, 會觸發(fā)回流 。
               2. 實例: 網(wǎng)站的懶加載, 在下滑的時候會有圖片增加到我們的 dom Tree 上, 這就是典型的一種 Render Tree 在動態(tài)過程中它的布局改變 。
               3. 實例: 對圖片做一些特殊的效果, 如鼠標(biāo)放上變大, 這種場景圖片大小的變化, 也是會觸發(fā)回流的 。
          
               
          2-1. 重繪的核心概念:
               1. 當(dāng) render Tree 中的一些元素需要更新屬性, 而這些屬性只是影響元素的外觀, 風(fēng)格, 而不會影響布局, 比如 background-color, 這就是重繪 。
          2-2. 重繪詳細(xì)解析:
               1. 涉及重繪的時候, 不一定觸發(fā)回流; 回流是一定會觸發(fā)重繪的
          
               
          3. 重繪與回流這些與瀏覽器本身也是有關(guān)系的 。
             1. 不同的瀏覽器渲染機(jī)制不一樣, 重繪與回流發(fā)生的情況也不一樣。
          

          2. 那些 CSS 屬性會觸發(fā) "回流" ?

          1. 觸發(fā)頁面重新布局的屬性:
             1. 盒模型相關(guān)的屬性會觸發(fā)重新布局 。
                1. width
                2. height
                3. padding
                4. margin
                5. display
                6. boeder-width
                7. border
                8. min-height
             2. 定位屬性以及浮動也會觸發(fā)重新布局 。
                1. top
                2. bottom
                3. left
                4. right
                5. position
                6. float
                7. clear
             3. 改變節(jié)點內(nèi)部文字結(jié)構(gòu)也會觸發(fā)重新布局 。
                1. text-algin
                2. overflow-y    規(guī)定是否對內(nèi)容的上/下邊緣進(jìn)行裁剪 - 如果溢出元素內(nèi)容區(qū)域的話/ 滾輪
                3. font-weight
                4. overflow
                5. font-family
                6. line-height
                7. vertival-algin    設(shè)置元素的垂直對齊方式
                8. white-space   設(shè)置如何處理元素內(nèi)的空白
                9. font-size
          

          3. 那些 CSS 屬性會觸發(fā) "重繪" ?

          1. 那些 CSS 屬性會觸發(fā)重繪(只會觸發(fā)重繪不會觸發(fā)回流)?
             1. color
             2. border-style
             3. border-radius
             4. visibility   規(guī)定元素是否可見
             5. text-decoration    規(guī)定添加到文本的修飾
             6. background
             7. background-image
             8. background-position
             9. background-repeat
             10. background-size
             11. outline-color
             12. outline
             13. outline-style
             14. outline-width   設(shè)置元素整個輪廓的寬度
             15. box-shadow      陰影

          這里就是一些概念性的內(nèi)容與需要加深記憶的內(nèi)容, 最好的方法就是每天都來看一遍。

          之前有整理過部分知識點, 現(xiàn)在將整理的相關(guān)內(nèi)容, 驗證之后慢慢分享給大家; 這個專題是 "前端面試題" 的相關(guān)專欄; 大概會有200+的文章。

          如果對大家有所幫助,可以點個關(guān)注、點個贊; 文章會持續(xù)打磨 。

          有什么想要了解的前端知識, 可以在評論區(qū)留言, 會及時分享所相關(guān)內(nèi)容 。

          種動態(tài)創(chuàng)建元素的區(qū)別

          • document.write()
          • element.innerHTML
          • document.createElement()

          區(qū)別

          1.document.write是直接將內(nèi)容寫入頁面的內(nèi)容流,但是文檔流執(zhí)行完畢,則它會導(dǎo)致頁面全部重繪

          2.innerHTML是將內(nèi)容寫入某個DOM節(jié)點,不會導(dǎo)致頁面全部重繪

          3.innerHTML創(chuàng)建多個元素效率更高(不要拼接字符串,采取數(shù)組形式拼接),結(jié)構(gòu)稍微復(fù)雜(innerHTML采取數(shù)組形式拼接會快一點比createElement()快)

          4.createElement()創(chuàng)建多個元素效率稍低一點點,但是結(jié)構(gòu)更清晰

          總結(jié):不同瀏覽器下,innerHTML效率要比creatElement高

          動態(tài)生成表格案例分析

          1. 因為里面的學(xué)生數(shù)據(jù)都是動態(tài)的,我們需要js動態(tài)生成。這里我們模擬數(shù)據(jù),自己定義好數(shù)據(jù)。數(shù)據(jù)我們采取對象形式存儲。

          2.所有的數(shù)據(jù)都是放到tbody里面的行里面。

          3.因為行很多,我們需要循環(huán)創(chuàng)建多個行(對應(yīng)多少人)

          源碼如下

          效果圖如下

          百度搜索 分形科技 查看更多精彩內(nèi)容

          網(wǎng)站建設(shè)中關(guān)于技術(shù)問題主要可以分形兩部分,一般都是由專業(yè)的技術(shù)人員來負(fù)責(zé)完成,其中一部分是網(wǎng)站后臺的技術(shù)開發(fā),主要負(fù)責(zé)的是網(wǎng)站的后臺系統(tǒng)開發(fā)問題;另一部分就是網(wǎng)站的前端技術(shù)開發(fā),主要負(fù)責(zé)的是網(wǎng)頁前端Web開發(fā)的問題。這兩大塊兒技術(shù)問題解決的好否是企業(yè)能否獲得一個優(yōu)秀網(wǎng)站的關(guān)鍵,本文中分形科技主要為大家介紹的是其中的前端開發(fā)技術(shù)。

          首先,我們先來分析一下什么是前端開發(fā)

          前端開發(fā)又稱Web前端開發(fā)技術(shù),以前叫做網(wǎng)頁制作,其主要職能就是把網(wǎng)站的界面更好地呈現(xiàn)給用戶。前端開發(fā)工程師通過運(yùn)用專門的技術(shù)軟件讓企業(yè)網(wǎng)站互聯(lián)網(wǎng)化,使靜態(tài)的頁面動態(tài)化。Web前端開發(fā)涵蓋的知識面非常廣,既有具體的技術(shù),又有抽象的理念。

          其次,介紹一下前端開發(fā)技術(shù)人員需要掌握的專業(yè)技能

          隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,前端開發(fā)技術(shù)變更越來越成熟,市場對于前端開發(fā)技術(shù)人員的專業(yè)技能要求也越來越高,具體的技能主要包括:1、掌握HTML,2、服務(wù)器端腳本語言,3、CSS和JavaScript等。

          在了解以上的重要知識后,分形科技小編再為大家介紹一下網(wǎng)站建設(shè)前端開發(fā)如何應(yīng)對瀏覽器的重繪和重排。瀏覽器重繪即repaint,瀏覽器的重排即reflows。重繪(repaint)是指一個元素外觀的改變所觸發(fā)的瀏覽器行為,瀏覽器會根據(jù)元素的新屬性進(jìn)行重新繪制,使網(wǎng)頁元素呈現(xiàn)出新的外觀。如改變vidibility、outline、背景色等屬性。特點:重繪不會帶來網(wǎng)頁的重新布局,并不一定伴隨重排。重排(reflows)是指網(wǎng)頁中元素更明顯的一種改變,可以理解為渲染樹進(jìn)行重新計算。因為瀏覽器重排比較復(fù)雜,所以,在這里分形科技重點要介紹的是瀏覽器重排的問題。

          下面是分形科技為大家總結(jié)的一些常見可以觸發(fā)重排的操作(不同的瀏覽器的情況很有一些不同):

          1、DOM(文檔對象模型)元素的幾何屬性發(fā)生變化時

          當(dāng)網(wǎng)頁中DOM元素的幾何屬性變化時,渲染樹中的相關(guān)節(jié)點就會失效,瀏覽器會根據(jù)DOM元素的變化重建構(gòu)建渲染樹中失效的節(jié)點。隨之瑞來的就是重新繪制被重排的頁面。特點:瀏覽器重排一定會引起瀏覽器的重繪。

          2、瀏覽器引擎因獲取某些屬性而觸發(fā)重排。

          當(dāng)瀏覽器引擎獲取網(wǎng)頁中一些屬性時,瀏覽器為取得正確的值也會觸發(fā)重排,所以我們在在多次使用這些屬性值時應(yīng)進(jìn)行緩存。網(wǎng)站中可修改屬性包括:offsetTop、offsetLeft、 offsetWidth、offsetHeight、scrollTop、scrollLeft、scrollWidth、scrollHeight、clientTop、clientLeft、clientWidth、clientHeight、getComputedStyle() (currentStyle in IE)。

          3、改變元素的樣式、調(diào)整窗口大小觸發(fā)重排

          網(wǎng)站建設(shè)前端開發(fā)中,改變網(wǎng)頁中元元素的一些樣式,或是調(diào)整瀏覽器窗口大小都會觸發(fā)瀏覽器重排。避免方法:將網(wǎng)頁中需要多次重排的元素的position屬性設(shè)為absolute或fixed,這樣此元素就脫離了文檔流,不會影響到其他元素。

          最后要提醒大家的是想要做好網(wǎng)站建設(shè)的前端開發(fā)就必須要在掌握專業(yè)技術(shù)的基礎(chǔ)上重視實踐的積累。


          主站蜘蛛池模板: 无码av免费毛片一区二区| 一区二区在线免费视频| 精品乱人伦一区二区三区| 中文字幕色AV一区二区三区| 国产在线精品一区免费香蕉| 久久久久人妻精品一区蜜桃| 国产精品亚洲一区二区麻豆| 日本一区二区三区不卡视频| 无码AV一区二区三区无码 | 久久AAAA片一区二区| 乱人伦一区二区三区| 亚洲一区二区三区电影| 亚洲成av人片一区二区三区| 无码午夜人妻一区二区三区不卡视频| 极品人妻少妇一区二区三区| 久久人妻无码一区二区| 三级韩国一区久久二区综合| 在线播放精品一区二区啪视频| 国产一区二区免费视频| 精品一区二区三区色花堂| 日本一区二区在线不卡| 黑人一区二区三区中文字幕| 国产一区二区三区亚洲综合| 视频一区二区三区在线观看| 国产乱码精品一区二区三区四川人 | 中文字幕日韩一区二区不卡| 韩国理伦片一区二区三区在线播放| 亚洲天堂一区二区三区| 中文字幕日韩欧美一区二区三区| 日韩AV片无码一区二区不卡| 免费视频精品一区二区| 熟妇人妻一区二区三区四区| 一区二区三区国产精品| 国产日韩精品一区二区三区| 国产裸体舞一区二区三区| 亚洲色无码一区二区三区| 无码人妻一区二区三区一| 精品一区二区三区在线观看| 人妻无码视频一区二区三区| 日韩熟女精品一区二区三区| 人妻少妇精品视频一区二区三区 |