」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > Tailwindcss 不是 Bootstrap 也不是 Materialize

Tailwindcss 不是 Bootstrap 也不是 Materialize

發佈於2024-11-07
瀏覽:754

Tailwindcss is not Bootstrap nor Materialize

Tailwind CSS 席卷了 Web 开发世界?️,但对其本质的误解仍然存在。在最近的一次设计系统规划讨论中,当一位同事随意将 Tailwind CSS 与 Bootstrap 和 Materialise 进行比较时,我差点没喝茶☕(对不起,我不喝咖啡)。这个令人震惊的发现就像发现我的猫认为自己是狗一样! ??

那么,拿起你的爆米花吗?当我澄清事实并揭开 Tailwind CSS 的真实身份时!

小介绍

在本文中,我们将深入了解 Tailwind CSS 的真正含义,探索其独特的样式方法以及它与传统 CSS 框架的区别。最后,您将了解为什么将 Tailwind CSS 与 Bootstrap 或其他基于组件的框架进行比较就像将苹果与橙子进行比较??

Tailwind CSS 不是什么 ❌

在我们探索 Tailwind 的真实本质之前,让我们先澄清一些误解:

  • 不是组件库:与 Bootstrap 或 Materialize 不同,Tailwind CSS 不提供开箱即用的预构建组件?
  • 非设计导向:它不会对您的项目强加特定的视觉风格?
  • 不仅仅是另一个 CSS 框架:虽然它在技术上是一个 CSS 框架,但其实用性优先的方法使其有别于传统框架?

以下是一些常见的误解:

  • ? “Tailwind CSS 就像内联样式”:不,不是。与内联样式不同,Tailwind 允许您使用高级功能,例如 伪类、媒体查询和动画 。它提供了一种实用程序优先的方法,与内联样式相比,可以减少 CSS 类的数量
  • ? “您不需要了解 CSS 即可使用 Tailwind”:这是 false。对 CSS 的深入理解对于有效使用 Tailwind CSS4 至关重要。虽然它简化了样式的许多方面,但了解 CSS 基础知识有助于理解实用程序类如何工作以及如何在需要时自定义它们
  • ? “Tailwind CSS 无法自定义”:这与事实相差甚远。事实上,它被设计为高度可扩展和可定制

现在我们已经消除了一些误解,接下来让我们探讨一下 Tailwind CSS 的真正独特之处以及它为何彻底改变开发人员处理 Web 样式的方式。

实用优先的 CSS 框架

Tailwind CSS 的核心是一个实用性优先 CSS 框架。这意味着它提供了一组低级实用程序类,您可以使用它们直接在 HTML 中构建自定义设计。您无需为每个元素编写自定义 CSS,而是应用处理特定样式属性的预定义类。就像拥有一把瑞士军刀?为你的CSS!

例如,不要写:

.button {
  padding: 0.5rem 1rem;
  background-color: blue;
  color: white;
  border-radius: 0.25rem;
}

您将在 HTML 中使用 Tailwind 类:


变相的设计系统

虽然 Tailwind 不提供预构建组件,但它提供了全面的设计系统。它带有一组精心设计的默认值颜色、间距、排版等等。这些默认设置是可自定义的,允许您根据项目的特定设计需求定制 Tailwind。

看看这个自定义配置:

// tailwind.config.js

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: {
          light: '#4da6ff',
          DEFAULT: '#0066cc',
          dark: '#004080',
        },
        secondary: {
          light: '#ffb366',
          DEFAULT: '#ff8000',
          dark: '#cc6600',
        },
      },
      spacing: {
        '72': '18rem',
        '84': '21rem',
        '96': '24rem',
      },
      fontFamily: {
        sans: ['Roboto', 'Arial', 'sans-serif'],
        serif: ['Merriweather', 'Georgia', 'serif'],
      },
      fontSize: {
        'xs': '.75rem',
        'sm': '.875rem',
        'base': '1rem',
        'lg': '1.125rem',
        'xl': '1.25rem',
        '2xl': '1.5rem',
        '3xl': '1.875rem',
        '4xl': '2.25rem',
        '5xl': '3rem',
      },
      borderRadius: {
        'sm': '0.125rem',
        DEFAULT: '0.25rem',
        'md': '0.375rem',
        'lg': '0.5rem',
        'full': '9999px',
      },
    },
  },
  variants: {
    extend: {
      backgroundColor: ['active'],
      textColor: ['visited'],
    },
  },
}

