聊聊 tailwindcss

288 阅读3分钟

最近接触到了个autoGPT react16.8^ + tailwindcss 的项目想起之前有总结过 UI组件库 就复习了一下

Tailwind CSS v2.0 是自2019年5月发布 v1.0 以来的第一个新的主要版本

vscode可安装插件Tailwind CSS IntelliSense 方便查看 image.png

1.基础-构建依赖 ⬇️

// 安装 Tailwind
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
// 创建配置文件 postcss.config.js --- tailwind.config.js
npx tailwindcss init -p

修改 tailwind.config.js

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
  theme: {
    extend: {
     colors:{
        //自定义颜色
        "welcome-btn":"#0052FF"
      }
    },
  },
  plugins: [],
}

构建一个less文件

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

在package.json---scripts中添加

 "tailwind": "tailwindcss build src/style/all.less -o public/all.css",

查看public之后运行

npm run tailwind

成功后public下会增加一个css文件

之后我们编辑页面文件

import React from "react";
import './style.less';

class TailwindPage extends React.PureComponent{
  constructor(props) {
    super(props)
    this.state = {
    }
  } 
  componentDidMount() {
  }
  render() {
    return (
        <button className="text-5xl bg-black text-yellow-500 hover:bg-pink-700 hover:text-green-500">
          Tailwind
        </button>
    )
  }
}
export default TailwindPage

效果如下⬇️

image.png

划过效果⬇️

image.png

——————————————我是分界线-建议上面先走一遍———————————

2.核心概念 ⬇️

无需编写 CSS

解决了:
    1. 给类命名而浪费精力:不需要仅仅为了设置一些样式而额外添加一些像 `sidebar-inner-wrapper` 这样愚蠢的类名,不必再为了一个 flex 容器的完美抽象命名而倍受折磨。
    2. CSS 停止增长: 使用传统方法,每次添加新功能时 CSS 文件都会变大。使用功能类,所有内容都是可重用的,因此您几乎不需要编写新的CSS
    3. 更改会更安全: CSS 是全局性的,您永远不知道当您进行更改时会破坏掉什么。您 HTML 中的类是本地的,因此您可以更改它们而不必担心其他问题
个人感觉:
    class命名 和 CSS体积 这两个点确实受益 否则写到后面名称还得靠谷歌翻译。。。😂

为什么不使用内联样式(官方回复,个人觉得不至于😂,但还是大家看看吧)

对这种方式的一个普遍反应是, “这不就是内联样式吗?” 在某些方面是 — 您是将样式直接应用于元素,而不是为元素分配一个类,然后在这个类中设置样式。
但是使用功能类比内联样式具有一些重要的优点:
**基于约束的设计**. 使用内联样式, 每个值都是一个魔术数字。使用功能类, 是从预定义的设计系统中选择样式,这使得构建统一的UI变得更加容易。
**响应式的设计**. 在内联样式中您不能使用媒体查询, 但您可以使用 Tailwind 的响应式功能类常容易的构建完全响应式的界面。
**Hover, focus, 以及其它状态**. 内联样式无法设置 hover 或者 focus 这样的状态, 但 Tailwind 的状态变体使用功能类可以非常容易的为这些状态设置样式。

响应式设计

Tailwind 中的每个功能类都可以有条件的应用于不同的断点,这使得可以轻松的构建复杂的响应式界面而不用离开 HTML
根据常用的设备分辨率方案,默认内置了 5 个断点

感觉相似于兼容性开发(个人没有用到这个 不清楚坑的情况) image.png

未结束。。。