使用Tailwind CSS的几个小Tips
前情
Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全部拆分为原子级别。它的工作原理是扫描所有 HTML 文件、JavaScript 文件以及任何模板中的 CSS 类名,然后生成相应的样式代码并写入到一个静态 CSS 文件中。Tailwind CSS 快速、灵活、可靠、没有运行时负担。自从接触了Tailwind CSS后,目前已经是我项目的标配了。
用了一段时间的Tailwind CSS,发现了一些使用注意Tips,知道这些小Tips可以让你使用Tailwind CSS更加顺利,同时对于新手减少入门的心智负担。
Tips内容
Tips 1:无所不能[]
Tailwind CSS虽然提供了很多优秀的基础样式如w-1、p-1、m-1…,但业务总是变化莫测,遇到基本样式无法满足的,我们就可以使用[]来自由定义符合自己需求的原子化样式名,我使用Tailwind CSS很少用到Tailwind CSS自带原子化样式名,特别尺寸颜色绝大部分都是通过[]来实现。
<div class="w-[100px] h-[100px] text-[blue] font-[700] m-[10px] p-[10px] top-[10px] rounded-[10px] z-[999] bg-[green] border-[1px] border-[yellow] border-dashed shadow-[0_0_5px_rgba(0,0,0,.3)] ">
中
</div>
体验链接:https://play.tailwindcss.com/MXx3AnIu4t
Tips 2:样式优先级控制!
<div class="w-[100px] h-[100px] bg-[green]" style="background-color:red">red</div>
<div class="w-[100px] h-[100px] !bg-[green]" style="background-color:red">green</div>
因Tailwind CSS是原子化CSS框架,它的优先级是相对比较低的,当遇到和别的样式冲突时,可以通过样式加!来提高样式优先级,我有一篇博文专门介绍Tailwind CSS等级提升的: Tailwind CSS样式优先级控制前情 Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全 - 掘金 Tailwind CSS样式优先级控制 - !win ! - 博客园
体验链接:https://play.tailwindcss.com/T1UaU5b4yJ
Tips 3:一些比较生僻的原子化样式
<!-- 字体加粗font-来做的,不是text- -->
<div class="font-bold">font-</div>
<!-- 行高用leading- -->
<div class="leading-[32px] bg-[red]">line-height</div>
<!-- 字间距用tracking- -->
<div class="tracking-[10px]">tracking</div>
<!-- 单行溢出省略号用truncate -->
<div class="truncate w-[108px]">我们是明天的太阳,祖国的花朵,其实是牛马</div>
<!-- 多行省略号用line-clamp- -->
<div class="line-clamp-2 w-[108px]">我们是明天的太阳,祖国的花朵,其实是牛马</div>
上面这些样式名是我经常想不起来要查文挡的,个人觉得是比较生僻的,可以特殊记一下,其它原子化样式,都是比较好记的如flex、border-、text-、relative…,都是有一定关联的
体验链接:https://play.tailwindcss.com/RFUAGYVKwY
Tips 4:一些使用上有一定技巧的原子化样式
<!-- 二色渐变 -->
<div class="h-[30px] bg-gradient-to-r from-cyan-500 to-blue-500"></div>
<!-- 三色渐变 -->
<div class="h-[30px] bg-gradient-to-r from-[green] from-10% via-[red] via-50% to-[yellow] to-90%"></div>
<!-- 鼠标hover,按下样式 -->
<div class="w-full h-[30px] bg-[red] hover:bg-[green] active:bg-[yellow]"></div>
<!-- 父级鼠标hover,按下,子孙元素样式 -->
<div class="w-full h-[60px] flex items-center group bg-[green]">
<div class="w-full h-[30px] bg-[red] group-hover:bg-[green] group-active:bg-[blue]"></div>
</div>
<!-- 对于自定义背景图得用bg-[url()],背景尺寸的得需要使用bg-[length宽_高] -->
<div class="w-[100px] h-[100px] bg-[url('https://placehold.jp/999999/ff4400/300x300.png?text=EXAMPLE')] bg-[length:100px_100px]"></div>
目前还没有找到渐变怎么实现超过三个的,如果有小伙伴知道,欢迎留言分享,谢谢
体验地址:https://play.tailwindcss.com/zBfuWpeR7f
Tips 5:用好官方文挡和插件
我第一次知道Tailwind CSS是同事推荐的,在以前我有听过原子化CSS的概念,知道那要记很多样式,导致有一定的心理压力,所以一开始是排斥的,但直到自己使用后才发现,在使用Tailwind CSS的时候其实并没有特别大的心理压力。主要原因如下:
- 大部分样式都很容易联想到,如文本:text-、背景:bg-、边框:border-、margin:m-、padding:p-,都是很容易理解的,甚至跟原始样式就有一定关系的,稍微用一用就记住了,实在想不想在官方文挡搜索很快也能找到答案
- 用好官方的插件,你不需要记住太多,有一定印象输入首字母就会有对应的提示
VS Code插件地址:Tailwind CSS IntelliSense - Visual Studio Marketplace
HBuilderX插件地址:Tailwind CSS语言服务 - DCloud 插件市场。因为我写这篇文章的时候正在开发uni-app的项目,附上HBuilderX下的提示效果图

