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

Tailwindcss 不是 Bootstrap 也不是 Materialize

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

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]刪除
最新教學 更多>
  • 限制 Laravel 模型上的急切載重關係
    限制 Laravel 模型上的急切載重關係
    介紹 有時,當您渴望在 Laravel 模型上載入關係時,您可能想要限制返回的相關模型的數量。 例如,在部落格平台上,您可能想要載入系統中的每位作者及其三篇貼文。 在 Laravel 的舊版本中,限制急切加載的關係是一項有點繁瑣的任務。我從來沒有真正找到一種感覺正確的優雅方式來...
    程式設計 發佈於2024-11-07
  • 如何使用 GDB 在 C++ 中列印向量元素?
    如何使用 GDB 在 C++ 中列印向量元素?
    透過GDB 在C 中列印向量元素在GDB 中調試C 程式碼時,檢查std::vector 的內容可能具有挑戰性。例如,考慮一個名為 myVector 的 std::vector。我們如何有效地印製它的元素? 在 GCC 4.1.2 中,解決方案涉及存取向量的內部指標 myVector._M_impl...
    程式設計 發佈於2024-11-07
  • 如何在不同瀏覽器中自訂下拉清單寬度?
    如何在不同瀏覽器中自訂下拉清單寬度?
    IE 下拉清單寬度修改在Internet Explorer 中,下拉清單鏡像其保管箱的寬度,而在Firefox 中,它會適應內容。此限制需要擴展保管箱以容納最長的選擇,從而導致網頁美觀不美觀。 基於CSS 的可變寬度解決方案要克服此問題,使用CSS 允許下拉框和下拉列表使用不同的寬度,請考慮以下事項...
    程式設計 發佈於2024-11-07
  • 在 C++ 中格式化時如何右對齊輸出字串?
    在 C++ 中格式化時如何右對齊輸出字串?
    在C 中透過右對齊格式化輸出字串處理包含資料(例如座標)的文字檔案時,需要對齊列中的項目經常出現正確格式化的問題。在 C 中,輸出字串的操作對於實現這種對齊至關重要。本文解決了輸出字串右對齊的問題,提供了使用標準 C 技術的解決方案。 為了處理輸入文字文件,使用 line.split() 函數將每一...
    程式設計 發佈於2024-11-07
  • CSS 漸層產生器
    CSS 漸層產生器
    歡迎來到「免費 CSS 工具」系列。 在本系列中,我們將找到完全免費且易於使用的 CSS 工具。 在解釋瞭如何使用該工具後,我將與您分享該工具的連結。 工具連結:此工具可在 webdevtales.com 上取得 工具1:CSS漸層生成器 工具檢視: 介紹 歡迎使用 CSS 漸...
    程式設計 發佈於2024-11-07
  • 為什麼小型函數會讓你成為編碼英雄的原因
    為什麼小型函數會讓你成為編碼英雄的原因
    嘿,代碼愛好者們! ?您是否曾經發現自己迷失在無盡的線條海洋中,想知道一個功能在哪裡結束,另一個功能從哪裡開始?我們都去過那裡。今天,我們來談談為什麼將程式碼分解成更小的、可管理的區塊不僅僅是一種最佳實踐——它還能改變你的開發技能和職業生涯。 1.未來的你會感謝你 想像一下:現在是...
    程式設計 發佈於2024-11-07
  • JavaScript 變數名稱中美元符號的含義是什麼?
    JavaScript 變數名稱中美元符號的含義是什麼?
    為什麼在 JavaScript 變數名稱中使用美元符號? 提供的 JavaScript 程式碼包含一個名為「$item」的變量,該變數引發問題:變數名稱中美元符號的用途是什麼? 在 JavaScript 中,變數名稱前面的美元符號對於解譯器來說沒有特殊意義。它用作輕鬆識別包含 jQuery 物件的變...
    程式設計 發佈於2024-11-07
  • Laravel 中的授權 - 初學者指南
    Laravel 中的授權 - 初學者指南
    掌握 Laravel 中的授權:Gates 與策略類別 ?? 在現代 Web 應用程式中,控制誰可以存取或修改資源至關重要。例如,在部落格應用程式中,您可能希望確保只有貼文的擁有者才能編輯或刪除它。 Laravel 提供了兩種優雅的方式來處理授權:Gates 和 Policy Cl...
    程式設計 發佈於2024-11-07
  • Laravel 的枚舉
    Laravel 的枚舉
    報告 在我從事的一個專案中,有一個選擇欄位定義了不會更改的值。因此,為了列出此選擇中的項目,我決定建立一個枚舉類,然後描述這些值。但是,該項目需要支援英語和西班牙語,並且選擇選項的文本需要適應這一點,同時又不丟失對相應枚舉項的引用。換句話說,如果我選擇了“馬”這個項目,我需要係統知道這個項目仍然是“...
    程式設計 發佈於2024-11-07
  • \“模組 vs 主要:現代英雄 vs package.json 的復古傳奇!\”
    \“模組 vs 主要:現代英雄 vs package.json 的復古傳奇!\”
    什麼是模組字段? package.json 中的 module 欄位指定 ESM(ES6 模組) 的入口點。與為CommonJS 模組(require()) 設計的main 欄位不同,模組用於支援較新的ESM 標準的目標環境,例如JavaScript 捆綁程式(Webpack、Ro...
    程式設計 發佈於2024-11-07
  • 如何在 CSS 檔案中實現類似變數的行為?
    如何在 CSS 檔案中實現類似變數的行為?
    CSS 檔案中的變數宣告並使用在 CSS 中,通常需要在整個樣式表中重複使用特定值。雖然沒有明確的變數聲明語法,但有一些技術可以實現此功能。 一種方法是利用 CSS 選擇器和樣式規則。將相關樣式組合在單一規則下,您可以避免重複,同時澄清每種樣式的範圍。例如:/* Theme color: text ...
    程式設計 發佈於2024-11-07
  • 如何在 PHP 中編寫基本函數來從文字中刪除表情符號?
    如何在 PHP 中編寫基本函數來從文字中刪除表情符號?
    用 PHP 編寫一個簡單的 removeEmoji 函數處理線上文字通常需要刪除表情符號,特別是在 Instagram 評論等情況下。本文探討了針對這種需求的解決方案,利用 PHP preg_replace 函數來有效地消除給定文字中的表情符號。 removeEmoji 函數利用一系列正規表示式來匹...
    程式設計 發佈於2024-11-07
  • Slim 和 Flight PHP 框架比較
    Slim 和 Flight PHP 框架比較
    为什么要使用微框架? 在社交媒体上,新的 PHP 开发人员经常会问“我的项目应该使用什么框架”,通常给出的答案是“Laravel”或“Symfony”。 虽然这些都是不错的选择,但这个问题的正确答案应该是“你需要框架做什么?” 正确的框架应该能够满足您的需要,并且不会包含大量您永远...
    程式設計 發佈於2024-11-07
  • 如何建立您的第一個 Python 遊戲:使用 PyGame 創建簡單射擊遊戲的逐步指南
    如何建立您的第一個 Python 遊戲:使用 PyGame 創建簡單射擊遊戲的逐步指南
    Hi lovely readers, Have you ever wanted to create your own video game? Maybe you’ve thought about building a simple shooter game where you can move ar...
    程式設計 發佈於2024-11-07
  • 為什麼我的 Java JDBC 程式碼在連接到 Oracle 時拋出“IO 錯誤:網路適配器無法建立連線”?
    為什麼我的 Java JDBC 程式碼在連接到 Oracle 時拋出“IO 錯誤:網路適配器無法建立連線”?
    診斷Oracle JDBC「IO 錯誤:網路適配器無法建立連線」嘗試使用JDBC 執行簡單的Java 程式碼時要連線到Oracle資料庫,您可能會遇到神秘的錯誤「IO 錯誤:網路適配器無法建立連線」。這個令人費解的消息源於 JDBC 驅動程式的模糊術語,並且可能由各種根本原因造成。以下是一些可能導致...
    程式設計 發佈於2024-11-07

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

Copyright© 2022 湘ICP备2022001581号-3