Tailwind CSS 原子化开发初体验

news2024/9/25 3:27:49

Tailwind CSS 的工作原理是扫描所有 HTML 文件、JavaScript 组件以及任何模板中的 CSS 类(class)名,然后生成相应的样式代码并写入到一个静态 CSS 文件中。他快速、灵活、可靠,没有运行时负担。再也不用为了取一个 classname 类名而烦恼了。

Tailwind CSS

一、安装

这里以 React + Vite 为例

  1. 安装依赖,生成 postcss.config.jstailwind.config.js 配置文件
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init
  1. postcss.config.js 中引入 tailwindcssautoprefixer
module.exports = {
  plugins: {
    tailwindcss: {},
    autoprefixer: {},
  }
}
  1. 配置 tailwind.config.js 文件
/** @type {import('tailwindcss').Config} */
export default {
  content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
  theme: {
    extend: {},
  },
  plugins: [],
  corePlugins: {
    preflight: false,
  },
}
  1. 新建 tailwind.css 入口文件
/* @/assets/css/tailwind.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
  1. main.jsx 中引入 tailwind.css 文件
import { ConfigProvider } from 'antd'
import ReactDOM from 'react-dom/client'
import zhCN from 'antd/locale/zh_CN'
import Routers from '@/router'
import '@/assets/css/tailwind.css'
import 'dayjs/locale/zh-cn'

ReactDOM.createRoot(document.getElementById('root')).render(
    <ConfigProvider locale={zhCN}>
      <Routers />
    </ConfigProvider>
)

二、使用

1、width、height、line-height

常用值:

  • w-[200px]:width: 200px;
  • h-[100vh]:height: 100vh;
  • min-h-[100vh]:min-height: 100vh;
  • max-h-[100vh]:max-height: 100vh;
  • w-full:width: 100%;
  • h-[100%]:height: 100%;
  • min-h-full:min-height: 100%;
  • min-h-[calc(100vh-60px)]: min-height: calc(100vh - 60px);
  • leading-none:line-height: 1;
  • leading-tight:line-height: 1.25;
  • leading-3:line-height: 0.75rem; /* 12px */
  • leading-4:line-height: 1rem; /* 16px */
  • leading-[20px]:line-height: 20px;
<div class="w-[200px] min-h-[100vh]"></div>
<!--等价于-->
<div style="width: 200px; min-height: 100vh"></div>

2、background

<div class="bg-[#f00]"></div>
<!--等价于-->
<div style="background-color: #f00"></div>

3、font、text-align

<div class="text-[#f00] text-[20px] font-bold text-center"></div>
<!--等价于-->
<div style="color: #f00; font-size: 20px; font-weight: 700; text-align: center;"></div>

4、border、border-radius

常用值:

  • rounded-noneborder-radius: 0;
  • rounded:0.25rem; /* 4px */
  • rounded-md:小圆角
  • rounded-lg:大圆角
  • rounded-full:圆形
<div class="border-[1px] border-[#f00] border-solid rounded-[6px]"></div>
<!--等价于-->
<div style="border: 1px solid #f00; border-radius: 6px;"></div>

参考:https://www.tailwindcss.cn/docs/border-radius

5、margin、padding

常用值:

  • m-0:margin: 0;
  • mx-0: margin-left: 0; margin-right: 0;
  • my-0: margin-top: 0; margin-bottom: 0;
  • mt-[10px]: margin-top: 1px;
  • m-[15px]: margin: 15px;
<div class="m-[10px] p-[10px]"></div>
<!--等价于-->
<div style="margin: 10px; padding: 10px;"></div>

参考:https://www.tailwindcss.cn/docs/margin

6、flex

常用值:

  • flex:display: flex;
  • flex-row:flex-direction: row;
  • flex-col:flex-direction: column;
  • flex justify-between: justify-content: space-between;
  • flex justify-center: justify-content: center;
  • flex items-center: align-items: center;
<div class="flex flex-row justify-between items-center"></div>
<!--等价于-->
<div style="display: flex; flex-direction: row; justify-content: space-between; align-items: center;"></div>

参考:https://www.tailwindcss.cn/docs/flex

7、overflow

常用值:

  • overflow-hidden:overflow: hidden;
  • overflow-auto:overflow: auto;
  • overflow-x-auto:overflow-x: auto;
  • overflow-y-scroll:overflow-y: scroll;
<div class="overflow-y-scroll"></div>
<!--等价于-->
<div style="overflow-y: scroll;"></div>

参考:https://www.tailwindcss.cn/docs/overflow

8、hover、focus、active、first、last

