日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

關于 CSS 的那些事兒,我從未被告知

來源: 責編: 時間:2024-05-27 17:22:03 216觀看
導讀CSS 是一種美麗且復雜的技術,我們每天在工作中都會用到。然而,包括我在內的許多開發者都忽略了它的一些重要方面。這很明顯,因為在互聯網上很難找到關于 CSS 的新知識或高級內容。大多數內容創作者只寫一些熱門話題,比如

5xn28資訊網——每日最新資訊28at.com

CSS 是一種美麗且復雜的技術,我們每天在工作中都會用到。然而,包括我在內的許多開發者都忽略了它的一些重要方面。5xn28資訊網——每日最新資訊28at.com

這很明顯,因為在互聯網上很難找到關于 CSS 的新知識或高級內容。大多數內容創作者只寫一些熱門話題,比如新語言、框架和庫。5xn28資訊網——每日最新資訊28at.com

個人對 CSS 的了解僅限于讓它正常工作。而這特別令人遺憾,因為我們從未嘗試深入研究這個主題。認識到這一點后,做了一些研究,并列出了一些新發現的內容。5xn28資訊網——每日最新資訊28at.com

CSS 性能

CSS 性能是一個非常重要的話題,因為它直接影響網站的效率。由于現代應用程序包含大量的 CSS 代碼,即使是微小的錯誤也可能導致顯著的性能下降。5xn28資訊網——每日最新資訊28at.com

子選擇器

首先,下面賂你展示一些令我驚訝的東西。只需看看下面的例子,試著找出可能的問題。5xn28資訊網——每日最新資訊28at.com

5xn28資訊網——每日最新資訊28at.com

正如你所看到的,這個例子一點都不復雜。這段 CSS 代碼移除了標題中所有段落內鏈接的文本裝飾。這不是普通的 CSS 嗎?5xn28資訊網——每日最新資訊28at.com

但你知道使用這樣的選擇器會導致瀏覽器執行大量額外工作嗎?這個問題適用于我們代碼中所有類似的子選擇器。5xn28資訊網——每日最新資訊28at.com

這是因為瀏覽器在解析 CSS 時,從右向左讀取選擇器。有了這個新知識,我們將這個過程分解成幾個步驟:5xn28資訊網——每日最新資訊28at.com

  • 瀏覽器找到頁面上所有的 <a> 標簽。
  • 然后它找到包含在段落中的所有錨點。
  • 最后,它將找到的集合縮小到僅包含在 #header 元素內的錨點。

通過使用更具體的選擇器,我們可以幫助瀏覽器避免所有這些額外的工作。我們可以將 .header__link 類應用于錨元素,并用它替換選擇器 #header p a。這樣,瀏覽器會更快地找到所需的元素。5xn28資訊網——每日最新資訊28at.com

昂貴的 CSS 屬性

所謂昂貴的 CSS 屬性,是指這些屬性在我們的應用程序中可能會耗費大量性能。但這并不意味著你完全不能使用它們。你只需要理解,如果元素使用了這些屬性并且經常渲染——它肯定會影響性能。5xn28資訊網——每日最新資訊28at.com

需要注意的一件棘手事情是,改變某些 CSS 屬性需要更新整個布局。幾何屬性如寬度、高度、頂部等可能導致整個樹的重新繪制。5xn28資訊網——每日最新資訊28at.com

還有一些屬性很難渲染。雖然這些屬性的清單很短,但你可以在這里了解更多關于它們的信息。5xn28資訊網——每日最新資訊28at.com

  • border-radius
  • box-shadow
  • filter
  • :nth-child
  • position: fixed

重繪和重排

重繪(Repaint)和重排(Reflow)是在瀏覽器中渲染網頁過程中兩個重要的概念。當頁面加載或更新時,瀏覽器會通過一系列步驟將內容顯示在屏幕上,而重繪和重排在這個過程中起著重要作用。5xn28資訊網——每日最新資訊28at.com

