一、为什么选择tailwindcss?

Tailwind CSS 是一个受欢迎的、功能丰富的CSS框架,它与传统的CSS框架(如Bootstrap)有些不同。以下是一些人们通常对于Tailwind CSS 的评价:

优点:

  1. 工具驱动的开发: Tailwind CSS 提供了一系列实用工具类,这些类可以在HTML标签中直接使用,从而加速开发过程。开发者可以通过添加类来定义样式,而不必手写大量的自定义CSS。

  2. 快速构建UI: 由于提供了大量的样式和组件,使用 Tailwind CSS 可以迅速构建出漂亮且一致的用户界面。

  3. 可定制性强: 虽然提供了许多样式,但 Tailwind CSS 的真正强大之处在于可以定制每个工具类的样式。你可以根据项目需求来配置并生成自己的样式。

  4. 响应式设计: Tailwind CSS 提供了一套方便的响应式工具类,使得创建适应不同屏幕尺寸的界面变得更加容易。

  5. 文档详尽: Tailwind CSS 有清晰详尽的文档,解释了每个工具类的作用和用法,这对于新手来说是一个很大的优势。

  6. 社区活跃: 有一个活跃的社区,不断分享自定义的样式、插件和最佳实践。

缺点:

  1. 学习曲线: 尽管文档很好,但对于那些不熟悉工具类的开发者来说,上手可能需要一些时间。同时,理解如何自定义样式也可能需要一些学习成本。

  2. 文件大小: 使用大量工具类可能会导致生成的CSS文件较大,但可以通过PurgeCSS等工具将未使用的样式删除,减小文件大小。

  3. 设计的限制: 一些开发者认为 Tailwind CSS 的样式在一定程度上可能会限制自由的设计创意,因为它基于一套固定的工具类。

总的来说,Tailwind CSS 在现代Web开发中受到欢迎,特别适合那些喜欢迅速构建界面且倾向于遵循约定优于配置的开发模式的开发者。然而,每个项目和团队的需求都是不同的,所以是否选择使用 Tailwind CSS 还需要根据具体情况权衡利弊。

二次思考总结的优缺点:

优点:UI规范化

缺点:学习成本,维护成本(如果新来的人不熟悉,还得学,而且可能维护得乱七八糟)

不过在AI时代,他的缺点变成了优点,因为他的原子的语义化,chatGPT生成代码的时候,token更短。(不用带话要生成class,还有定义的style,代码量更大)

我目前急需的是快速构建UI(命名心智负担),css复用,自适应,方便优化和维护 这几点,所以选择了他。

也可以参考这个回答:如何评价CSS框架TailwindCSS? - 山月的回答 - 知乎

二、安装

1、安装

最新的tailwind css使用post css 8版本,vue2不支持,所以需要指定安装postcss7的版本

vue3 可以直接安装post 最新版本

npm install tailwindcss@npm:@tailwindcss/postcss7-compat @tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9

2、生成配置文件

可以运行npx,也可以自己新建

在终端中输入代码:npx tailwindcss init生成一个空的配置文件。【用这个】

也可以生成一个包含所有默认配置的配置文件:npx tailwindcss init -fill。

npm高版本可以直接运行npx,低版本会报错。

npx tailwindcss init # 空的 用的这个
npx tailwindcss init -fill # 包含默认的

你可以在这个文件里定制你的tailwindcss (参考官网文档)

/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.html",
"./src/**/*.js",
"./src/**/*.vue",
// 还可以添加其他包含样式的文件路径
],
theme: {
extend: {},
},
plugins: [],
}

 

3、vue.config.js 配置

  css: {
loaderOptions: {
postcss: {
plugins: [require('tailwindcss'), require('autoprefixer')]
}
}
},

  

4、创建tailwindcss.css,并在main.js中引用

tailwindcss.css

@tailwind base;
@tailwind components;
@tailwind utilities;

 

main.js 添加

import './assets/styles/tailwindcss.css'

  

5、测试

  <h1 class="text-3xl font-bold underline shadow text-blue-600">
