关于 tailwindcss - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mokevip
V2EX    前端开发

关于 tailwindcss

  •  
  •   mokevip
    moke8 2022-07-20 17:49:54 +08:00 3012 次点击
    这是一个创建于 1259 天前的主题,其中的信息可能已经有所发展或是发生改变。

    迫于给零散的式起类名太累,开始搞自己的原子 css ,又迫于这方面每个人都有自己的习惯,干脆用 tailwindcss 做原子 css 方便规范

    但是代码洁癖导致我遇到一些问题迟迟不能下手 = = 问问大家平时怎么使用的

    1. 用 tailwindcss 后,本能的想摒弃分离的 style ,恨不得页面里只有类名没有 css ,但是遇到复杂的样式特别是只出现一次的复杂样式,还是一脸懵。。。 常见的比如宽度,使用 tailwind 会需要定义一下宽度选项,但是这玩意宽度我只用一次也定义么,可是又不甘心给他起个类名再去写他的 css ,也不利于整体性(大家都是 tailwindcss 就他一个需要翻到下面去看 css ) 。

    2. 关于组件化,遇到单体复杂样式,比如自定义的 button ,是用类名抽离样式,还是用组件抽离样式。类名抽离简单、组件抽离稍微复杂,目前在想的是类名抽离样式和组件抽离只用一个 (这个问题其实是通用的)。

    总结,目前设想:

    1. 页面上再也没有 css ,tailwind.config 里对各种情况做冗余,哪怕只用一次

    2. 目前还是类名抽离样式和组件抽离混用的,简单的无结构的类名抽离,复杂的块用组件抽离

    16 条回复    2022-07-20 22:54:05 +08:00
    wu67
        1
    wu67  
       2022-07-20 17:57:00 +08:00
    自己的项目, 随便用都行, 甚至可以全靠 class.
    公司 /团队的项目, 除非你们有一套非常严格的设计标准, 不然不可能的, 必定要写样式, 有时候甚至完全套不了框架 /库的样式...
    noe132
        2
    noe132  
       2022-07-20 17:58:50 +08:00
    w-[1337px] text-[#112233]
    ss098
        3
    ss098  
       2022-07-20 17:59:01 +08:00
    1. https://v2.tailwindcss.com/docs/just-in-time-mode#new-features

    参考 Dynamic values 一节,可以使用 p-[4px] 这样的语法动态构造 class 。

    2. 构建组件更通用,可以考虑结合 Headless UI 使用。
    helone
        4
    helone  
       2022-07-20 18:01:24 +08:00
    如楼上所说其实也可以用动态的语法 p-[11px] bg-[#xxx],我经常这么干 :doge
    cvooc
        5
    cvooc  
       2022-07-20 18:06:08 +08:00
    经过我的大胆实践, 我个人觉得 tailwindcss 现在都算重了,那堆配置看着就烦, 然后自己用 scss 做的原子 css, 现在在公司项目里应用, 原生 scss, 所以调整适配项目都极其方便,

    你说的样式抽离, scss 原生就有方案 @extend

    ```css
    .a{
    background-color: red;
    }
    .b{
    color: red;
    }
    .c{
    @extend .a,.b;
    }
    ```

    https://github.com/ShowMeBaby/tailwind-scss-mixin

    你可以参考下
    cvooc
        6
    cvooc  
       2022-07-20 18:07:47 +08:00
    @retrocode #5 主要是 tailwindcss 的类名普遍太长, 写多了看着也糟心=.= 还是按团队习惯自己配简写舒服
    ipwx
        7
    ipwx  
       2022-07-20 18:19:10 +08:00
    @retrocode 你这种写法,项目大了就炸了。
    cvooc
        8
    cvooc  
       2022-07-20 18:26:06 +08:00
    @ipwx #7 这个看习惯吧, 炸到不至于, 同时还要配合组件化使用的, 你之前遇到这种写法的哪些爆炸问题吗? 我填下坑
    helone
        9
    helone  
       2022-07-20 18:33:04 +08:00
    @retrocode 你们等于是重复做了一个 tailwind 而已,简写舒服也只是造轮子的人自己舒服,其他人都要额外记,新人来了更需要额外记,如果用 tailwind ,找人的时候直接可以找合适人选,换了其他公司之后简写方案没有任何用处,如果其他公司用了 tailwind ,你还是要学 tailwind
    cvooc
        10
    cvooc  
       2022-07-20 18:37:59 +08:00
    @helone #9 考虑到行业通用性的话, 那肯定是 tailwind 了, 我们这边是试着引入 tailwind, 结果最后写出来的 class 长的雅皮, 一堆配置下来, 还不如 scss 自己封装, 就去掉了, 这堆东西没有最佳实践的, 肯定是跟着团队走嘛, 不冲突
    zcf0508
        11
    zcf0508  
       2022-07-20 19:19:53 +08:00 via Android
    已经换 unocss 了,自己项目写得超爽
    jdi
        12
    jdi  
       2022-07-20 19:20:41 +08:00
    一步到位,学 unocss
    mokevip
        13
    mokevip  
    OP
       2022-07-20 19:56:23 +08:00
    @ss098 好的,才发现有这个解决方式,谢谢!
    mokevip
        14
    mokevip  
    OP
       2022-07-20 19:57:46 +08:00
    @retrocode 我之前也是这么写的,但是项目迭代多,不同的项目用到不同的类,最后有点乱了,所以想用 tailwind 来做一下规范
    mokevip
        15
    mokevip  
    OP
       2022-07-20 19:58:49 +08:00
    @jdi
    @zcf0508
    之前好像没听说过,我研究一下哈哈
    zzl22100048
        16
    zzl22100048  
       2022-07-20 22:54:05 +08:00 via iPhone
    学 unocss ,直接用 Attributify Mode ,避免超长 class
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3178 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 04:34 PVG 12:34 LAX 20:34 JFK 23:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86