为什么 Tailwind CSS 脱颖而出

灵活性和定制化

与 Bootstrap 或 Materialise 提供一组固执己见的组件不同,Tailwind 为您提供构建块来创建您自己的独特设计。这种灵活性允许更多的创作自由,并有助于避免许多网站陷入的“引导程序外观”

性能优势

其实用程序优先的方法可以减少 CSS 文件大小,特别是与内置的清除功能结合使用时。此功能删除了生产中未使用的样式,从而产生更精简、性能更高的样式表。您的网站会感觉就像打了类固醇一样! ?

开发者体验增强器

它通过以下方式显着改善了开发者体验:

  • 减少上下文切换:您可以在不离开 HTML 的情况下设置元素的样式。不再需要处理多个文件! ?‍♂️
  • 促进一致性:预定义的类鼓励在整个项目中保持一致的间距、颜色和其他设计元素。您的设计将像一支调音良好的管弦乐队一样和谐?
  • 加速开发:通过触手可及的实用程序类,您可以快速制作原型并迭代设计。你会感觉自己拥有超能力!⚡ 通过 Tailwindcss Intellisense vscode 扩展,你可以获得 自动完成和 linting 的类以及添加的自定义类

那是一个包裹?

Tailwind CSS 不仅仅是另一个 CSS 框架。通过提供一组低级实用程序类,它使开发人员能够创建独特、高效且可维护的设计,而不受传统 CSS 框架的限制。

因此,下次有人将 Tailwind 与 Bootstrap 进行比较时,您将有能力解释为什么这种比较没有达到目标,以及为什么 Tailwind 可能正是您的项目所需的游戏规则改变者。快乐编码! ??‍?