Hello world!
</h1>

  效果:

涉及修改文件如下:

总结:

在vue中安装引入tailwindcss的方法主要分为4步

  • 安装对应版本的tailwindcss
  • 使用代码生成配置文件
  • 创建postcss.config.js文件
  • 在main.js中引入 tailwindcss使用方法简单,可以在官网的文档中查看具体的使用方法。

三、使用

1、样式规范、自适应响应

使用技巧,这篇文章写的很好,比如Arco Design的字体颜色规范就很好,可以直接拿arco设计规范来写自己的组件。

2、样式复用,官方介绍

3、丰富的模版,一键copy

https://juejin.cn/post/7049594844926181390

颜色一览表

https://tailwindcss.com/docs/customizing-colors

下面两个很适合做官网使用:

https://www.tailwind-kit.com/components

https://mambaui.com/components/avatar

https://www.creative-tim.com/product/vue-notus

各种布局、组件

https://tailblocks.cc/

https://tailwind-elements.com/docs/standard/forms/login-form/ 比较全的各种元素

https://tailwindcomponents.com/components/logins 社区贡献组件

https://daisyui.com/components/collapse/

https://www.vue-tailwind.com/docs/dialog 备选

其他

https://tailwindcomponents.com/gradient-generator/ 颜色渐变卡片

四、插件

官方插件:

  1. Forms(表单):为表单元素提供样式,如输入框、按钮等。

  2. Typography(排版):添加排版相关的样式,如文本大小、行高等。

  3. Aspect Ratio(纵横比):允许您轻松地控制媒体元素的纵横比。

  4. Line Clamps(行数限制):控制文本的最大行数,并在超出部分添加省略号。

  5. Animations(动画):为动画效果提供类名,以简化动画样式的应用。

第三方插件:

  1. tailwindcss-custom-forms:自定义表单样式的工具,用于创建漂亮的表单元素。

  2. tailwindcss-grid:添加网格布局系统,以便更轻松地创建网格布局。

  3. tailwindcss-accordion:创建可折叠的手风琴式内容。

  4. tailwindcss-spinner:添加加载指示器的类名,用于显示加载过程。

  5. tailwindcss-interaction-variants:根据交互状态(如焦点、悬停等)为元素添加变体类名。

其他:

- 优化:用tailwind,可以结合Purgecss删除未使用的css,purgecss官网

-tailwindcss 官网 官方安装方法

-windicss