為了更好地理解這個過程,我們可以將其分解為幾個精確的步驟:5xn28資訊網——每日最新資訊28at.com

  • 從服務器下載的 HTML 文檔用于構建文檔對象模型(DOM)。
  • 樣式被加載和識別,創建 CSS 對象模型(CSSOM)。
  • 基于 DOM 和 CSSOM,形成一個渲染樹,這是一個渲染對象的集合。渲染樹復制了 DOM 的結構,但不可見的元素(例如 <head> 或 display: none 的元素)不包含在內。換句話說,渲染樹描述了 DOM 的視覺表示。
  • 對于渲染樹中的每個元素,計算其在頁面上的位置,并進行布局。瀏覽器使用流方法,通常一個操作就足以放置所有元素。例如,表格需要更多的操作。
  • 最后,所有元素在瀏覽器中被渲染,并且繪制完成。

5xn28資訊網——每日最新資訊28at.com

當頁面首次加載時,如果不是空的,至少會執行一次重排和重繪。但它們也會在以下情況下繼續發生:5xn28資訊網——每日最新資訊28at.com

  • 當由于節點的寬度、高度或其他坐標的變化,樹的一部分需要重新計算時,會觸發重排事件。
  • 當由于變化,一些顯示的內容必須更新時,這主要適用于諸如背景顏色、半徑等樣式屬性,會觸發重繪事件。
  • 此外,當發生重排事件時,總是會伴隨一個重繪事件。而重繪則可以獨立于重排觸發。

關于重排

重排是計算網頁上元素布局的過程。它根據元素的內容和樣式來確定每個元素的大小和位置。5xn28資訊網——每日最新資訊28at.com

在現代應用程序中,特別是頁面上有成千上萬個元素和頻繁的布局更新時,它很快會變成一個資源消耗大的操作。即使是對文檔中單個元素的重排,也可能需要重排其父元素和隨后的任何其他元素。5xn28資訊網——每日最新資訊28at.com

由于它是一個用戶阻塞操作,了解如何改進重排以及各種文檔屬性對其持續時間的影響是非常有用的。典型的引發重排過程的情況通常有:5xn28資訊網——每日最新資訊28at.com

  • 對 DOM 的不同操作。例如,添加、刪除和更改節點。
  • 元素內容的變化,甚至包括表單字段中的文本。
  • 計算(getComputedStyle)或修改 CSS 屬性。
  • 對元素類的操作。
  • 瀏覽器窗口的操作(調整大小、滾動)。
  • 偽類的激活。:hover 就是一個很好的例子。

關于重繪

重繪是將像素繪制到屏幕上的簡單過程。在重排期間確定布局后,瀏覽器將每個元素繪制到屏幕上。5xn28資訊網——每日最新資訊28at.com

重繪通常比重排消耗的資源少,但它仍然會影響網頁的性能。5xn28資訊網——每日最新資訊28at.com

最典型的情況是當元素樣式的變化不影響其在屏幕上的大小或位置時。例如,當背景顏色改變時,瀏覽器只需用新樣式重新繪制(或重繪)節點。5xn28資訊網——每日最新資訊28at.com

以下是一些會觸發重繪的操作的例子:5xn28資訊網——每日最新資訊28at.com

  • 改變元素的可見性。
  • 改變元素的輪廓。
  • 改變背景。

CSS 可以替代 JS 的地方

JavaScript 和 CSS 是非常棒的技術,尤其是在一起使用時。每種技術都有其獨特的優勢,結合使用時可以創造出令人難以置信的效果。5xn28資訊網——每日最新資訊28at.com

然而,我可以自信地說,UI 控制中使用 CSS 越多,Web 應用程序就越容錯和可靠。5xn28資訊網——每日最新資訊28at.com

觀點很簡單:5xn28資訊網——每日最新資訊28at.com

  • CSS 本身是一種安全技術。當 CSS 解析器遇到無效屬性時,它會簡單地忽略并繼續。
  • JavaScript 不是一種安全技術。JS 代碼中的單個語法錯誤可能導致整個應用程序失敗。換句話說,當使用 JS 控制樣式時,確保相應構造的功能正常工作是至關重要的。

現在讓我們考慮一些你可以輕松用 CSS 替代 JS 的情況。5xn28資訊網——每日最新資訊28at.com

平滑滾動

以前,要實現平滑滾動,需要使用幾行 JavaScript 代碼。但現在,這個任務可以完全通過 CSS 的力量來解決。5xn28資訊網——每日最新資訊28at.com

現在你可以通過使用 CSS 屬性 scroll-behavior 來實現平滑滾動。5xn28資訊網——每日最新資訊28at.com

5xn28資訊網——每日最新資訊28at.com

文本處理