WebStorm默认就支持Tailwind CSS提示,无需安装插件
总结
使用Tailwind CSS的好处:
- 不用再花费精力去取样式名了,都是原子化的样式,信手拈来
- 项目CSS体积最小化,如以前用样式名,你相同样式会在不同地方书写,现在全部都是一个原子化CSS了
- 提高UI还原效率,原始开发方法经常要在样式和html间切来切去,很浪费时间,现在基本可以做到不离开html就还原出UI
理想下才有完美的东西,什么东西都是有二面性的,使用Tailwind CSS目前遇到的问题:
- 使用Tailwind CSS会导致冗长的样式名,目前我身边同事就很排斥,觉得没眼看
- 元素定位的不是特别方便,调试样式的时候,我很难通过样式名很快定位到元素在代码中位置
- 并不是原生支持,为了使用Tailwind CSS需要额外的配置
期望
上面只是个人在使用中发现的一些小Tips,如果你有好的Tips欢迎一起讨论,共同学习进步。
期待你的留言。
使用Tailwind CSS的几个小Tips的更多相关文章
- 最近工作的一点小tips
最近工作比较忙,但也积累了一些小tips,比较杂,不成系统,也并不很深入,就开一篇笼统的先记录一下,以后再深入挖掘. 1.-webkit-tap-highlight-color -webkit-tap ...
- CSS Icon 项目地址 小图标-用css写成的
http://cssicon.space/#/icon/focus 这是所有用css写成的 小图标 右侧有 html和css代码
- HTML meta锚点跳转 小tips
小tips meta锚点跳转 http://www.zhangxinxu.com/wordpress/2015/03/meta-http-equiv-refresh-content/
- Windows7驱动调试小Tips
v:* { } o:* { } w:* { } .shape { }p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-botto ...
- 你不知道的JavaScript--Item17 循环与prototype最后的几点小tips
1.优先使用数组而不是Object类型来表示有顺序的集合 ECMAScript标准并没有规定对JavaScript的Object类型中的属性的存储顺序. 但是在使用for..in循环对Object中的 ...
- 小tips:JS之浅拷贝与深拷贝
浅拷贝: function extendCopy(p) { var c = {}; for (var i in p) { c[i] = p[i]; } return c; } 深拷贝: functio ...
- keras搭建深度学习模型的一些小tips
定义模型两种方法: 1.sequential 类仅用于层的线性堆叠,这是目前最常用的网络架构 2.函数式API,用于层组成的有向无环图,让你可以构建任意形式的架构 from keras import ...
- div+css 怎么让一个小div在另一个大div里面 垂直居中
div+css 怎么让一个小div在另一个大div里面 垂直居中 方法1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 .parent { width:800 ...
- css选择器顺序的小技巧
在线演示 本地下载 css的选择器的顺序其实很有意思,如果应用的好的话,可以做一些简单的逻辑出来,配合上css3,就可以尽可能的脱离js了. 这里的演示是一个带有hover事件的四张照片,效果来自一个 ...
- 申请MVP奖励时的小Tips
大家新年好,今天MSPrecious为大家带来一些申请MVP奖励时的小Tips. 本文分为三个部分 MVP是什么 如何申请MVP 申请MVP需要注意的事项 MVP是什么? 我想,点进来看这篇文章的 ...
随机推荐
- docker安装运行kafka单机版
这里我们安装一下kafka的单机版,由于kafka是基于zk进行管理的,如果我们没有安装过zk的话,需要进行安装好zk再安装kafka,当然如果已经安装过了, 那就没必要安装了.我们可以执行docke ...
- Vue3——Pinia+Pinia持久化
Pinia 安装 Pinia npm install pinia 创建一个 pinia 实例 (根 store) 并将其传递给应用 // store/index.ts // 仓库大仓库 import ...
- SelMatch:最新数据集蒸馏,仅用5%训练数据也是可以的 | ICML'24
数据集蒸馏旨在从大型数据集中合成每类(IPC)少量图像,以在最小性能损失的情况下近似完整数据集训练.尽管在非常小的IPC范围内有效,但随着IPC增加,许多蒸馏方法变得不太有效甚至性能不如随机样本选择. ...
- Codeforces Round 955 (Div. 2)
A 非常好特判 一共就五种情况,相等,或者正反两种包含(都是不能可能不包含),或者正反两种先后(都是可能不相等),写五个 if 就行了 B 我到底为什么要跳了这题??????????????????? ...
- MySQL 切换 Oracle 问题整理
MySQL 通常小写,Oracle 默认大写 ,查询过程中需加双引号,或者直接将MySQL 字段转换成大写 Springboot 配置 oracle连接 spring: datasource: url ...
- src 和 href 的区别?
src:都是引用资源 src:指向外部资源的位置 , 当浏览器解析到此元素时,会暂停其它资源的下载和处理 , 直到将该资源加载 , 编译 , 执行完毕 ,相当于将资源嵌入到文档中当前元素的所在的位置: ...
- Required request parameter ‘xxx‘ for method parameter type xxxx is not present 解决方式
我在controller层传实体参数时加了@RequestParam,结果报Required request parameter 'pointlist' for method parameter ty ...
- redis配置文件剖析
解析配置文件 #是否在后台运行:no:不是后台运行 daemonize yes #是否开启保护模式,默认开启.要是配置里没有指定bind和密码.开启该参数后,redis只会本地进行访问,拒绝外部访问. ...
- 思科 ISE 3.4 发布新增功能概览
思科 ISE 3.4 发布,新增功能概览 目录 Active Directory 首选 DC 选择 保留使用设置 本地化 ISE 安装 FQDN 到 SGT 映射 思科 ISE 和 TrustSe ...
- 强化学习算法——TPG算法(遗传编程GP算法)代码
tpg算法是一个使用模块涌现和复用机制的遗传编程(GP)算法,该算法在一些强化学习问题上有着不错的表现,本文给出该算法的项目地址. tpg算法的C++实现代码大概有1万的逻辑代码,如果这个比例换做使用 ...