tailwindcss 使用

1、tailwind.config.js 配置参考

module.exports = {
  mode: "jit", // 3.0以上可不用配置,默认该模式,无法关闭
  // important: true, // 所有的样式加上important, 这个不建议,因为有时候外部修改内部样式时,应按照外部样式优先,使用 !, 如果加了这个,优先级就按照tailwind文档定义顺序来
  content: [
    "./src/**/*.tsx", // src 下面所有的tsx文件,下面component的不生效是写错路径了, /**/ 表示子所有后代
    // './src/pages/**/*.tsx',
    // './src/components/**/*.tsx',
    // './src/layouts/**/*.tsx',
  ],
  theme: {
    extend: {
      // 这里定义的顺序不代表最后css文件class的顺序,看实际情况是按字母排序的,即 c1会在blue之后,同时存在的话会以c1为准
      colors: {
        c1: "#333333",
        c2: "#555555",
        c3: "#999999",
        blue: "#4078F6",
        "blue-hover": "#75A5F2",
        "blue-c1": "#75A5F2",
        "blue-c2": "#DDE9FD",
        "blue-c3": "#F1F4FC",
        red: "#F56E6E",
        green: "#08C6B9",
        gray: "#dddddd",
        green: "#08C6B9",
        yellow: "#FCA74B",
      },

      /**
       * 批量生成配置, 使用示例: w-card-auto3 、 !w-card-auto3
       */
      width: [3, 4].reduce((obj, current) => {
        const calcStr = `calc((100% - ${16 * (current - 1)}px) / ${current})`;
        obj[`card-auto${current}`] = calcStr;
        return obj;
      }, {}),
    },
  },
  /* 解决tailwindcss与antd冲突,Button按钮透明 */
  corePlugins: {
    preflight: false,
  },
};

JIT:3.0可不用配置,默认就是该模式,无法关闭。 按需加载样式,定义在extend中的样式也一样,没被用到,不会加载。另外,如果在一个页面中,有动态计算的样式,会因为在编译阶段没有该样式导致不生效;

2、tailwind.css 配置

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

/* 或者
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
*/

3、动态生成css类名

这里的需求是:显示卡片个数根据页面宽度自适应,1600及以上显示4个,以下显示3个。
解决方法:

1、less 动态计算: each 或者 for 函数 —— (推荐方式)

/** each 示例: 均分卡片,局限: 每次多个一行显示数量就要新增range */
@range: 3,4;
each(@range,{
  .card-auto@{value}{
  	width: calc(~'(100% - 16px * (@{value} - 1)) / @{value}') !important;
    /**
     *用上面的转义形式,下面这种写法,偶尔100%取值有问题,取的不是父级宽度,导致整个页面被拉的很宽,但有时又是好的,没找到原因??
      width: calc((100% - 16px * (@value - 1)) / @value) !important; 
    */
  }
});

/** for 示例,生成4个,默认从3开始 */
.gen-range(4);
.gen-range(@n, @i: 3) when (@i =< @n) {
  .card-auto@{i}{
    width: calc(~'(100% - 16px * (@{i} - 1)) / @{i}') !important;
  }
  .gen-range(@n, (@i+1));
}
const cfgArr = [
  { minWidth: 1920, num: 4 },
  { minWidth: 1660, num: 3 },
],

// 根据当前页面宽度,和上面的配置信息,生成当前卡片显示数量
const getShowCardNum = () => {
 const width = document.body.clientWidth;
  let num = 4;
  for (let i = 0; i < slideCfgArr.length; i++) {
    const item = slideCfgArr[i];
    if (width >= item.minWidth) {
      num = item.num;
      break;
    }
    // 最后一个没有匹配上就按最后一个来
    if (i === slideCfgArr.length - 1 && width < item.minWidth) {
      num = item.num;
    }
  }
  return num
}
// 卡片样式,均分宽度: 动态css,num 为显示数量,取值 3或者4
// 通过css module方式,不会造成全局污染,且num可任意变化,只要@range中有这个值
const cardClassName = styles[`card-auto${num}`];

2、媒体查询 @media, 通过css来计算宽度;

缺点:后续如果有新增,需要增加新的media规则。该实现样式,导致组件在哪里使用都是一样的规则,无法定制。

3、js动态计算css className,通过tailwindcss批量生成配置,从而获得对应css样式
。这个最大问题在于只能是非JIT模式, 在JIT模式下动态定义的样式不会解析出来。

JIT模式下,如果样式可预见,可以在某个页面处固定写死那些动态生成的classname, 触使它解析。

// cardClassName 添加 important 覆盖之前的定义
const cardClassName = `!calc((100%-16px*${num-1}/${num-1})`;
<div className={`w-[calc((100%-32px)/3)] w-[calc((100%-32px)/3)] ${cardClassName}`}></div>

4、配置了qiankun后,@layer不解析了

??

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tailwind CSS 是一个高度可定制的 CSS 框架,它提供了大量的实用类,让开发者可以快速构建现代化的用户界面。下面是使用 Tailwind CSS 的一般步骤: 1. 安装 Tailwind CSS:可以通过 npm 或 yarn 来安装 Tailwind CSS。在命令行中运行以下命令来进行安装: ``` npm install tailwindcss ``` 或 ``` yarn add tailwindcss ``` 2. 创建配置文件:在项目的根目录中创建一个名为 `tailwind.config.js` 的文件。在该文件中,你可以自定义 Tailwind CSS配置选项,并添加你自己的样式。 3. 引入 Tailwind CSS:在你的 CSS 文件中引入 Tailwind CSS。你可以选择使用 `@import` 或 `@use` 来引入 Tailwind CSS。如果使用 Sass,可以在你的 `.scss` 文件中添加以下代码: ```scss @import 'tailwindcss/base'; @import 'tailwindcss/components'; @import 'tailwindcss/utilities'; ``` 4. 使用实用类:Tailwind CSS 的核心概念是使用实用类(Utility Classes)。你可以在 HTML 元素上直接添加这些类,以应用相应的样式。例如,要将一个按钮样式为蓝色和大号,可以添加以下类: ```html <button class="bg-blue-500 text-white text-lg">按钮</button> ``` 5. 自定义样式:如果你需要自定义样式,可以在配置文件中进行全局配置,或者在需要的地方使用行内样式。你可以根据自己的需求,修改颜色、字体、边距等样式。 这只是一个简单的使用方法,Tailwind CSS 还有更多功能和选项可以探索。你可以查阅官方文档来获取更详细的信息:https://tailwindcss.com/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值