站長資訊網
        最全最豐富的資訊網站

        2021年值得了解的10 個 CSS 功能(分享收藏)

        本篇文章給大家分享值得了解的10 個2021 年比較有用但又不熱門的CSS功能,快來收藏吧!

        2021年值得了解的10 個 CSS 功能(分享收藏)

        沒有 CSS,現代 Web 應用程序將無法實現。標記語言(譯者注:這是樣式表語言……)負責讓網站有良好的視覺體驗、令人愉悅的布局,并且每個元素都各居其位。但是,你知道新的 CSS 特性一直在出現嗎?

        多年來,CSS 已經超越了單純設置背景色、邊框、文本樣式、邊距和盒模型的范疇。現代的 CSS 現在能夠提供過去需要 JavaScript 或其他解決方法才能實現的功能!

        為了慶祝 CSS 的發展,在這篇文章中,我們想看看 CSS 在 2021 年推出的一些令人驚奇而大家可能還不知道的功能(譯者注:準確來說,2021 年比較有用但又不熱門的功能)。我們將重點介紹 Web 設計師和開發者可以使用的現代 CSS 的出色功能,討論一下用例和瀏覽器支持,并為大家提供一個簡單的示例。

        讓我們開始吧!

        新的 CSS 功能:現在 CSS 可以做什么

        這是 CSS 如今具有的一些令人驚奇的功能。

        自定義屬性與變量

        譯者注:這里的自定義屬性(Custom Properties)和我們所說的變量是一個東西,見 MDN Web Doc

        自定義屬性基本上允許我們定義 CSS 屬性的替代品以用于我們的設計。一個例子就能讓你理解為什么說這個功能有用:

        通常,在構建主題時,我們會選擇一種配色方案,然后在必要時聲明這些顏色。

        a {     color: #cd2653; }  .social-icons a {     background: #cd2653; }  .wp-block-button.is-style-outline {     color: #cd2653; }

        這種方法的問題是,如果我們想要更改一種顏色,則必須在每一處使用了這個顏色的地方做出對應的修改。盡管代碼編輯器可以通過搜索和替換輕松地做到這一點,但這仍然很煩人。尤其是如果我們只是想進行快速測試,并且必須再次撤消所有操作。

        更好的解決方案

        自定義屬性就解決了這個問題。在它們的幫助下,我們可以輕松地將剛才所說的配色分配給一個變量,然后每次使用該顏色時,只需將其作為 CSS 屬性輸入即可,如下所示:

        :root {     --global--color-primary: #28303d; }  a {     color: var(--global--color-primary); }  .social-icons a {     background: var(--global--color-primary); }

        這樣,每當我們想要對配色進行更改時,只需要在一個地方進行更改即可。太酷了吧?過去,我們還需要使用 Sass 之類的預處理器來使用變量,而現在它是 CSS 的原生功能。

        正如您在上面看到的,自定義屬性也非常易于使用。在 :root 選擇器下的文檔開始處定義變量(請注意,變量前面應使用雙連字符 --,這是將變量稱為自定義屬性的原因,它們也區分大小寫!)。之后我們就可以通過 var() 函數在整個文檔中使用它們。

        如果要更改變量,只需更改 :root 下面的聲明就可以了。

        此 CSS 功能的兼容性如何,瀏覽器支持非常好:

        2021年值得了解的10 個 CSS 功能(分享收藏)

        @supports

        接下來,有一個類似于媒體查詢的 CSS 規則。不過我們不是用它基于屏幕大小或設備類型編寫特定的樣式,而是根據用戶瀏覽器支持的 CSS 屬性和值,應用特定的樣式。

        這有什么用?

        正如你將在本文中看到的那樣,并非所有的瀏覽器和設備都支持所有 CSS 功能。盡管我們通常可以使用優雅降級來處理此問題,但在某些情況下,如果我們不專門包括對最新的技術的支持,則使用這些技術可能會嚴重破壞我們的網站的樣式結構。

        此外,我們還可以使用 @supports 為支持特定功能的更現代的瀏覽器添加額外的功能或樣式(這就是為什么使用的查詢 @supports 也稱為“功能查詢”的原因)。

        如何使用功能查詢

        如果您熟悉媒體查詢,則使用支持檢查將非常容易。使用方法如下:

        @supports (display: grid) {     .site-content {         display: grid;     } }

        如你所見,其實不過就是規則的聲明后跟要在方括號中檢查的屬性或屬性 — 值對,再加上我們平時用的 CSS 聲明用于說明滿足條件時要應用哪些樣式規則。

        上面的示例指出,如果瀏覽器支持 CSS 網格功能(稍后將對此進行詳細介紹),則應用 display: grid; 樣式到 .site-content 的元素。

        同樣重要的是要注意 @supports 支持使用運算符 notandor(也可以結合使用)以創建更具體的規則,例如對不支持該特定功能的瀏覽器的優雅降級:

        @supports not (display: grid) {     .site-content {         float: left;     } }

        為了能夠正常使用 @supports 功能,你需要知道哪些瀏覽器支持它(我知道,這是一種元數據)。好消息是**所有的現代瀏覽器都支持**。

        2021年值得了解的10 個 CSS 功能(分享收藏)

        但是,由于這些查詢的目的是啟用或禁用舊版瀏覽器無法處理的功能,因此請確保正確編寫它們。即如果要使用功能查詢,請為支持功能查詢的瀏覽器創建功能查詢條件。讓瀏覽器以它無法理解的方式忽略某些內容是沒有用的。

        Flexbox 間隙

        Flexbox 是另一種 CSS 布局模塊,而我們已經討論過它。長期以來,Flexbox 的缺點是它不支持間隙,我說的是,不支持定義行和列之間的間隔。

        幸運的是,瀏覽器對此 CSS 功能的支持正在改善。現在,我們可以開始使用 gaprow-gapcolumn-gap 屬性,在網格布局、Flexbox 布局和 Multi-Column 布局中創建間隙。

        這是一個在 Flexbox 中創建間隙的快速示例:

        .flex-gap-test { 	display: inline-flex; 	flex-wrap: wrap; 	gap: 16px; }  <div class="flex-gap-test"> 	<div>1</div> 	<div>2</div> 	<div>3</div> 	<div>4</div> 	<div>5</div> 	<div>6</div> </div>

        這就是效果:

        2021年值得了解的10 個 CSS 功能(分享收藏)

        盡管我們可以通過 margin 實現相同的布局,但是與簡單地聲明間隙大小相比,它需要

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品久久久久久国产91| 精品97国产免费人成视频| 国自产精品手机在线观看视频| 成人精品视频一区二区三区| 亚洲精品无码久久不卡| 精品国产毛片一区二区无码| 麻豆精品久久久一区二区| 成人伊人精品色XXXX视频| 亚洲精品无码永久在线观看你懂的| 国产精品单位女同事在线| 欧美精品免费在线| 国产99精品久久| 国产精品亚洲片在线| 蜜芽亚洲av无码精品色午夜| 亚洲国产精品无码一线岛国| 欧美日韩国产中文精品字幕自在自线| 国产高清在线精品一区二区| 99久久www免费人成精品| 久久99精品国产麻豆宅宅| 国产精品国产三级国产专播| 国产精品伦一区二区三级视频| 久久久久国产精品熟女影院| 久久亚洲美女精品国产精品| 亚洲精品你懂的在线观看| 中文字幕精品亚洲无线码一区| 亚洲欧美日韩精品久久亚洲区| 曰韩精品无码一区二区三区| 亚洲日韩精品一区二区三区| 色欲精品国产一区二区三区AV | 亚洲精品国产美女久久久| 亚洲精品偷拍视频免费观看 | 国产精品对白交换视频| 国产精品亚洲一区二区三区在线 | 亚洲精品专区| 日产精品久久久久久久| 精品国产AV一区二区三区| 69久久精品无码一区二区| 成人午夜视频精品一区| 久久国产乱子伦精品免费强| 一本一道久久精品综合| 久久国产美女免费观看精品|