前端⼯程化之TailWindCss初体验

2023-08-2918:09:59WEB前端开发Comments1,226 views字数 2706阅读模式
tailWindCss本质上是⼀个⼯具集,和你知道的bootstrap、element ui、Antd、bulma⼀样,将⼀些css样式封装好,⽤来加速我们开发的⼀个⼯具。⽹上有很多⽂章对其有详细的介绍,各笔者的观点都⼤差不差,都是从如何使⽤、各框架对⽐、其优缺点⻆度进⾏分析,本⽂也会简单介绍⼀下该框架的使⽤,但不会盲⽬⿎吹⼤家使⽤,希望⼤家了解其存在的合理性,结合⾃⾝及团队实际情况考虑是否使⽤。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
在最原始的开发阶段⼤家都是⼿写原⽣的 CSS,但原⽣ CSS 存在着诸多问题。对于前端来说,css⽅案是前端⼯程化离不开的⼀个话题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
一、原⽣css遇到的问题文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
1.编码优化:开发体验⽐较差文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
我们希望编写结构清晰、简明易懂的 CSS 代码,需要它具有⼀⽬了然的嵌套层级关系,⽽不是⽆差别的⼀铺到底写法;我们希望它具有变量特征、计算能⼒、循环能⼒等更强的可编程性,这样可以少写⼀些⽆⽤的代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
2.缺乏宏观设计:如何组织 CSS 代码、如何拆分、如何设计模块结构?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

如果出现同样的类名,很容易造成不同的样式互相覆盖和污染。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

3.可维护性较差:代码写完后,如何最⼩化后续变更的成本?如何确保任何同事都能轻松接⼿?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

例:A根据⾃⼰喜好随意命名样式,随意层叠样式,这样会给对接人员迭代会带来不好体验。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

应对以上问题,CSS ⼯具链、⼯程化领域⽅案应运⽽⽣:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
tailWindcSS作为其中的⼀员,具有什么样的特性及优点让其成为css框架中的闪耀新星?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

二、什么是tailWindCss?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

如果你从来没有接触过Tailwind,可以看下⾯:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
这⾥的class类名就反映了 Tailwind 的定义:⼀个包含多个预定义类(所谓的⼯具类)的集合。你并不需要编写基础的 CSS 样式规则,只需要直接在 HTML 中应⽤已经事先定义好的类名。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

Tailwind⾃带的类名涉及到Base Styles、弹性布局、间隔、尺⼨、排版、背景、边框、表格、动画等,凡是css能涉及到的其都已集成。您只需要按照其⽂档,使⽤相应的类名就⾏,这时候你可能要问,要是没有我⾃⼰想要的样式怎么办?这个问题我们先留着下⾯再讲。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

我们先讲⼀讲其具备的⼏⼤优点:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

1.极⼤程度上降低css的代码量文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

使⽤Tailwind CSS,基本可以不⽤再写css。对于整体⻛格差不多的应⽤,所有的效果⼏乎都可以通过class名来完成。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

2.较好的语义化文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

使⽤ TailwindCss 你不⽤花精⼒来定义类名,你可以使⽤内置具有良好语义化的类名,实现样式效果。你也可以⼀定程度定义符合你⾃⼰规则的类名,例如加上统⼀的前缀。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

3.可定制化程度极⾼文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

如果使⽤bootstrap,element ui等这些css框架,你想强⾏更改其⾃带组建的样式,恐怕有经验的⼩伙伴对样式穿透的写法和!important很熟悉🤪,关键有时候关键性的组建样式穿透跟增加层级还不⼀定能解决问题!针对这种覆盖式的样式修改⽅法,笔者认为很脏很变扭,对⽐到Tailwind CSS,你可以⾃⼰封装你⾃⼰想要的样式,把它集成到整个框架中,全局直接使⽤。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

4.响应式设计文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

