React 播客專欄 Vol.13|樣式不難搞,Tailwind CSS 與 SVG 實戰入門

👋 歡迎回到《前端達人 · React 播客書單》第 13 期(正文內容為學習筆記摘要,音頻內容是詳細的解讀,方便你理解),請點擊下方收聽

視頻版:

文字版:

今天我們進入樣式化的實戰環節,講講兩個現代前端項目里超常用的工具:

Tailwind CSS 和 SVG 圖標。

一、Tailwind 是什么?為什么前端都在用?

你可能聽說過 Tailwind CSS,但不知道它和傳統 CSS 有什么不同。

一句話解釋:

Tailwind 是一個實用優先(Utility-first)的 CSS 框架。

什么意思?

和傳統 CSS 的?.btn {}.header {}?不同,Tailwind 的樣式就像一堆拼圖積木,例如:

bg-white ? // 背景白
text-center // 文本居中
px-4 ? ? ? // 左右 padding 是 1rem

你用這些類,就像在組件上堆樂高,不需要自己寫樣式表。

📌 重點詞匯:Utility-first, 組合類名, 可定制

二、Tailwind 怎么安裝和用起來?

Tailwind 一般作為 PostCSS 插件加入項目:

npm install tailwindcss
npx tailwind init

然后在?index.css?中寫三行指令:

@tailwind?base;
@tailwind?components;
@tailwind?utilities;

再配置?tailwind.config.js?指定掃描路徑,就可以開寫了。

📦 重點概念:構建時生成、按需打包、沒有運行時性能開銷。

三、Tailwind 的工作機制是怎樣的?

它的原理是:構建時掃描 + 只生成你用到的類名

  • 用了哪些類 ? 就打包哪些類

  • 沒用的就自動 purge 掉

  • 最終生成一個超小的 CSS 文件

這就避免了傳統框架樣式臃腫的問題,性能非常可觀。

四、SVG 是啥?圖標為啥推薦用它?

SVG,全稱 Scalable Vector Graphics。

它是數學公式畫出來的圖形,和像素無關,放大不模糊,非常適合做圖標。

優點有三:

  1. 📐 可縮放不失真

  2. 🎨 可用 CSS 直接控制顏色、大小

  3. 🔁 可復用、組合、嵌套使用

五、React 中使用 SVG 有兩種方式

? 方法一:作為圖片引入

import?logo?from?'./logo.svg';
<img?src={logo}?alt="logo"?/>

? 方法二:作為組件使用(推薦!)

import?{ ReactComponent?as?Logo }?from?'./logo.svg';
<Logo?className="w-6 h-6 text-blue-500"?/>

這種方式能讓你像操作組件一樣,控制 SVG 的大小、顏色、交互狀態,適合動態 UI。

六、實戰:Alert 組件中整合 SVG + Tailwind

假設你有一個 Alert 組件,需要根據類型顯示不同樣式:

  • info:藍色信息圖標 + 淺藍背景

  • warning:黃色警告圖標 + 淡黃背景

  • closable:支持點擊關閉按鈕

你可以這么做:

<div className="flex items-center bg-blue-100 p-4"><InfoIcon?className="w-7 mr-2"?/><span?className="text-blue-600">This is an info alert</span><button><CrossIcon?/></button>
</div>

配合 React 的條件渲染邏輯,效果又優雅又靈活!

七、本日重點復盤 🧠

  • ? Tailwind 是組件樣式神器,用類名組合就能搞定樣式

  • ? 它不需要運行時,構建時自動裁剪多余類名,性能優秀

  • ? SVG 是適合圖標的矢量圖,清晰、可控、靈活

  • ? React 支持將 SVG 作為組件導入,推薦搭配 Tailwind 使用

  • ? 推薦用 Alert 組件練練手,實操更扎實

👋 喜歡這種“邊聽邊練”的內容?

歡迎訂閱《前端達人 · React播客》 每周一更,我們一起把 React + TS 學明白!

#React? ??#React播客???#前端達人? ??#前端播客???#CSS??#TypeScript??#TailwindCss?#SVG

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83835.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83835.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83835.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

matlab慕課學習3.5