tailwindcss 选型,以及vue配置使用的更多相关文章

  1. vue配置手机通过IP访问电脑开发环境

    vue配置手机通过IP访问电脑开发环境config/index.js// Various Dev Server settings host: '0.0.0.0', // can be overwrit ...

  2. vue配置手机通过IP访问,Win10让局域网内其他电脑通过IP访问网站的方法

    vue配置手机通过IP访问config/index.js// Various Dev Server settings host: '0.0.0.0', // can be overwritten by ...

  3. vue实现部分页面导入底部 vue配置公用头部、底部,可控制显示隐藏

    vue实现部分页面导入底部 vue配置公用头部.底部,可控制显示隐藏 在app.vue文件里引入公共的header 和 footer header 和 footer 默认显示,例如某个页面不需要显示h ...

  4. react和vue配置本地代理

    React 在react中配置开发环境下的本地代理相对比较简单,直接在package.json文件中修改即可. 但是这样做有其局限性,如果开发中代理多个接口的时候将无法满足需求,我们需要的是下面这种的 ...

  5. 手把手教你vue配置请求本地json数据

    本篇文章主要介绍了vue配置请求本地json数据的方法,分享给大家,具体如下:在build文件夹下找到webpack.dev.conf.js文件,在const portfinder = require ...

  6. vue配置域名访问

    vue配置域名访问其实很简单,新建一个vue的项目,不废话,直接上截图 红色框住的两行就是设置访问的域名以及端口,默认是host: localhost port: 8080 像这样修改之后,重启项目, ...

  7. VUE配置proxy代理、开发环境、测试环境、生产环境

    VUE配置proxy代理.开发环境.测试环境.生产环境 前端开发过程中,我们经常会碰到跨域的问题,下面我们来配置下,不同的环境下,统一的跨域问题解决. 1.根目录下新建三个环境的配置文件,.env.d ...

  8. webpack vue 配置

    vue-loader 1.)首先创建项目目录 --vue-loader文件夹 |-index.html 入口文件 |-main.js 入口文件 |-App.vue Vue文件 |-package.js ...

  9. angular配置路由/子页面+vue配置路由/子页面

    1.在vue.js中组件可以复用,然后最近配置了几个子页面 在 这个文件中配置路由,子页面的配置跟其他一样,只不过path不同.   routes: [     { path: '/',       ...

  10. vue 配置了全局的http拦截器,单独某个组件不需要这个拦截器,如何设置

    之前写过关于全局配置http拦截器的随笔,现在有个需求,在微信支付时,生成二维码,页面显示一个遮罩层,二维码页面需要每两秒请求一次接口,若返回结果为已支付,则进行页面跳转,但因为全局http中load ...

随机推荐

  1. Code Generate V2.0 代码生成器

    Code Generate 代码生成器 系统首页 使用说明 系统默认会根据SQL生成字段信息 className.fieldList.classComment 如下所示: 建表语句 CREATE TA ...

  2. 实际上手体验maven面对冲突Jar包的加载规则

    一.问题背景 相信大家在日常的开发过程中都遇到过Jar包冲突的问题,emm,在最近处理业务需求时我也遇到了不同版本jar包冲突导致项目加载出错的问题.主要是一个完整的项目会不可避免的使用第三方的Jar ...

  3. 【MAUI Blazor踩坑日记】6.mac标题栏颜色修改

    MAUI中mac的标题栏颜色默认是灰白色的,有一点丑 如果我们想要自定义颜色,并且在运行时也能更改颜色,该怎么办呢 万幸从一个GitHub库中借鉴到了办法 https://github.com/Ben ...

  4. KVM 动态调整 qcow2 硬盘

    动态扩容 参考:https://cloud-atlas.readthedocs.io/zh_CN/latest/kvm/kvm_vdisk_live.html 未关闭虚拟机,直接在宿主机器上qemu- ...

  5. 2023-7-27WPF的ContextMenu的传参绑定方式

    WPF的ContextMenu的绑定方式 [作者]长生 ContextMenu为何不能正常绑定 在wpf中ContextMenu和ToolTip一样都是弹出层,与VisualTree已经分离了,只不过 ...

  6. pycharm中使用命令行

    //调用django命令 tools->Run manage.py... ->弹出窗口->输入命令,回车 //创建appstartapp [appname] //数据库迁移makem ...

  7. 实现无限存储:基于JuiceFS 创建 Samba 和 NFS 共享

    随着企业数据量的持续增长,存储容量需求日益增大.如何采用没有容量上限的云存储替换本容量有限的本地磁盘,已成为广泛的需求和共识.特别是在企业中常用的 Samba 和 NFS 共享,如果能够使用云存储作为 ...

  8. 从MybatisPlus回归Mybatis

    从MybatisPlus回归Mybatis 之前写项目一直习惯使用MyBatisPlus,单表查询很方便:两张表也很方便,直接业务层处理两张表的逻辑.但什么都图方便只会害了你. 但连接的表比较复杂的时 ...

  9. 记通过mysql数据库成功入侵到服务器内部的渗透实战

    1,在成功进入mysql到数据库之后,可以使用select user();命令,查看当前的用户,如果为root,则可以执行下一步操作.不为root,则需要通过其他方法提权. 2, 使用show var ...

  10. ABP Framework 7.4 RC 新增功能简介:增强微服务架构支持

    ABP Framework 版本号:7.4.0-rc.1 发布时间:2023.8.16 阅读原文:ABP.IO Platform 7.4 RC Has Been Published 翻译:iEricL ...