CSS 提供了兩個很棒的屬性:text-overflow 和 line-clamp。它們允許我們修剪文本,同時讓我們擺脫使用 JavaScript 代碼或其他復雜方法來執行此類任務。這兩個屬性雖然不是新的,但非常有用。5xn28資訊網——每日最新資訊28at.com

text-overflow 屬性

5xn28資訊網——每日最新資訊28at.com

這個屬性控制文本在不適合一行的情況下如何顯示。這個屬性的一個完美例子是在卡片標題中使用 text-overflow: ellipsis,它會在被截斷的文本末尾顯示一個 Unicode 字符 …。5xn28資訊網——每日最新資訊28at.com

請記住,text-overflow: ellipsis 只有在與 white-space: nowrap 和 overflow: hidden 屬性配合使用時才有效。5xn28資訊網——每日最新資訊28at.com

5xn28資訊網——每日最新資訊28at.com

line-clamp 屬性

5xn28資訊網——每日最新資訊28at.com

line-clamp 屬性在需要處理多行文本時非常有用。上面示例中的卡片描述展示了它的效果。5xn28資訊網——每日最新資訊28at.com

這個屬性是 CSS Overflow Module Level 3 標準的一部分,雖然目前還處于草案階段,但已經有大約 95% 的瀏覽器支持這個屬性,但需要加上 -webkit- 前綴。5xn28資訊網——每日最新資訊28at.com

在使用它之前,重要的是要提到它不允許控制顯示字符的數量。但它仍然非常有用。5xn28資訊網——每日最新資訊28at.com

要使用 line-clamp 屬性,我們需要將其與 display: -webkit-box 和 -webkit-box-orient: vertical 結合使用。示例如下:5xn28資訊網——每日最新資訊28at.com

5xn28資訊網——每日最新資訊28at.com

總結

現代前端開發的世界正在迅速變化,我們不斷得到新的機會來幫助我們更快、更好地完成工作。嘗試使用 CSS 是非常有趣且有幫助的。如果在不使用 JS 的情況下可以實現相同的結果,請考慮使用 CSS。5xn28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-91021-0.html關于 CSS 的那些事兒,我從未被告知

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 阿里面試:NIO為什么會導致CPU 100% ?