于20250520 3.5 用while 語句實現循環結構 3.5.1while語句 多用于循環次數不確定的情況&#xff0c;循環次數確定的時候用for更為方便。 3.5.2break語句和continue語句 break用來跳出循環體&#xff0c;結束整個循環。 continue用來結束本次循環&#xff0c;接著執行下一次…

鴻蒙開發進階:深入解析ArkTS語言特性與開發范式

一、前言 在鴻蒙生態開發體系中&#xff0c;DevEco Studio作為核心開發工具為開發者提供了高效的集成環境。而在掌握工具使用之后&#xff0c;深入理解鴻蒙開發語言成為構建高質量應用的關鍵。本文將聚焦于鴻蒙系統的核心開發語言——ArkTS&#xff0c;全面解析其起源演進、聲…

P2P最佳網絡類型

跑P2P最佳的網絡類型是什么&#xff1f;全錐型NAT1網絡它屬于最寬松的網絡環境&#xff0c;IP和端口都沒有限制&#xff0c;穿透率在95%以上&#xff0c;P2P連接成功率極高。使用全錐型網絡的節點收益比其他受限網絡類型高出3倍左右&#xff0c;能顯著提升PCDN的跑量和收益。 其…

電子制造企業智能制造升級:MES系統應用深度解析

在全球電子信息產業深度變革的2025年&#xff0c;我國電子信息制造業正經歷著增長與轉型的雙重考驗。據權威數據顯示&#xff0c;2025年一季度行業增加值同比增長11.5%&#xff0c;但智能手機等消費電子產量同比下降1.1%&#xff0c;市場競爭白熱化趨勢顯著。疊加關稅政策調整、…

在nextjs項目當中使用wagmi連接MetaMask SDK

Wagmi 是一個為以太坊和 EVM 兼容鏈構建的 React Hooks 庫,專為簡化 Web3 應用開發而設計。它提供了一組強大且類型安全的工具,使開發者能夠更方便地與錢包(如 MetaMask、WalletConnect 等)和智能合約進行交互。 Wagmi 的全稱其實并不是一個傳統意義上的縮寫,它源自加密社…

DeepSeek+PiscTrace+YOLO:迅速實現Mask掩碼摳圖

在計算機視覺任務中&#xff0c;特別是在目標檢測和實例分割中&#xff0c;我們常常需要從圖像中提取特定的目標區域。這可以通過使用目標檢測模型&#xff08;如 YOLOv8&#xff09;獲得的檢測框&#xff08;bounding boxes&#xff09;和掩碼&#xff08;masks&#xff09;來…

超級維特根斯坦

AI智能體核心指令:語言智慧融合體 - 深度思辨、專業應用與協同創新大師 1. 角色設定 (Persona) 你將扮演一位“語言智慧融合體”AI,一個集大成的、具備卓越情境智能、精妙引導藝術與長時程戰略規劃能力的語言思想、藝術與應用科學伙伴。你的核心人格與方法論基于以下杰出貢…

CentOS Stream安裝MinIO教程

1. 下載 MinIO 二進制文件 # 進入 MinIO 安裝目錄 sudo cd /usr/local/bin/# 下載 MinIO 二進制文件&#xff08;替換為最新版本鏈接&#xff09; wget https://dl.min.io/server/minio/release/linux-amd64/minio chmod x minio2. 創建專用用戶和存儲目錄 # 創建 minio 用戶…

Android7 Input(八)App Input事件接收器InputEventReceiver

概述 上一個章節&#xff0c;我們講解了App如何使用InputChannel通道與input系統服務建立通信的橋梁的過程&#xff0c;本章我們講述App如何從input系統服務中獲取上報的輸入事件&#xff0c;也就是我們本章講述的InputEventReceiver。 本文涉及的源碼路徑 frameworks/base/c…

VS2017編譯librdkafka 2.1.0

VS2017編譯librdkafka 2.1.0 本篇是 Windows系統編譯Qt使用的kafka(librdkafka)系列中的其中一篇,編譯librdkafka整體步驟大家可以參考: Windows系統編譯Qt使用的kafka(librdkafka) 由于項目需要,使用kafka,故自己編譯了一次,編譯的過程,踩了太多的坑了,特寫了本篇…

