<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【CSS】1209- TailwindCSS v3.0 正式發(fā)布!一大波新特性來襲!

          共 5946字,需瀏覽 12分鐘

           ·

          2022-01-24 03:51

          大家好,我是皮湯。最近一直在研究 TailwindCSS 相關(guān)的內(nèi)容,打算將其用在接下來的各種項(xiàng)目中,之前也寫過關(guān)于 CSS 工程化方面的文章:2021 年你需要之前的 CSS 工程化技術(shù),今天給大家介紹一篇關(guān)于 Tailwind 最新發(fā)布的 v3.0 相關(guān)的內(nèi)容。

          2021 年 12 月 10 日,TailwindCSS 的創(chuàng)始人 Adam Wathan 宣布 TailwindCSS v3.0 正式發(fā)布,帶來了一系列性能上的改進(jìn)、對開發(fā)工作流的改善以及大量的新特性。

          那么這顆在 CSS 工程化領(lǐng)域極為耀眼的新星在 v3.0 為我們帶來了那些有趣的新特性呢?我們接下來就來一一的介紹它們。

          隨時隨地的 Just-in-Time 模式

          Tailwind 2.x 里面引入了一種新的模式,Just-in-Time 模式,可以保持開發(fā)和生產(chǎn)構(gòu)建是一致的,且都是按需構(gòu)建,相比之前 Tailwind 需要將所有基礎(chǔ)的內(nèi)容進(jìn)行構(gòu)建來說大大提升了性能,針對任何構(gòu)建工具,如 Webpack 只需要 800ms 就可以構(gòu)建完成,而在之前,可能需要 30-45s。

          而且得益于 JIT 模式,Tailwind 支持了 “任意值輔助類” 等一系列新的特性。

          之前使用 JIT 時,需要在配置文件里面指定模式:

          //?tailwind.config.js

          module.exports?=?{
          ?//?...
          ??mode:?'jit',
          ??//?...
          }

          然后你就可以享受到極快的構(gòu)建速度,而且可以使用任意值的輔助類,如:

          "top-[-113px]">

          這在之前的 Tailwind 版本中是不允許的,如果需要覆蓋這種任意值的情況,你還是得定義一個類名,然后撰寫對應(yīng)的 CSS:

          "arbitrary-values">


          ?

          這種形式顯得 Tailwind 比較割裂,所以在 JIT 模式下,因?yàn)橹С职葱铇?gòu)建,所以這種任意值的形式也可以使用 Tailwind 統(tǒng)一的語法進(jìn)行書寫。

          而在 v3.0 中,Tailwind 內(nèi)置了 JIT,無需在配置文件里面聲明 JIT 模式,默認(rèn)就是按需構(gòu)建、可使用任意輔助類、開發(fā)和生產(chǎn)構(gòu)建方式與產(chǎn)物統(tǒng)一,避免了不一致性、還獲得了極大的性能優(yōu)化。

          所有的顏色都開箱即用

          在 v3.0 之前,為了關(guān)注在開發(fā)模式下 CSS 體積的大小,Tailwind 必須要小心的限制可用的顏色,但是在 v3.0 之后,我們可以引入了很多新的調(diào)色板顏色,如 cyan(天藍(lán)色)、rose(玫瑰色)、fuchsia(紫紅色)、lime(酸橙色)以及 15 中灰色的陰影,而無需擔(dān)心日益增大的 CSS 文件體積。

          支持有顏色的陰影

          之前 Tailwind 想要以一種組合式的方式支持帶顏色的陰影是很困難的,雖然長期以來,用戶都在述求這一項(xiàng)功能,但是一直也沒有實(shí)現(xiàn)。經(jīng)過 5 次失敗的嘗試,最終在 Tailwind v3.0 中實(shí)現(xiàn)了這項(xiàng)功能,現(xiàn)在你可以在 Tailwind 中使用這些有顏色的陰影了:

          比如下述代碼:

          "bg-cyan-500?shadow-lg?shadow-cyan-500/50?...">Subscribe
          "bg-blue-500?shadow-lg?shadow-blue-500/50?...">Subscribe
          "bg-indigo-500?shadow-lg?shadow-indigo-500/50?...">Subscribe

          可以得到如下的效果:

          滾動捕捉 API

          我們加入了一個完善的用于實(shí)現(xiàn) CSS 滾動捕捉模塊的輔助類集合,使得你可以直接在 HTML 里面實(shí)現(xiàn)非常豐富的滾動捕捉的效果:

          什么是滾動捕捉?也就是滑動到下一個 Item 時,可以選擇滑動到此 Item 的某個位置,比如下列的定位在圖片中間。

          而上面的效果只需要如下的較為簡單的 Tailwind 輔助類:

          "snap-x?...">
          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??

          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??

          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??

          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"snap-center?...">
          ????"https://images.unsplash.com/photo-1559333086-b0a56225a93c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??

          在一個 snap 容器里,snap-center、snap-start 等是用于滾動定位的設(shè)置項(xiàng),而 Scroll Margin 則是用于設(shè)置相對于定位的偏移,使用形如 scroll-m{side}-{size} 這樣的格式進(jìn)行設(shè)置,如 scroll-ml-6 ,則是相對左邊再偏移 6 個單位的長度:

          "snap-x?...">
          ??"scroll-ml-6?snap-start?...">
          ????"https://images.unsplash.com/photo-1604999565976-8913ad2ddb7c?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"scroll-ml-6?snap-start?...">
          ????"https://images.unsplash.com/photo-1540206351-d6465b3ac5c1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"scroll-ml-6?snap-start?...">
          ????"https://images.unsplash.com/photo-1622890806166-111d7f6c7c97?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"scroll-ml-6?snap-start?...">
          ????"https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??
          ??"scroll-ml-6?snap-start?...">
          ????"https://images.unsplash.com/photo-1575424909138-46b05e5919ec?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=320&h=160&q=80"?/>
          ??

          如上述代碼,snap-center 則會在滾動的時候定位在圖片的開始位置,而加了 scroll-ml-6 之后,會再相對左邊偏移 6 個單位,變成如下效果:

          多列布局

          我們加入了 columns 列布局支持,也被稱之為 “新聞版式布局” 類型,這種布局非常有用,同時應(yīng)用在底部的導(dǎo)航欄布局設(shè)計(jì)時也是非常有用的。

          如我們大多數(shù)網(wǎng)站底部的多列導(dǎo)航欄設(shè)計(jì),以 Tailwind 官網(wǎng)為例:

          當(dāng)你使用對應(yīng)的輔助類如下時:

          "columns-1?sm:columns-3?...">
          ??

          ...


          ??

          你可以獲得如下的效果:

          原生的表單控制樣式

          我們加入了對 CSS accent-color 屬性的支持,如為表單里面的文件輸入框按鈕添加樣式,這使得你能夠細(xì)粒度的為原生的表單控制按鈕添加樣式,如下代碼:


          ??"flex?items-center?space-x-6">
          ????"shrink-0">
          ??????"h-16?w-16?object-cover?rounded-full"?src="https://images.unsplash.com/photo-1580489944761-15a19d654956?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1361&q=80"?alt="Current?profile?photo"?/>
          ????
          ????"block">
          ??????"sr-only">Choose?profile?photo
          ??????type="file"?class="block?w-full?text-sm?text-gray-500
          ????????file:mr-4?file:py-2?file:px-4
          ????????file:rounded-full?file:border-0
          ????????file:text-sm?file:font-semibold
          ????????file:bg-violet-50?file:text-violet-700
          ????????hover:file:bg-violet-100
          ??????"
          />
          ????
          ??
          ??"mt-6?flex?items-center?justify-center?space-x-2?text-sm?font-medium?text-gray-600">
          ????type="checkbox"?class="accent-violet-500"?checked/>
          ????Yes,?send?me?all?your?stupid?updates
          ??

          可以獲得如下效果:

          為選擇文件前:

          選擇文件后:

          打印修飾符

          我們添加了 print 修飾符,使得你可以在用戶打印你的網(wǎng)站時如何展現(xiàn):


          ??"print:hidden">
          ????

          My?Secret?Pizza?Recipe


          ????

          This?recipe?is?a?secret,?and?must?not?be?shared?with?anyone


          ????
          ??
          ??"hidden?print:block">
          ????Are?you?seriously?trying?to?print?this??It's?secret!
          ??


          比如上述的代碼邏輯為,在打印模式下,第一個 article 塊不展示,而 div 塊展示。

          現(xiàn)代 aspect ratio API

          我們添加了原生的 aspect ratio ****屬性的支持,因?yàn)楝F(xiàn)在瀏覽器的支持度已經(jīng)非常高了,即我們可以獲得比較完美的橫縱比。

          比如如下代碼,可以設(shè)置視頻的最佳橫縱比:

          "w-full?aspect-video?..."?src="https://www.youtube.com/...">

          上述代碼得到如下結(jié)果:

          好看的下劃線樣式

          我們現(xiàn)在也支持修改下劃線的顏色、粗細(xì)等屬性了~

          如下面的代碼:


          ??I’m?Derek,?an?astro-engineer?based?in?Tatooine.?I?like?to?build?X-Wings?at
          ??"#"?class="underline?decoration-sky-500?decoration-2">My?Company,?Inc.?Outside?of?work,?I
          ??like?to?"#"?class="underline?decoration-pink-500?decoration-dotted?decoration-2">watch?pod-racing
          ??and?have?"#"?class="underline?decoration-indigo-500?decoration-wavy?decoration-2">light-saber
          ??fights.


          可以得到如下的效果:

          RTL 與 LTR 修飾符

          我們也加入了對 RTL(從右到左)與 LTR(從做到右)等多方向布局的實(shí)驗(yàn)性支持,如下代碼:

          "group?flex?items-center">
          ??"shrink-0?h-12?w-12?rounded-full"?src="..."?alt=""?/>
          ??"ltr:ml-3?rtl:mr-3">
          ????"text-sm?font-medium?text-gray-700?group-hover:text-gray-900">...


          ????"text-sm?font-medium?text-gray-500?group-hover:text-gray-700">...


          ??

          可以獲得如下效果:

          Portrait 與 Landscape 修飾符

          我們也添加了在不同屏幕方向的修飾符支持,如 portrait (豎屏)、landscape (橫屏)修飾符,使得你可以通過不同的修飾符控制在對應(yīng)屏幕方向上的樣式:


          ??"portrait:hidden">
          ????
          ??

          ??"landscape:hidden">
          ????


          ??????This?experience?is?designed?to?be?viewed?in?landscape.?Please?rotate?your
          ??????device?to?view?the?site.
          ????


          ??

          任意值輔助類支持

          雖然看起來不太合理,但是我們依然添加了任意 CSS 值的 Tailwind 輔助類,并使得你可以結(jié)合 hover 、lg 等修飾符使用:

          "[mask-type:luminance]?hover:[mask-type:alpha]">
          ??

          或者像 56px 或者 44px 這種任意值,與 lg 修飾符一起使用:

          "[--scroll-offset:56px]?lg:[--scroll-offset:44px]">
          ??

          使用 CDN 來使用 Tailwind

          目前沒有一個很好的基于 CSS 的 CDN 方式來使用 Tailwind CSS v3.0,所以我們構(gòu)建了一個 JavaScript 庫來幫助你使用它:


          "en">
          ??
          ????"utf-8">
          ????"viewport"?content="width=device-width,?initial-scale=1.0"?/>
          ????Example
          ????
          ??
          ??
          ????
          ??

          這種方式僅限于在開發(fā)環(huán)境下使用,或者當(dāng)你想構(gòu)建一個 demo 或者想要嘗試一個有趣的想法時,你可以這樣使用。只需要在任何想要使用 Tailwind 特性的 HTML 文檔里添加 script 標(biāo)簽來引用 https://cdn.tailwindcss.com/ 即可。

          以上就是 TailwindCSS v3.0 更新的全部特性了,看到這里,你覺得 TailwindCSS v3.0 怎么樣呢?你做好將其用于生產(chǎn)、或者加入構(gòu)建你下一個應(yīng)用時的工具箱的準(zhǔn)備了???

          1. JavaScript 重溫系列(22篇全)
          2. ECMAScript 重溫系列(10篇全)
          3. JavaScript設(shè)計(jì)模式 重溫系列(9篇全)
          4.?正則 / 框架 / 算法等 重溫系列(16篇全)
          5.?Webpack4 入門(上)||?Webpack4 入門(下)
          6.?MobX 入門(上)?||??MobX 入門(下)
          7. 120+篇原創(chuàng)系列匯總

          回復(fù)“加群”與大佬們一起交流學(xué)習(xí)~

          點(diǎn)擊“閱讀原文”查看 130+ 篇原創(chuàng)文章

          瀏覽 39
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲AV无码无线在线观看护士 | 黄色艹逼视频在线观看 | 黄色视频网站免费观看 | 91精品久久久久久综合五月天 | 操碰人人|