下一篇: 阿里面試:NIO為什么會導致CPU100%?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
狠狠色综合网| 国产一区二区av| 欧美久久99| 欧美片在线观看| 欧美午夜片在线免费观看| 国产欧美日韩一区二区三区在线观看| 国产在线一区二区三区四区| 亚洲国产欧美在线| 在线视频日韩| 久久精品国产精品亚洲| 欧美噜噜久久久xxx| 国产精品一区二区三区免费观看| 国产一区视频观看| 日韩视频免费在线观看| 亚洲欧美日韩在线一区| 免费一级欧美片在线播放| 欧美四级电影网站| 一区国产精品| 亚洲欧美国产高清| 免费观看成人www动漫视频| 国产精品久久久久久久久久三级 | 国产亚洲成精品久久| 亚洲电影专区| 亚洲综合社区| 欧美激情精品久久久久久黑人 | 韩国成人精品a∨在线观看| 日韩一级大片| 久久久综合精品| 国产精品成人免费视频 | 久久国产精品久久久久久电车| 麻豆freexxxx性91精品| 国产精品五区| 99精品视频免费全部在线| 欧美在线高清| 欧美视频中文字幕在线| **网站欧美大片在线观看| 亚洲男人的天堂在线aⅴ视频| 欧美韩日高清| 激情综合在线| 欧美一区午夜精品| 国产精品国产三级国产普通话三级 | 亚洲图片在线| 欧美国产日韩xxxxx| 国产日韩欧美精品| 亚洲一区二区高清| 欧美精品一区二区三| 黄色成人片子| 欧美中文字幕| 国产精品欧美久久久久无广告| 亚洲精选成人| 免费一级欧美片在线播放| 狠狠色丁香婷婷综合影院| 亚洲欧美在线一区二区| 欧美日韩中文字幕| 亚洲人成网站在线播| 久久综合狠狠综合久久综青草 | 亚洲伦伦在线| 欧美成人精品一区二区| 激情综合亚洲| 久久久www成人免费精品| 国产欧美综合一区二区三区| 亚洲一区免费网站| 欧美色图五月天| 日韩一级在线| 欧美日本久久| 亚洲美女淫视频| 欧美激情a∨在线视频播放| 在线免费观看一区二区三区| 久久精品国产在热久久| 国产午夜精品久久久久久免费视| 亚洲一区区二区| 欧美日韩国产限制| 99精品视频免费观看| 欧美精品一区二区三区久久久竹菊| 亚洲成人在线视频播放| 久久一区二区三区四区| 精品电影在线观看| 老鸭窝亚洲一区二区三区| 一区在线播放| 美女尤物久久精品| 亚洲大胆美女视频| 免费永久网站黄欧美| 亚洲电影在线| 欧美电影在线播放| 日韩午夜在线电影| 欧美日韩视频免费播放| 一区二区三区毛片| 国产精品成人一区二区三区夜夜夜 | 欧美精品v国产精品v日韩精品 | 中文欧美字幕免费| 国产精品久久久对白| 亚洲自拍都市欧美小说| 国产精品推荐精品| 欧美一区国产一区| 韩曰欧美视频免费观看| 久久综合伊人77777| 最新热久久免费视频| 欧美日韩18| 亚洲一区二区三区免费观看| 国产精品视频一| 欧美一区二区日韩| 狠狠色综合色综合网络| 欧美成人一区二区三区| 99视频一区二区| 国产精品免费在线| 久久久久久久久岛国免费| 亚洲国产婷婷| 国产精品h在线观看| 香蕉久久夜色| 在线不卡视频| 欧美日本三区| 午夜精品一区二区三区在线视| 国内精品免费午夜毛片| 欧美好骚综合网| 亚洲免费在线精品一区| 黄色成人在线免费| 欧美日韩高清区| 性xx色xx综合久久久xx| 在线观看91久久久久久| 欧美日韩国产一区二区三区地区| 亚洲专区一区二区三区| 在线观看视频免费一区二区三区| 欧美激情综合色综合啪啪| 亚洲自拍偷拍一区| 尤物yw午夜国产精品视频明星 | 国产精品国产| 麻豆成人91精品二区三区| 亚洲视频在线观看三级| 黄色成人片子| 国产精品黄视频| 久久亚洲综合色| 亚洲天堂av在线免费| 韩国一区电影| 欧美调教视频| 久久精品国产亚洲高清剧情介绍| 亚洲精品男同| 国产一区二区三区久久悠悠色av| 欧美精品电影| 久久精品视频免费| 一区二区三区日韩欧美| 激情久久影院| 国产精品久久久久久久一区探花 | 国产精品成人aaaaa网站| 美女999久久久精品视频| 亚洲一级免费视频| 亚洲国产精品久久久久秋霞蜜臀| 国产精品视频免费观看www| 欧美激情1区| 久久米奇亚洲| 亚洲综合色在线| 亚洲精选在线观看| 黑丝一区二区三区| 国产精品试看| 欧美久久一区| 久久综合狠狠综合久久综青草| 亚洲综合二区| 亚洲乱码一区二区| 在线看片成人| 国模精品一区二区三区| 国产精品v欧美精品∨日韩| 欧美成人a视频| 久久久999| 欧美一区二区日韩| 亚洲专区一区| 99伊人成综合| 亚洲国内自拍| 激情五月综合色婷婷一区二区| 国产精品久线观看视频| 欧美精彩视频一区二区三区| 久久久久一区二区三区| 香蕉尹人综合在线观看| 日韩一级免费观看| 亚洲国产一区在线| 一区免费视频| 国产色视频一区| 国产精品人人爽人人做我的可爱 | 在线精品视频一区二区| 国产一区二区日韩精品| 国产精品视频区| 国产精品爱久久久久久久| 欧美日韩亚洲免费| 欧美精品在欧美一区二区少妇| 蜜桃av综合| 老巨人导航500精品| 久久精品国产999大香线蕉| 新狼窝色av性久久久久久| 亚洲图色在线| 亚洲天堂网在线观看| 亚洲视频在线看| 一区二区三区偷拍| 一本色道久久综合| 99精品国产99久久久久久福利| 亚洲精品国精品久久99热| 91久久精品视频| 亚洲日本国产| 亚洲久久视频| 亚洲最新在线| 亚洲午夜视频在线观看| 亚洲一区二区欧美| 亚洲欧美精品suv| 亚洲欧美色婷婷| 欧美一区二区三区喷汁尤物| 欧美一区国产一区| 久久久精品一区|