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.mzph.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;助力理解不同卷积类型的特性与适用场景。…