美文网首页
tailwindcss使用总结

tailwindcss使用总结

作者: 朱传武 | 来源:发表于2021-03-10 21:31 被阅读0次

    官网
    接触tailwindcss不过两周有余,但是仅仅刚接触不到一天的时候,我已经深深的被它吸引,我从未见过一款css库可以做到如此好用、如此灵活,几乎不用自己再写css了,我觉得它比任何一款样式库都要好用。
    如果您遇到的通用框架由许多组件预先设计组成,则在此TailwindCSS中,您将找不到诸如按钮,卡片,警报,轮播等其他预先设计的组件。因为TailwindCSS不是UI工具包,而是实用程序优先的框架,用于快速构建自定义界面。

    简而言之,在TailwindCSS中,有许多小类代表CSS声明。因此,当您要创建组件时,则需要使用其中的一些小类来创建您要引用的组件。
    发的使用方法大体如下:

    <div className="md:mt-8 flex w-full flex-col items-center">
             <ShoppingCartHeader subtotal={1639.97} save={290} />
     </div>
    

    只要你记住它的命名规则,然后在className里面拼写各个小样式的名称即可,你不用担心某些css属性tailwind会覆盖不到,我用这两周来几乎没碰到这种情况,可以去官网看下,每个属性都有详细的说明,你也不要觉得这么多小样式的名称很难记住,我几乎只用半天时间就掌握了它的命名规则,而一旦你掌握了它的命名规则,基本不用死记硬背,只要按规则去拼写就可以,当然这有个前提:你对css属性非常熟悉。

    自定义宽度

    基本用法就是如我上面所写,当然如果只有这些,很可能很满足不了一些情况,tailwind提供了非常丰富的自定义接口,例如:

    image.png
    image.png
    同一个界面既要适配mobile又要适配pc,而设计为了适配性,pc端做了一些简化,但是content固定宽度是520px,mobile上宽度当然可以用w-full来搞,但是520px,这个值如果不用单独写css,如何只用tailwind来搞定呢?
    image.png
    可以在tailwind.config里面设置自定义width,然后用的时候直接w-520px即可,
    <div className={classnames("w-full  md:w-520px")}>
    

    如上即可表示默认宽度是w-full即(width:100%),md表示当前设备是pc端(screen宽度大于768px,当然这个断点也可以自己定义),这个样式的意思就是在移动端全屏在pc端宽度固定为520px,爽吗?这样写?

    自定义最大宽度

     maxWidth: {
            sm: "424px",
          },
    

    使用的时候就可以:

    <div className="mt-2 space-y-4 md:max-w-sm">
    
    image.png

    自定义颜色

     colors: {
          // brand colors
          primary: "#cc0000",
          white: "#fff",
          black: "#292929",
          background: "#f6f8f9",
    
          // primary colors
          primary01: "#b20405",
    
          primary80: "#d53232",
          primary60: "#de6464",
          primary40: "#e89696",
          primary20: "#f1c8c8",
    
          // secondary colors
          secondary00: "#409aef",
          secondary01: "#ecf5fd",
    
          // feedback colors
          success: "#00daa1",
          warning: "#ff8b00",
          error: "#e42526",
    
          // neutral colors
          grey80: "#546171",
          grey60: "#969ea8",
          grey40: "#bbc0c6",
          grey20: "#dddfe3",
          grey10: "#eeeff1",
    
          // special colors
          star: "#fdd446",
    
          // chats users
          user1: "#e46a25",
          user2: "#e0e425",
          user3: "#90e425",
          user4: "#25e438",
          user5: "#25e494",
          user6: "#25e4cd",
          user7: "#25d9e4",
          user8: "#259fe4",
          user9: "#2566e4",
          user10: "#2538e4",
          user11: "#4b25e4",
          user12: "#6225e4",
          user13: "#9025e4",
          user14: "#e025e4",
    
          // social media colors
          facebook: "#3b5998",
          messenger: "#0084ff",
          twitter: "#00a2f9",
          whatsapp: "#75cf6c",
          pinterest: "#a5221f",
          google: "#ea4335",
          linkedin: "#0e76a8",
    
          inherit: "inherit",
        },
    

    用的时候更加灵活,比如字体颜色,只需要:

     <h2 className="bold text-grey10">{"You haven't added a default purchase preference yet"}</h2>
    

    采用text-{颜色名}即可,别的都同理了,比如背景色:bg-{颜色名}即可,比如:bg-primary01

    与scss混用


    定义好scss样式,


    image.png

    导入css,之后就可以混合使用:

    <div className={classnames("mx-4", styles("shopping-cart-image"))}>
    

    样式覆盖

    定义要覆盖的样式:

    const deskStyle = useMemo(() => [{ opacity: 1.0, background: "RGBA(41, 41, 41, 0.9)" }], []);
    
        <div className={styles("shadow-overlayer")} css={deskStyle} onClick={onDismiss}>
    

    即可覆盖,当然用scss的方式也可以覆盖,这种相当于内联样式覆盖,优先级最高。

    与js变量混合使用

    <div
          className={styles("option-group", {
            "option-group--mobile": mobileOptions,
            "option-group--only-as-mobile": onlyUseAsMobile,
          })}
        >
    

    当mobileOptions为true的时候,样式option-group--mobile才会起作用。
    本文持续更新,随着我对这个库的认识的更加深入。

    相关文章

      网友评论

          本文标题:tailwindcss使用总结

          本文链接:https://www.haomeiwen.com/subject/iqlgqltx.html