」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 Bootstrap 用戶應該在下一個專案中考慮使用 Tailwind CSS?

為什麼 Bootstrap 用戶應該在下一個專案中考慮使用 Tailwind CSS?

發佈於2024-11-09
瀏覽:355

Tailwind CSS 入门 Bootstrap 用户指南

大家好! ?如果您是 Bootstrap 的长期用户,并且对过渡到 Tailwind CSS 感到好奇,那么本指南适合您。 Tailwind 是一个实用程序优先的 CSS 框架,与 Bootstrap 基于组件的结构相比,它提供了完全不同的方法。让我们深入了解如何作为 Bootstrap 用户轻松开始使用 Tailwind!

这个改进的版本确保所有代码块都正确格式化和缩进,使指南更易于阅读和遵循。

?为什么选择 Tailwind CSS?

在进入教程之前,先对 Bootstrap 和 Tailwind 进行快速比较:

  • Bootstrap:一个基于组件的框架,提供具有固执己见的设计的预构建 UI 组件。
  • Tailwind:一个实用程序优先的框架,允许您使用低级实用程序类设计组件的样式,从而提供更大的灵活性和控制力。

当您需要高度定制的设计时,Tailwind 会大放异彩,但如果您习惯了 Bootstrap,它可能会感到陌生。那么让我们一步步分解吧。

1. 在项目中设置 Tailwind

第 1 步:安装 Tailwind CSS

要开始使用 Tailwind CSS,您需要将其安装到您的项目中。请按照下列步骤操作:

  • 通过 npm 安装 Tailwind:
  npm install -D tailwindcss postcss autoprefixer
  npx tailwindcss init
  • 在 tailwind.config.js 文件中,设置内容数组以确保 Tailwind 扫描您的项目中的类:
  module.exports = {
    content: [
      './public/**/*.html',
      './src/**/*.{html,js}',
    ],
    theme: {
      extend: {},
    },
    plugins: [],
  }

第 2 步:创建 CSS 文件

现在,使用以下 Tailwind 指令在项目中创建一个 styles.css 文件:

@tailwind base;
@tailwind components;
@tailwind utilities;

第 3 步:在 HTML 中包含 Tailwind

在您的 HTML 文件中,链接生成的 CSS 文件:


您现在已准备好开始在项目中使用 Tailwind!

2. 理解顺风理念

如果您习惯了 Bootstrap 的类,如 .container、.row 和 .col-6,那么切换到 Tailwind 可能会感觉是一个很大的改变。在 Bootstrap 中,布局和设计决策被抽象为组件,而在 Tailwind 中,您可以使用实用程序类完全控制设计。

示例:创建网格布局

引导程序:

Column 1
Column 2

顺风:

Column 1
Column 2

在 Tailwind 中,grid 和 grid-cols-2 类取代了 Bootstrap 的 row 和 col 系统。 gap-4 类增加了网格项之间的间距,您可以通过调整实用程序类来根据需要调整所有内容。

3. Tailwind 的版式和间距

Bootstrap 和 Tailwind 之间的一个主要区别是排版和间距的处理方式。

示例:添加版式和填充

引导程序:

Hello, Bootstrap!

This is a lead paragraph.

顺风:

Hello, Tailwind!

This is a lead paragraph.

在 Tailwind 中,没有预定义的按钮或标题样式。相反,您可以直接应用实用程序类(text-4xl、bg-blue-500、px-4 等)来完全按照您想要的方式构建您的设计。

4.响应式设计

Bootstrap 用户喜欢的一件事是响应式网格系统。 Tailwind 还具有出色的响应式实用程序,但您可以使用 Tailwind 的响应式前缀控制不同屏幕尺寸的样式,而不是依赖预定义的断点。

示例:使元素响应

引导程序:

Responsive Column

顺风:

Responsive Column

在 Tailwind 中,w-full 确保元素在较小的屏幕上占据整个宽度,而 md:w-1/2 应用从 md 断点(中等屏幕尺寸)开始的 50% 宽度。

5. 定制 Tailwind

就像您可以自定义 Bootstrap 变量一样,您可以扩展 Tailwind 的实用程序类或创建您自己的自定义设计系统。在你的 tailwind.config.js 中,你可以扩展或修改默认主题:

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#1DA1F2',
        secondary: '#14171A',
      },
    },
  },
}