第 1 章:數字 I/O 與串口通信(GPIO UART)

本章目標: 掌握 GPIO 的硬件原理、寄存器配置與典型驅動框架 深入理解 UART/USART 的幀格式、波特率配置、中斷與 DMA 驅動 通過實戰案例,將 GPIO 與 UART 結合,實現 AT 命令式外設控制 章節結構 GPIO 概述與硬件原理 GPIO 驅動實現:寄存器、中斷與去抖 UART/USART 原理與幀…

通義千問-langchain使用構建(三)

目錄 序言docker 部署xinference1WSL環境docker安裝2拉取鏡像運行容器3使用的界面 本地跑chatchat1rag踩坑2使用的界面2.1配置個前置條件然后對話2.2rag對話 結論 序言 在前兩天的基礎上&#xff0c;將xinference調整為wsl環境&#xff0c;docker部署。 然后langchain chatcha…

winfrom中創建webapi

參照一下兩篇 Winform窗體利用WebApi接口實現ModbusTCP數據服務_winform webapi-CSDN博客 C#.NET WebApi返回各種類型(圖片/json數據/字符串)&#xff0c;.net圖片轉二進制流或byte - 冰封的心 - 博客園

文本分類任務Qwen3-0.6B與Bert:實驗見解

文本分類任務Qwen3-0.6B與Bert&#xff1a;實驗見解 前言 最近在知乎上刷到一個很有意思的提問Qwen3-0.6B這種小模型有什么實際意義和用途。查看了所有回答&#xff0c;有人提到小尺寸模型在邊緣設備場景中的優勢&#xff08;低延遲&#xff09;、也有人提出小模型只是為了開…

前端獲取用戶的公網 IP 地址

可以使用免費的免費的公共服務網站 一&#xff1a;https://www.ipify.org/ 獲取 JSON 格式的 IP 地址 // 舊地址不好使 // https://api.ipify.org/?formatjson // 新地址 https://api64.ipify.org/?formatjson 二&#xff1a;https://ipinfo.io/ https://ipinfo.io/ 三&a…

12.vue整合springboot首頁顯示數據庫表-實現按鈕:【添加修改刪除查詢】

vue整合springboot首頁顯示數據庫表&#xff1a;【添加修改刪除查詢】 提示&#xff1a;幫幫志會陸續更新非常多的IT技術知識&#xff0c;希望分享的內容對您有用。本章分享的是node.js和vue的使用。前后每一小節的內容是存在的有&#xff1a;學習and理解的關聯性。【幫幫志系…

LLM筆記(九)KV緩存(2)

文章目錄 1. 背景與動機2. 不使用 KV Cache 的情形2.1 矩陣形式展開2.2 計算復雜度 3. 使用 KV Cache 的優化3.1 核心思想3.2 矩陣形式展開3.3 計算復雜度對比 4. 總結5. GPT-2 中 KV 緩存的實現分析5.1 緩存的數據結構與類型5.2 在注意力機制 (GPT2Attention) 中使用緩存5.3 緩…

2025年滲透測試面試題總結-各廠商二面試題02(題目+回答)

網絡安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 各廠商二面試題02 模塊六&#xff1a;基礎技術擴展 1. HTTP請求方式 2. 域名解析工具與技術 3. Web十…

專業漏洞掃描機構如何助力企業保障安全并提升競爭力?

在這個信息化的當下&#xff0c;專業漏洞掃描機構扮演著至關重要的角色。他們運用專業的技術和手段&#xff0c;對各種軟件和系統進行細致的漏洞檢測&#xff0c;確保其安全可靠&#xff0c;同時幫助企業提高產品質量和市場競爭力。 服務項目 我們專注于向客戶供應周到詳盡的…

卷積神經網絡中的二維卷積與三維卷積詳解

【內容摘要】 本文聚焦卷積神經網絡中的二維卷積與三維卷積&#xff0c;詳細解析兩者的區別、操作原理及應用場景&#xff0c;涵蓋二維/三維卷積操作示意圖、多通道輸入處理方式&#xff0c;以及RGB圖像不采用三維卷積的原因&#xff0c;助力理解不同卷積類型的特性與適用場景。…