TailwindCss快速上手

什么是Tailwind Css?

一个实用优先的 CSS 框架,可以直接在标记中组合以构建任何设计。

开始使用Tailwind Css

如何安装

下面是使用vite构建工具的方法

①安装 Tailwind CSS:

tailwindcss通过@tailwindcss/vitenpm安装。

npm install tailwindcss @tailwindcss/vite

②配置 Vite 插件:

将插件添加@tailwindcss/vite到您的 Vite 配置中。

import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'  //这一部分
export default defineConfig({plugins: [tailwindcss(),  // 这一部分],
})

③ 导入 Tailwind CSS:

自定义一个css文件,并向您的 CSS 文件添加一个@import导入 Tailwind CSS 的内容。

@import "tailwindcss";

在这里插入图片描述

④在main.js上引入这个css文件:

import '@/index.css'
import { createApp } from 'vue'
import App from './App.vue'createApp(App).mount('#app')

VS Code 的 IntelliSense

Visual Studio Code 的官方Tailwind CSS IntelliSense扩展通过为用户提供自动完成、语法突出显示和 linting 等高级功能增强了 Tailwind 开发体验。

在这里插入图片描述

  • 自动完成——为实用程序类以及CSS 函数和指令提供智能建议。
  • Linting — 突出显示 CSS 和标记中的错误和潜在缺陷。
  • 悬停预览— 将鼠标悬停在实用程序类上时显示其完整的 CSS。
  • 语法高亮——以便正确高亮使用自定义 CSS 语法的 Tailwind 功能。

注意

在 Tailwind CSS v4 中,tailwindcss.config.js 配置文件已被移除,希望人们可以使用我们直接生成的 CSS 变量,这要简单得多,并且会显着减少您的捆绑包大小。

Preflight

Preflight 是 Tailwind CSS 的核心基础样式层,基于 modern-normalize 构建,旨在消除浏览器默认样式的不一致,并提供一个统一的样式起点。它自动注入到 base 图层中,确保项目在设计系统约束内一致运行。

关键样式重置
1. 边距移除

Preflight 删除所有元素的默认边距,避免意外依赖浏览器默认值:

*,
::after,
::before,
::backdrop,
::file-selector-button {margin: 0;padding: 0;
}
2. 边框样式重置

统一所有元素的边框样式,确保 border 类可直接使用:

*,
::after,
::before,
::backdrop,
::file-selector-button {box-sizing: border-box;border: 0 solid;
}
3. 标题无样式

标题元素默认不设置字体大小和粗细,需手动定义:

h1,
h2,
h3,
h4,
h5,
h6 {font-size: inherit;font-weight: inherit;
}
4. 列表无样式

默认移除列表项目符号和编号:

ol,
ul,
menu {list-style: none;
}
5. 图像与替换元素
  • 图像默认为 block 布局,防止对齐问题:

    img,
    svg,
    video,
    canvas,
    audio,
    iframe,
    embed,
    object {display: block;vertical-align: middle;
    }
    
  • 图像和视频限制在容器宽度内,保持响应式:

    img,
    video {max-width: 100%;height: auto;
    }
    

添加自定义样式

Tailwind 从一开始就被设计为可扩展和可定制的,因此无论您构建什么,您都不会感觉自己正在与框架作斗争。

注意,下述内容都应在你自定义的css文件内操作,因为最新版本去除了配置文件

自定义主题

如果您想要更改调色板、间距比例、排版比例或断点等内容,请使用@themeCSS 中的指令添加自定义内容:

@theme {--font-display: "Satoshi", "sans-serif";--breakpoint-3xl: 120rem;--color-avocado-100: oklch(0.99 0 0);--color-avocado-200: oklch(0.98 0.04 113.22);--color-avocado-300: oklch(0.94 0.11 115.03);--color-avocado-400: oklch(0.92 0.19 114.08);--color-avocado-500: oklch(0.84 0.18 117.33);--color-avocado-600: oklch(0.53 0.12 118.34);--ease-fluid: cubic-bezier(0.3, 0, 0, 1);--ease-snappy: cubic-bezier(0.2, 0, 0, 1);/* ... */
}

为什么@theme不是:root

主题变量不仅仅是CSS变量 - 它们还指示 Tailwind 创建可在 HTML 中使用的新实用程序类。

由于主题变量的作用比常规 CSS 变量更多,Tailwind 使用特殊语法,以便始终明确定义主题变量。主题变量也必须在顶层定义,并且不能嵌套在其他选择器或媒体查询中,使用特殊语法可以强制执行此要求。

使用任意值

当你发现自己确实需要top: 117px在正确的位置获取背景图像时,请使用 Tailwind 的方括号表示法动态生成具有任意值的类:

<div class="top-[117px]"><!-- ... -->
</div>

这适用于框架中的所有内容,包括背景颜色、字体大小、伪元素内容等:

<div class="bg-[#bada55] text-[22px] before:content-['Festivus']"><!-- ... -->
</div>

函数和指令

指令是您可以在 CSS 中使用的自定义 Tailwind 特定规则,它为 Tailwind CSS 项目提供特殊功能。

@import

使用@import指令内联导入 CSS 文件,包括 Tailwind 本身:

@import "tailwindcss";

@theme

使用@theme指令定义项目的自定义设计标记,如字体、颜色和断点:

@theme {--font-display: "Satoshi", "sans-serif";--breakpoint-3xl: 120rem;--color-avocado-100: oklch(0.99 0 0);--color-avocado-200: oklch(0.98 0.04 113.22);--color-avocado-300: oklch(0.94 0.11 115.03);--color-avocado-400: oklch(0.92 0.19 114.08);--color-avocado-500: oklch(0.84 0.18 117.33);--color-avocado-600: oklch(0.53 0.12 118.34);--ease-fluid: cubic-bezier(0.3, 0, 0, 1);--ease-snappy: cubic-bezier(0.2, 0, 0, 1);/* ... */
}

@variant

使用@variant指令将 Tailwind 变体应用于 CSS 中的样式:

.my-element {background: white;@variant dark {background: black;}
}

@apply

使用@apply指令将任何现有的实用程序类内联到您自己的自定义 CSS 中:

.select2-dropdown {@apply rounded-b-lg shadow-md;
}.select2-search {@apply rounded border border-gray-300;
}.select2-results__group {@apply text-lg font-bold text-gray-900;
}

当您需要编写自定义 CSS(例如覆盖第三方库中的样式)但仍想使用设计令牌并使用您在 HTML 中习惯使用的相同语法时,这很有用。

@reference

如果您想在 Vue 或 Svelte 组件的块中或 CSS 模块中使用@apply或,则需要导入主题变量、自定义实用程序和自定义变体,以使这些值在该上下文中可用。@variant``<style>

为了在输出中不重复任何 CSS,请使用@reference指令导入主样式表以供参考,而无需实际包含样式:

<template><h1>Hello world!</h1>
</template><style>@reference "../../app.css";h1 {@apply text-2xl font-bold text-red-500;}
</style>

如果您只是使用默认主题而没有进行任何自定义,则可以tailwindcss直接导入:

<template><h1>Hello world!</h1>
</template><style>@reference "tailwindcss";h1 {@apply text-2xl font-bold text-red-500;}
</style>

--alpha()

使用该--alpha()函数调整颜色的不透明度:

输入 CSS

.my-element {color: --alpha(var(--color-lime-300) / 50%);
}

编译后的 CSS

.my-element {color: color-mix(in oklab, var(--color-lime-300) 50%, transparent);
}

–spacing()

使用该--spacing()函数根据您的主题生成间距值:

输入 CSS

.my-element {margin: --spacing(4);
}

编译后的 CSS

.my-element {margin: calc(var(--spacing) * 4);
}

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

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

相关文章

Web前端 (CSS篇)

什么是CSS&#xff1f; css(Cascading Style Sheets)是层叠样式表或级联样式表&#xff0c;是一组设置规则&#xff0c;用于控制web页面外观。 为什么使用CSS? CSS 用于定义网页的样式&#xff0c;包括针对不同设备和屏幕尺寸的设计和布局。 CSS 实例 body {background-col…

微服务2--服务治理与服务调用

前言 &#xff1a;本文主要阐述微服务架构中的服务治理&#xff0c;以及Nacos环境搭建、服务注册、服务调用&#xff0c;负载均衡以及Feign实现服务调用。 服务治理 服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。 服务注册&#xff1a;在…

智能麻将出牌组件

开篇引言​ 麻将作为一款风靡全球的策略性游戏&#xff0c;其复杂的规则和多变的牌局给玩家带来了无尽乐趣。在数字化时代&#xff0c;运用编程技术为麻将游戏赋予智能&#xff0c;实现自动出牌功能&#xff0c;不仅能提升玩家体验&#xff0c;还能深入探索算法在博弈游戏中的…

“大湾区珠宝艺境花园”璀璨绽放第五届消博会

2025年4月13日&#xff0c;第五届中国国际消费品博览会&#xff08;以下简称"消博会"&#xff09;重要主题活动——《大湾区珠宝艺境花园》启动仪式在海南国际会展中心2号馆隆重举行。由广东省金银珠宝玉器业厂商会组织带领粤港澳大湾区优秀珠宝品牌&#xff0c;以“…

基于前端技术的QR码API开发实战:从原理到部署

前言 QR码&#xff08;Quick Response Code&#xff09;是一种二维码&#xff0c;于1994年开发。它能快速存储和识别数据&#xff0c;包含黑白方块图案&#xff0c;常用于扫描获取信息。QR码具有高容错性和快速读取的优点&#xff0c;广泛应用于广告、支付、物流等领域。通过扫…

利用耦合有限元和神经网络计算的骨重塑模拟多尺度方法

Multiscale methodology for bone remodelling simulation using coupled finite element and neural network computation 摘要&#xff1a;本文旨在开发一种基于有限元分析&#xff08;FEA&#xff09;和神经网络&#xff08;NN&#xff09;计算的多尺度分层混合模型&#xf…

使用异步特征引发的错误error[E0195]: lifetime parameters or bounds on method `before_save`

问题描述&#xff1a; 使用SeaOrm保存实体到数据库时不想每次都设置更新时间&#xff0c;所以想通过实现ActiveModelBehavior在保存实体前统一设置更新时间 impl ActiveModelBehavior for ActiveModel {async fn before_save<C>(self, _db: &C, _insert: bool) -&…

TVS管与ESD保护二极管详解:原理、区别与应用选型

一、TVS管&#xff08;瞬态电压抑制二极管&#xff09; 1. 基本定义 TVS管&#xff08;Transient Voltage Suppressor&#xff09; 是一种用于抑制瞬态高压脉冲的半导体器件&#xff0c;通过雪崩击穿效应快速钳位电压&#xff0c;保护后端电路。 2. 核心特性参数 参数定义公…

Day08 【基于jieba分词实现词嵌入的文本多分类】

基于jieba分词的文本多分类 目标数据准备参数配置数据处理模型构建主程序测试与评估测试结果 目标 本文基于给定的词表&#xff0c;将输入的文本基于jieba分词分割为若干个词&#xff0c;然后将词基于词表进行初步编码&#xff0c;之后经过网络层&#xff0c;输出在已知类别标…

入门-C编程基础部分:6、常量

飞书文档https://x509p6c8to.feishu.cn/wiki/MnkLwEozRidtw6kyeW9cwClbnAg C 常量 常量是固定值&#xff0c;在程序执行期间不会改变&#xff0c;可以让我们编程更加规范。 常量可以是任何的基本数据类型&#xff0c;比如整数常量、浮点常量、字符常量&#xff0c;或字符串字…

第二阶段:数据结构与函数

模块4&#xff1a;常用数据结构 (Organizing Lots of Data) 在前面的模块中&#xff0c;我们学习了如何使用变量来存储单个数据&#xff0c;比如一个数字、一个名字或一个布尔值。但很多时候&#xff0c;我们需要处理一组相关的数据&#xff0c;比如班级里所有学生的名字、一本…

【C++算法】61.字符串_最长公共前缀

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;解释 题目链接&#xff1a; 14. 最长公共前缀 题目描述&#xff1a; 解法 解法一&#xff1a;两两比较 先算前两个字符串的最长公共前缀&#xff0c;然后拿这个最长公共前缀和后面一个来比较&…

JVM 调优不再难:AI 工具自动生成内存优化方案

在 Java 应用程序的开发与运行过程中&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;的性能调优一直是一项极具挑战性的任务&#xff0c;尤其是内存优化方面。不合适的 JVM 内存配置可能会导致应用程序出现性能瓶颈&#xff0c;甚至频繁抛出内存溢出异常&#xff0c;影响业…

纷析云开源财务软件:企业财务数字化转型的灵活解决方案

纷析云是一家专注于开源财务软件研发的公司&#xff0c;自2018年成立以来&#xff0c;始终以“开源开放”为核心理念&#xff0c;致力于通过技术创新助力企业实现财务管理的数字化与智能化转型。其开源财务软件凭借高扩展性、灵活部署和全面的功能模块&#xff0c;成为众多企业…

【数字图像处理】数字图像空间域增强(3)

图像锐化 图像细节增强 图像轮廓&#xff1a;灰度值陡然变化的部分 空间变化&#xff1a;计算灰度变化程度 图像微分法&#xff1a;微分计算灰度梯度突变的速率 一阶微分&#xff1a;单向差值 二阶微分&#xff1a;双向插值 一阶微分滤波 1&#xff1a;梯度法 梯度&#xff1…

基于Linux的ffmpeg python的关键帧抽取

1.FFmpeg的环境配置 首先强调&#xff0c;ffmpeg-python包与ffmpeg包不一样。 1) 创建一个虚拟环境env conda create -n yourenv python3.x conda activate yourenv2) ffmpeg-python包的安装 pip install ffmpeg-python3) 安装系统级别的 FFmpeg 工具 虽然安装了 ffmpeg-p…

C#进阶学习(四)单向链表和双向链表,循环链表(上)单向链表

目录 前置知识&#xff1a; 一、链表中的结点类LinkedNode 1、申明字段节点类&#xff1a; 2、申明属性节点类: 二、两种方式实现单向链表 ①定框架&#xff1a; ②增加元素的方法&#xff1a;因为是单链表&#xff0c;所以增加元素一定是只能在末尾添加元素&#xff0c;…

RK3588 Buildroot 串口测试工具

RK3588 Buildroot串口测试工具(含代码) 一、引言 1.1 目的 本文档旨在指导开发人员能快速测试串口功能 1.2 适用范围 本文档适用于linux 系统串口测试。 二、开发环境准备 2.1 硬件环境 开发板:RK3588开发板,确保其串口硬件连接正常,具备电源供应、调试串口等基本硬…

HOJ PZ

https://docs.hdoi.cn/deploy 单体部署 请到~/hoj-deploy/standAlone的目录下&#xff0c;即是与docker-compose.yml的文件同个目录下&#xff0c;该目录下有个叫hoj的文件夹&#xff0c;里面的文件夹介绍如下&#xff1a; hoj ├── file # 存储了上传的图片、上传的临…

EtherCAT 的优点与缺点

EtherCAT&#xff08;以太网控制自动化技术&#xff09;是一种高性能的工业以太网协议&#xff0c;广泛应用于实时自动化控制。以下是其核心优缺点分析&#xff1a; ​一、EtherCAT 的核心优点​ 1. ​超低延迟 & 高实时性​ ​原理​&#xff1a;采用"​Processing…