通过此配置,您可以使用自定义颜色,如下所示:


6. 将 Bootstrap 组件迁移到 Tailwind

如果您想在 Tailwind 中重新创建常见的 Bootstrap 组件(如按钮、导航栏和模式),那么关键在于使用正确的实用程序。以下是一些示例:

按钮组件

引导程序:


顺风:


导航栏组件

引导程序:


顺风:


通过学习 Tailwind 的实用程序类,您可以比 Bootstrap 的预构建样式更灵活地构建复杂的组件。

7. 使用 Tailwind 插件

Tailwind 拥有丰富的插件生态系统,可扩展其功能。例如,您可以轻松添加表单、排版或宽高比实用程序:

npm install @tailwindcss/forms @tailwindcss/typography @tailwindcss/aspect-ratio

在你的 tailwind.config.js 中:

module.exports = {
  plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/typography'),
    require('@tailwindcss/aspect-ratio'),
  ]
}

8. 使用 Metronic 9 升级 – 一体化 Tailwind UI 工具包

如果您正在寻找结合了 Bootstrap 的简单性和熟悉性的 Tailwind CSS 体验,那么 Metronic 9 就是您的最佳选择!

Why Bootstrap Users Should Consider Tailwind CSS for Their Next Project ?

Metronic 9 是一款一体化 Tailwind UI 工具包,它集两全其美:Tailwind CSS 实用至上的强大功能,与您熟悉的 Bootstrap 结构化和组件驱动方法相结合。

为什么为您的 Tailwind 项目选择 Metronic 9?

  • 受欢迎且值得信赖:Metronic 于 2013 年发布,成为 Envato 市场上排名第一的管理仪表板模板,销量达 115,000 份,并获得 8000 条 5 星级评论,为全球 3000 多个 SaaS 项目提供支持。

  • 预构建组件:就像 Bootstrap 一样,Metronic 9 附带了数百个即用型组件,如按钮、导航栏、模式、表单等 - 所有这些均由 Tailwind CSS 实用程序提供支持。这使您可以快速构建现代的、响应式的 UI,而无需从头开始编写自定义样式。

  • Tailwind Bootstrap 体验:您可以获得 Tailwind 的灵活性和 Bootstrap 的结构化感觉。无论您是从 Bootstrap 迁移还是重新开始,您都会发现学习曲线很短。

  • 多种布局:Metronic 9 拥有超过 5 个应用程序布局演示和 1000 个 UI 元素,让您可以快速轻松地构建复杂的应用程序,无论您是在 SaaS 仪表板、管理面板还是一般 Web 应用程序上工作。

  • 无缝集成:Metronic 9 与 React、Next.js 和 Angular 等现代框架完美集成,通过类似 Bootstrap 的易用性让您在 Tailwind 之旅中领先一步。

立即开始​​使用 Metronic 9!

如果您从 Bootstrap 过渡并想要一个熟悉的、功能丰富的环境来使用 Tailwind,Metronic 9 是完美的解决方案。它旨在节省您的时间和精力,让您专注于构建出色的产品,而不会陷入设计细节的困境。

?在这里查看 Metronic 9 并开始利用 Tailwind 的灵活性和 Bootstrap 的简单性创建漂亮的 UI!

9. 结论:Tailwind 是您的正确选择吗?

如果您正在寻求对设计的更多定制和控制,而不受预构建组件的限制,
Tailwind CSS 是一个不错的选择。如果您习惯了 Bootstrap,可能需要一些时间来调整,但一旦您习惯了实用程序优先的方法,可能性是无限的!

请随时在下面的评论中提出任何问题或分享您的经验。快乐编码! ?