TailwindCss 中的每个功能类都可以有条件的应⽤于不同的断点(breakpoints),在不同分辨率设备上,可以轻松切换属性。内联样式中,⽆法使⽤媒体查询。按照之前的写法:你肯定哒哒哒⼀顿敲代码,如下所示:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

但是在Tailwind CSS,⼀句话就能搞定:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
Tailwind CSS提供了⼀套基础的css样式,即使你不懂设计,按照其内置样式做出来的东西也不违和,更何况你还可以⾃定义专属css样式,下⾯让我们来看⼀看:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

正如上⾯提到的,我现在⽤到了相关内置的css类,但是⼜不太符合设计的要求,怎么办?莫担⼼,TailwindCSS提供了⼀整套的重写、覆盖默认配置的⽅案,细粒度到每⼀个属性。这种覆盖样式和其他css框架的强⾏覆盖是有区别的,它让你的样式具有归属感,⽽不像狗⽪膏药⼀样到处搭在指定的地⽅。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

⽐如我现在想要使⽤某个特殊字体颜⾊,我优先打开tailwindcss⽂档去找⼀找,结果发现没有我想要的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
如下图,我们给其textColor补充了两个我们⾃⼰的字体颜⾊yourColor1和yourColor2。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
使⽤的时候就和字体颜⾊正常使⽤类⽅法text-yourColor1和text-yourColor2即可文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
5、夜间模式文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

现在h5的夜间模式⽐较潮流,很多需求也会要求⽀持。平时接到这种需求,没接触过的⼈肯定会先去求度娘,结果发现有下⾯三种解决⽅案。感觉⼜要写css ⼜要写js,怪⿇烦的。针对这⼀点,TailwindCSS肯定必须安排啦!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
我们仅需要在 tailwind.config.js 简单配置⼀下文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
然后通过简单的class类就可以简单实现了,等于说js我们不需要操⼼了,只需要定义⼀下class。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
三、TailwindCSS初始化使⽤文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

1.安装文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

以下⽅法是 Vite + Vue 模式下的安装⽅法,其他脚⼿架与框架的使⽤同理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

创建项⽬文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
2.安装必要依赖文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

Vite创建的项⽬默认集成了 PostCSS ,⽽ TailwindCSS 本⾝就是⼀个 PostCSS 插件,所以直接使⽤即可。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
3.创建TailwindCSS配置⽂件文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

使⽤ tailwindcss 的初始化命令创建会更快:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
(1)创建 postcss.config.js ⽂件,这⾥的配置主要是添加 tailwindcss 的插件,这样你编写的css才会被 tailwindcss 处理;文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

(2)创建 tailwind.config.js ⽂件,主要进⾏扫描规则、主题、插件等配置。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

(3) 为了打包时TailwindCSS能⽣成对应的样式⽂件,需要在 tailwind.config.js 中正确配置content 字段,如以下配置将扫描 src ⽬录下所有以 vue/js/ts/jsx/tsx 结尾的⽂件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
4.注意文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

TailwindCSS并不会⽣成⼀个全量的样式包,⽽是根据具体使⽤到的语法⽣成对应的样式代码,这样可以确保打包产⽣的样式包是最⼩的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

参考文献:https://tailwindcss.com/docs/content-configuration文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

5.引⼊Tailwind的基本指令文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

index.css/tailwind.css文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
main.js文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
这样整个Tailwind CSS的项⽬就⽣成了,项⽬结构如下图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
前端⼯程化之TailWindCss初体验
到这⾥,相信⼤家对tailwindcss有了初步的了解,有兴趣的可以跑⼀下demo体验⼀下。那么tailWindCss到底适不适合你,我看还得看你⾃⼰,毕竟⼀千个莎⼠⽐亚就有⼀千个哈姆雷特😢。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

以下是笔者看到部分体验者的评价,我觉得特别中肯,特此贴上:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html

前端⼯程化之TailWindCss初体验
官⽹链接指引:https://www.tailwindcss.cn/文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/55389.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/55389.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定