首頁 web前端 css教學 您不需要 CSS 預處理器

您不需要 CSS 預處理器

Nov 01, 2024 am 08:56 AM

You don

原生 CSS 在最近幾個月/幾年裡取得了長足的進步。在這篇文章中,我將回顧人們使用 SASS、LESS 和 Stylus 等 css 預處理器的主要原因,並向您展示如何使用原生 CSS 完成這些相同的事情。

分隔文件

分離檔案是人們使用預處理器的主要原因之一。儘管您已經能夠將另一個文件匯入到 CSS 文件中已經有一段時間了。看起來像這樣。

@import url("./utils.css");
登入後複製
登入後複製

您可以使用相對或絕對路徑,就像錨標記或任何其他資源上的 href 一樣。

這個預處理器之間的主要區別在於,雖然預處理器會在編譯時組合 then,但 CSS 將在運行時發出 http 請求。

嵌套規則

好吧,這是使用預處理器的主要原因。至少這是我過去使用它的主要原因。

但是 CSS 現在支援嵌套,而且它的工作方式主要是您習慣使用預處理器的方式。

header {
  h1 {
    font-weight: bold;
  }

  h2 {
    font-weight: normal;
  }
}

登入後複製
登入後複製

太棒了,像是我們幾十年來寫 CSS 的巨大優勢。

header h1 {
  font-weight: bold;
}

header h2 {
  font-weight: normal;
}
登入後複製
登入後複製

須藤選擇器

Sudo 選擇器在本機 CSS 中的運作方式與您可能習慣的預處理器相同。

button {
  color: blue;

  &:hover {
    color: purple;
  }
}
登入後複製

您可以在 MDN 上閱讀更多關於巢狀的資訊。

變數

預處理器長期以來的一個原因是變數。您可以將所有顏色、間距等保存在一個檔案中,並在各處進行全域更新。

現在你可以在原生 CSS 中做到這一點,一段時間。事實上,它在很多方面都比預處理器更好。

全域變數

全域變數包含在 :root 規則中。這些可以在任何地方引用。

:root {
  --bg-color: #333;
}
登入後複製

要使用變量,必須使用 var 標籤來引用

button {
  background-color: var(--bg-color);
}
登入後複製

作用域變數

您也可以在選擇器上設定變數的範圍,例如...

header {
  --bg-color: #999;
}
登入後複製

所以在這種情況下,引用 var(--bg-color);在標頭選擇器中將導致 #999;

在運行時重新賦值

因此,CSS 變數相對於預處理器的主要優點是它們可以在運行時被覆蓋,而預處理器一旦編譯,它就是永久性的。

例如,如果您有一個網站想要支援淺色和深色模式。使用 css 變數可以非常輕鬆地實現這一點。

:root {
  --bg-color: white;
}

body {
  background-color: var(--bg-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: black;
  }
}
登入後複製

要使用預處理器實現類似的功能,您需要使用 Javascript 在主體上切換類,並使用 .dark 類或類似內容覆蓋所有規則。

計算

大多數預處理器(例如 LESS、Stylus 或 SASS)都可以讓您對事物進行數學運算。就像你想把一個變數分成兩半等等。

您可以在原生 CSS 中使用 calc 函數來完成此操作。

@import url("./utils.css");
登入後複製
登入後複製

這有多酷?

變換顏色

所以另一個流行的功能(至少對我來說)是在CSS預處理器中使顏色變亮和變暗。現在您可以在本機 CSS 中執行此操作,也可以使用顏色混合。

header {
  h1 {
    font-weight: bold;
  }

  h2 {
    font-weight: normal;
  }
}

登入後複製
登入後複製

上面的內容相當於您在預處理器中使用 lighten(red, 50%) 所做的事情。

要變暗,只需與黑色混合而不是白色

header h1 {
  font-weight: bold;
}

header h2 {
  font-weight: normal;
}
登入後複製
登入後複製

我希望下次你選擇在專案中使用什麼工具時,你會嘗試原生 CSS。已經走過很長一段路了。

以上是您不需要 CSS 預處理器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1276
29
C# 教程
1256
24
靜態表單提供商的比較 靜態表單提供商的比較 Apr 16, 2025 am 11:20 AM

讓我們嘗試在這裡造成一個術語:“靜態表單提供商”。你帶上html

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom 每周平台新聞:HTML加載屬性,主要的ARIA規格以及從iframe轉移到Shadow dom Apr 17, 2025 am 10:55 AM

在本週的平台新聞綜述中,Chrome引入了一個用於加載的新屬性,Web開發人員的可訪問性規範以及BBC Move

帶有HTML對話框元素的一些動手 帶有HTML對話框元素的一些動手 Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

紙張形式 紙張形式 Apr 16, 2025 am 11:24 AM

購買或建造是技術的經典辯論。自己構建東西可能會感覺更便宜,因為您的信用卡賬單上沒有訂單項,但是

'訂閱播客”鏈接應在哪裡? '訂閱播客”鏈接應在哪裡? Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

託管您自己的非JavaScript分析的選項 託管您自己的非JavaScript分析的選項 Apr 15, 2025 am 11:09 AM

有很多分析平台可幫助您跟踪網站上的訪問者和使用數據。也許最著名的是Google Analytics(廣泛使用)

See all articles