版本聲明 本文轉載於:https://dev.to/lynxgsm/tailwindcss-is-not-bootstrap-nor-materialize-663?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 同實例無需轉儲複製MySQL數據庫方法
    同實例無需轉儲複製MySQL數據庫方法
    在同一實例上複製一個MySQL數據庫而無需轉儲在同一mySQL實例上複製數據庫,而無需創建InterMediate sqql script。以下方法為傳統的轉儲和IMPORT過程提供了更簡單的替代方法。 直接管道數據 MySQL手動概述了一種允許將mysqldump直接輸出到MySQL cli...
    程式設計 發佈於2025-07-18
  • 左連接為何在右表WHERE子句過濾時像內連接?
    左連接為何在右表WHERE子句過濾時像內連接?
    左JOIN CONUNDRUM:WITCHING小時在數據庫Wizard的領域中變成內在的加入很有趣,當將c.foobar條件放置在上面的Where子句中時,據說左聯接似乎會轉換為內部連接。僅當滿足A.Foo和C.Foobar標準時,才會返回結果。 為什麼要變形?關鍵在於其中的子句。當左聯接的右側...
    程式設計 發佈於2025-07-18
  • 如何處理PHP文件系統功能中的UTF-8文件名?
    如何處理PHP文件系統功能中的UTF-8文件名?
    在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
    程式設計 發佈於2025-07-18
  • 如何使用Regex在PHP中有效地提取括號內的文本
    如何使用Regex在PHP中有效地提取括號內的文本
    php:在括號內提取文本在處理括號內的文本時,找到最有效的解決方案是必不可少的。一種方法是利用PHP的字符串操作函數,如下所示: 作為替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式來搜索特...
    程式設計 發佈於2025-07-18
  • 為什麼在我的Linux服務器上安裝Archive_Zip後,我找不到“ class \” class \'ziparchive \'錯誤?
    為什麼在我的Linux服務器上安裝Archive_Zip後,我找不到“ class \” class \'ziparchive \'錯誤?
    class'ziparchive'在Linux Server上安裝Archive_zip時找不到錯誤 commant in lin ins in cland ins in lin.11 on a lin.1 in a lin.11錯誤:致命錯誤:在... cass中找不到類z...
    程式設計 發佈於2025-07-18
  • 為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    為什麼我在Silverlight Linq查詢中獲得“無法找到查詢模式的實現”錯誤?
    查詢模式實現缺失:解決“無法找到”錯誤在銀光應用程序中,嘗試使用LINQ建立錯誤的數據庫連接的嘗試,無法找到以查詢模式的實現。 ”當省略LINQ名稱空間或查詢類型缺少IEnumerable 實現時,通常會發生此錯誤。 解決問題來驗證該類型的質量是至關重要的。在此特定實例中,tblpersoon可能...
    程式設計 發佈於2025-07-18
  • 如何正確使用與PDO參數的查詢一樣?
    如何正確使用與PDO參數的查詢一樣?
    在pdo 中使用類似QUERIES在PDO中的Queries時,您可能會遇到類似疑問中描述的問題:此查詢也可能不會返回結果,即使$ var1和$ var2包含有效的搜索詞。錯誤在於不正確包含%符號。 通過將變量包含在$ params數組中的%符號中,您確保將%字符正確替換到查詢中。沒有此修改,PD...
    程式設計 發佈於2025-07-18
  • 編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    編譯器報錯“usr/bin/ld: cannot find -l”解決方法
    錯誤:“ usr/bin/ld:找不到-l “ 此錯誤表明鏈接器在鏈接您的可執行文件時無法找到指定的庫。為了解決此問題,我們將深入研究如何指定庫路徑並將鏈接引導到正確位置的詳細信息。 添加庫搜索路徑的一個可能的原因是,此錯誤是您的makefile中缺少庫搜索路徑。要解決它,您可以在鏈接器命令中添...
    程式設計 發佈於2025-07-18
  • PHP與C++函數重載處理的區別
    PHP與C++函數重載處理的區別
    作為經驗豐富的C開發人員脫離謎題,您可能會遇到功能超載的概念。這個概念雖然在C中普遍,但在PHP中構成了獨特的挑戰。讓我們深入研究PHP功能過載的複雜性,並探索其提供的可能性。 在PHP中理解php的方法在PHP中,函數超載的概念(如C等語言)不存在。函數簽名僅由其名稱定義,而與他們的參數列表無關...
    程式設計 發佈於2025-07-18
  • 反射動態實現Go接口用於RPC方法探索
    反射動態實現Go接口用於RPC方法探索
    在GO 使用反射來實現定義RPC式方法的界面。例如,考慮一個接口,例如:鍵入myService接口{ 登錄(用戶名,密碼字符串)(sessionId int,錯誤錯誤) helloworld(sessionid int)(hi String,錯誤錯誤) } 替代方案而不是依靠反射...
    程式設計 發佈於2025-07-18
  • 如何在Java字符串中有效替換多個子字符串?
    如何在Java字符串中有效替換多個子字符串?
    在java 中有效地替換多個substring,需要在需要替換一個字符串中的多個substring的情況下,很容易求助於重複應用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    程式設計 發佈於2025-07-18
  • FastAPI自定義404頁面創建指南
    FastAPI自定義404頁面創建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    程式設計 發佈於2025-07-18
  • 如何使用Python有效地以相反順序讀取大型文件?
    如何使用Python有效地以相反順序讀取大型文件?
    在python 反向行讀取器生成器 == ord('\ n'): 緩衝區=緩衝區[:-1] 剩餘_size- = buf_size lines = buffer.split('\ n'....
    程式設計 發佈於2025-07-18
  • Python讀取CSV文件UnicodeDecodeError終極解決方法
    Python讀取CSV文件UnicodeDecodeError終極解決方法
    在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
    程式設計 發佈於2025-07-18
  • Go語言垃圾回收如何處理切片內存?
    Go語言垃圾回收如何處理切片內存?
    Garbage Collection in Go Slices: A Detailed AnalysisIn Go, a slice is a dynamic array that references an underlying array.使用切片時,了解垃圾收集行為至關重要,以避免潛在的內存洩...
    程式設計 發佈於2025-07-18

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3