常用值:

  • hover:bg-[#f00]:鼠标悬浮时的背景色
  • first:bg-[#f00]:第一个子元素的背景色
<div class="hover:bg-[#f00] focus:bg-[#f00] active:bg-[#f00]"></div>

参考:https://www.tailwindcss.cn/docs/hover-focus-and-other-states

9、important

<div class="!tw-font-bold"></div>
<!--等价于-->
<div style="font-weight: 700 !important;"></div>

参考:https://www.tailwindcss.cn/docs/configuration#important

10、display

常用值:

  • hidden:display: none;
  • block:display: block;
  • inline-block:display: inline-block;
  • flex:display: flex;
<div class="flex"></div>
<!--等价于-->
<div style="display: flex;"></div>

11、white-space、text-overflow

常用值:

  • whitespace-normal:white-space: normal;
  • whitespace-nowrap:white-space: nowrap;
  • whitespace-pre:white-space: pre;
  • whitespace-pre-wrap:white-space: pre-wrap;
  • whitespace-break-spaces:white-space: break-spaces;
  • text-ellipsis:text-overflow: ellipsis;
  • text-clip:text-overflow: clip;
  • truncate:text-overflow: ellipsis; overflow: hidden; white-space: nowrap;(文本溢出隐藏)
<div class="w-[150px] whitespace-nowrap overflow-hidden text-ellipsis">文本溢出隐藏</div>
<!--简洁写法-->
<div class="w-[150px] truncate">truncate 文本溢出隐藏</div>
<!--等价于-->
<div style="width: 150px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">truncate 文本溢出隐藏</div>

欢迎访问:天问博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1334817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 FFmpeg 清除文件夹下所有 .mp4 文件声音

运行以下命令来清除声音&#xff1a; ffmpeg -i input.mp4 -c copy -an output.mp4这个命令会将 “input.mp4” 替换为你要处理的 .mp4 文件名。它会生成一个新的文件名为 “output.mp4” 的文件&#xff0c;该文件是没有声音的副本。 如果你想要直接替换原始文件&#xff0c;…

文件名修改方法:文件批量重命名,并将扩展字母统一转换为大写

在文件管理中&#xff0c;文件名的修改是一项常见的任务。有时候&#xff0c;可能要将文件名进行批量重命名&#xff0c;或者将所有的扩展名统一转换为大写。那怎么操作会更简单快速些呢&#xff1f;下面将详细讲解云炫文件管理器如何实现这一目标&#xff0c;批量用随机数字重…

MongoDB查询文档

3.5 MongoDB 查询文档 MongoDB 查询文档使用 find() 方法。 find() 方法以非结构化的方式来显示所有文档。find()查询数据的语法格式如下&#xff1a; db.collection.find(query, projection)[.pretty()] query &#xff1a;可选&#xff0c;使用查询操作符指定查询条件 pr…

哪个牌子的台灯对学生的视力好?五款学生备考台灯推荐

护眼台灯在如今市场中销量越来越高&#xff0c;我作为一名电器测评博主&#xff0c;非常支持大家使用护眼台灯来提升日常的照明光线环境&#xff0c;它通过LED灯和专业的护眼技术&#xff0c;可以有效缓解用眼疲劳、帮助放松和舒适照明。但需要注意的是&#xff0c;目前市场中品…

【excel密码】Excel工作表不能复制或移动

为什么excel文件打开之后&#xff0c;工作表里是可以编辑的&#xff0c;但是想要移动工作表或者复制、重命名等操作&#xff0c;这是什么原因&#xff1f;其实这是因为设置了工作簿保护&#xff0c;设置了保护的工作簿无法对整张工作表进行操作。 想要取消这种保护&#xff0c;…

操作系统期末复习知识点二计算与应用

1.理解银行家算法判断死锁的定理并能计算相关的参数。 2.能利用LRU、FIFO算法求缺页率。 3.纯页式管理中&#xff0c;求逻辑地址对应的物理地址&#xff0c;页号、页内地址长度&#xff0c;画出逻辑地址的格式&#xff0c;在引入块表时&#xff0c;求出有效访问时间。 4.可变分…

西门子PLC通过PROFINET协议与多功能电表通讯

西门子PLC通过PROFINET协议与多功能电表通讯 项目要求 西门子S71200PLC需要通过PROFINET协议和多功能电表通讯&#xff0c;读取线电压、相电压、线电流、相电流、有功功率、无功功率等参数。 项目实施 采用网关NET90-PN-MBT&#xff08;以下简称“网关”&#xff09;&#…

【Java】SpringBoot快速整合Kafka

目录 1.什么是Kafka&#xff1f; 主要特点和概念&#xff1a; 主要组成部分&#xff1a; 2.Kafka可以用来做什么&#xff1f; 3.SpringBoot整合Kafka步骤&#xff1a; 1. 添加依赖: 2. 配置 Kafka: 3. 创建 Kafka 生产者: 4. 创建 Kafka 消费者: 5. 发布消息: 6. 使…

探索AIGC时代效能提升新路径,企业快成长AI技术创新论坛广州站圆满闭幕

在广泛数据的不断滋养下&#xff0c;AIGC技术愈发成熟。利用AIGC技术的生成能力辅助进行文案撰写、海报生成、美术设计已成为众多行业的高频需求。如今AIGC技术已走入更新发展的新时期&#xff0c;挖掘能力、探索场景&#xff0c;沉淀更多高效易用的精细化模型&#xff0c;也成…

3D渲染农场什么比较好用 2024渲染农场最新收费实测

随着数字设计领域的进步与发展&#xff0c;对于3D渲染服务的需求日益增加。3D渲染农场这一概念因此变得极为重要&#xff0c;特别是在电影制作、建筑可视化以及产品设计等行业中。现在&#xff0c;让我们深入了解3D渲染农场的定义以及市面上优秀的3D渲染服务提供商。 一、什么是…

Shell脚本应用(四)

一、文本处理器 1、sed工具 sed (Stream EDitor&#xff09;是-个强大而简单的文本解析转换工具&#xff0e;可以读取文本&#xff0e;并根据指定的条件对文本内容进行编辑&#xff08;删除&#xff0e;替换&#xff0e;添加、移动等)&#xff0c;最后输出所有行或者仅输出处理…

vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)

下载安装HBuilder X编辑器 https://www.dcloud.io/hbuilderx.html 新建 5APP 项目 打开 HBuilder X&#xff0c;新建项目 此处项目名以 ‘test’ 为例 含跨域代理的vue项目改造 若 vue 项目中含跨域代理&#xff0c;如 vue.config.js module.exports {publicPath: "./&…

探索 HTTP 请求的世界:get 和 post 的奥秘(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【C++项目】ninja报错及解决方法

一、问题描述 C项目中&#xff0c;运行文件时出现以下报错&#xff1a; “ninja: error: ‘D:/Desktop/C Games Chapter 10/10.2 缁ф壙璁块棶鏉冪殑鎺у埗/simple_boss2.cpp’, needed by ‘CMakeFiles/C___Games_Chapter_10_2.dir/10.2_缁ф壙璁块棶鏉冪殑鎺у埗/simple_boss…

基于Java开发的微信约拍小程序

一、系统架构 前端&#xff1a;vue | element-ui 后端&#xff1a;springboot | mybatis 环境&#xff1a;jdk8 | mysql8 | maven | mysql 二、代码及数据库 三、功能说明 01. 首页 02. 授权登录 03. 我的 04. 我的-编辑个人资料 05. 我的-我的联系方式 06. …

基于5G智能网关的智慧塔吊监测方案

塔吊是建筑施工中必不可少的设施&#xff0c;由于塔吊工作重心高、起重载荷大、人工视距/视角受限等因素&#xff0c;也使得塔吊在工作过程中着较多的危险因素。对此&#xff0c;可以部署基于工业5G智能网关搭建智慧塔吊安全监测系统&#xff0c;实现对塔吊运行的全局精细监测感…

电机控制——底软需求

PWM 电机控制输出六路PWM&#xff0c;可分为ABC三相&#xff0c;每相包含上桥和下桥两路&#xff0c;上下桥不可同时打开。 配置的时候&#xff0c;六路PWM要设置为居中对齐模式&#xff0c;正好可以实现PMSM七段式控制法。 配置一路PWM作为基准&#xff0c;六路PWM都引用该基…

YOLOv5 目标计数 | 图片上绘制计数结果

修改方法: 只需要改 detect.py for path, im, im0s, vid_cap, s in dataset: 下新增一行 class_counts = {} class_counts[int(c)] = class_counts.get(int(c

makefile教程(1)

makefile教程 makefile是什么&#xff1a; makefile是用户自行完成的IDE&#xff08;integrated development environment集成开发环境&#xff09;程序&#xff0c;与传统的操作系统下的编译不同&#xff0c;makefile可以通过用户自行安排&#xff0c;决定文件的编译顺序&am…

【Java动态代理如何实现】

✅Java动态代理如何实现 ✅JDK动态代理和Cglib动态代理的区别 ✅拓展知识仓✅静态代理和动态代理的区别✅动态代理的用途✅Spring AOP的实现方式&#x1f4d1;JDK 动态代理的代码段&#x1f4d1;Cglib动态代理的代码块 ✅注意事项&#xff1a; 在Java中&#xff0c;实现动态代理…