版本聲明 本文轉載於:https://dev.to/keenthemes/why-bootstrap-users-should-consider-tailwind-css-for-their-next-project--4j20?1如有侵犯,請聯絡study_golang@163. com刪除
最新教學 更多>
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-05-08
  • 如何簡化PHP中的JSON解析以獲取多維陣列?
    如何簡化PHP中的JSON解析以獲取多維陣列?
    php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    程式設計 發佈於2025-05-08
  • 如何有效地選擇熊貓數據框中的列?
    如何有效地選擇熊貓數據框中的列?
    在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
    程式設計 發佈於2025-05-08
  • 左連接為何在右表WHERE子句過濾時像內連接?
    左連接為何在右表WHERE子句過濾時像內連接?
    左JOIN CONUNDRUM:WITCHING小時在數據庫Wizard的領域中變成內在的加入很有趣,當將c.foobar條件放置在上面的Where子句中時,據說左聯接似乎會轉換為內部連接。僅當滿足A.Foo和C.Foobar標準時,才會返回結果。 為什麼要變形?關鍵在於其中的子句。當左聯接的右側...
    程式設計 發佈於2025-05-08
  • 如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    如何為PostgreSQL中的每個唯一標識符有效地檢索最後一行?
    postgresql:為每個唯一標識符在postgresql中提取最後一行,您可能需要遇到與數據集合中每個不同標識的信息相關的信息。考慮以下數據:[ 1 2014-02-01 kjkj 在數據集中的每個唯一ID中檢索最後一行的信息,您可以在操作員上使用Postgres的有效效率: id dat...
    程式設計 發佈於2025-05-08
  • 圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    圖片在Chrome中為何仍有邊框? `border: none;`無效解決方案
    在chrome 中刪除一個頻繁的問題時,在與Chrome and IE9中的圖像一起工作時,遇到了一個頻繁的問題。和“邊境:無;”在CSS中。要解決此問題,請考慮以下方法: Chrome具有忽略“ border:none; none;”的已知錯誤,風格。要解決此問題,請使用以下CSS ID塊創建帶...
    程式設計 發佈於2025-05-08
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-05-08
  • 如何在鼠標單擊時編程選擇DIV中的所有文本?
    如何在鼠標單擊時編程選擇DIV中的所有文本?
    在鼠標上選擇div文本單擊帶有文本內容,用戶如何使用單個鼠標單擊單擊div中的整個文本?這允許用戶輕鬆拖放所選的文本或直接複製它。 在單個鼠標上單擊的div元素中選擇文本,您可以使用以下Javascript函數: function selecttext(canduterid){ if(d...
    程式設計 發佈於2025-05-08
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-05-08
  • FastAPI自定義404頁面創建指南
    FastAPI自定義404頁面創建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    程式設計 發佈於2025-05-08
  • 在C#中如何高效重複字符串字符用於縮進?
    在C#中如何高效重複字符串字符用於縮進?
    在基於項目的深度下固定字符串時,重複一個字符串以進行凹痕,很方便有效地有一種有效的方法來返回字符串重複指定的次數的字符串。使用指定的次數。 constructor 這將返回字符串“ -----”。 字符串凹痕= new String(' - ',depth); console.W...
    程式設計 發佈於2025-05-08
  • 使用jQuery如何有效修改":after"偽元素的CSS屬性?
    使用jQuery如何有效修改":after"偽元素的CSS屬性?
    在jquery中了解偽元素的限制:訪問“ selector 嘗試修改“:”選擇器的CSS屬性時,您可能會遇到困難。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    程式設計 發佈於2025-05-08
  • Java是否允許多種返回類型:仔細研究通用方法?
    Java是否允許多種返回類型:仔細研究通用方法?
    在Java中的多個返回類型:一種誤解類型:在Java編程中揭示,在Java編程中,Peculiar方法簽名可能會出現,可能會出現,使開發人員陷入困境,使開發人員陷入困境。 getResult(string s); ,其中foo是自定義類。該方法聲明似乎擁有兩種返回類型:列表和E。但這確實是如此嗎...
    程式設計 發佈於2025-05-08
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在時間戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源於遺留實現的關注,這些限制需要對當前的_timestamp功能進行特定的實現。 創建表`foo`( `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-05-08
  • 在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    在Java中使用for-to-loop和迭代器進行收集遍歷之間是否存在性能差異?
    For Each Loop vs. Iterator: Efficiency in Collection TraversalIntroductionWhen traversing a collection in Java, the choice arises between using a for-...
    程式設計 發佈於2025-05-08

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

Copyright© 2022 湘ICP备2022001581号-3