首页 > 其他分享 >WHAT - Tailwind 样式方案(不写任何自定义样式)

WHAT - Tailwind 样式方案(不写任何自定义样式)

时间:2024-07-10 16:56:12浏览次数:12  
标签:WHAT 自定义 样式 Tailwind your CSS utility

目录

一、官网

https://tailwindcss.com/

Tailwind CSS works by scanning all of your HTML files, JavaScript components, and any other templates for class names, generating the corresponding styles and then writing them to a static CSS file.
It’s fast, flexible, and reliable — with zero-runtime.

Get familiar with some of the core concepts that make Tailwind CSS different from writing traditional CSS.

  • utility-first fundamental: using a utility-first workflow to build complex components from a constrained set of primitive utilities.
  • responsive design: build fully responsive user interfaces that adapt to any screen size using responsive modifiers.
  • hover, focus & other states: style elements in interactive states like hover, focus, and more using conditional modifiers.
  • dark mode: optimize your site for dark mode directly in your HTML using the dark modifiers.
  • reusing styles: manage duplication and keep your projects maintainable by creating reusable abstractions.
  • customizing the framework: customize the framework to match your brand and extend it with your own custom styles.

二、设计理念

Tailwind CSS 是一个 utility-first 的 CSS 框架,它通过提供大量的 utility 类来帮助快速构建界面,从而减少了传统 CSS 中需要编写和维护的自定义样式的数量。它的设计理念是通过组合这些 utility 类来构建界面,而不是通过手动编写每个样式

虽然 Tailwind 可以在很大程度上取代传统的自定义 CSS 样式,但是否可以完全替代取决于具体的项目和使用场景。以下是一些考虑因素:

  1. 项目规模和复杂性:对于简单的项目和原型,Tailwind 可能完全够用,因为它可以快速构建样式而不需要额外的 CSS 文件。但是对于大型、复杂的项目,可能需要更多的自定义样式或组件化的方法,这时可能还需要传统的自定义 CSS。

  2. 团队使用和接受度:如果团队已经熟悉并接受了 Tailwind 的工作方式,那么可以更容易地完全使用 Tailwind。然而,如果团队成员对于 utility-first 的方法不太熟悉或有抵触情绪,可能会倾向于使用传统的自定义 CSS。

  3. 性能考虑:Tailwind 生成的 CSS 文件可能会比手动编写的 CSS 文件更大,因为它包含了大量的 utility 类。这可能对于一些对性能要求非常高的项目有影响,需要进行权衡。

  4. 定制化需求:如果需要非常具体和个性化的样式,可能需要额外的自定义 CSS。虽然 Tailwind 提供了一些扩展和自定义的能力,但仍然可能无法完全满足所有定制化的需求。

因此,虽然 Tailwind 可以在很多情况下取代传统的自定义 CSS 样式,但是否可以完全替代取决于项目的具体需求和团队的偏好。有些项目可能会选择混合使用 Tailwind 和传统的自定义 CSS,以达到最佳的灵活性和效率。

三、示例

以下是一些使用 Tailwind CSS 创建的常见示例或 demo:

  1. 卡片组件
<div class="max-w-sm rounded overflow-hidden shadow-lg">
  <img class="w-full" src="img/card.jpg" alt="Card image">
  <div class="px-6 py-4">
    <div class="font-bold text-xl mb-2">Card Title</div>
    <p class="text-gray-700 text-base">
      Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus quia, nulla! Maiores et perferendis eaque, exercitationem praesentium nihil.
    </p>
  </div>
  <div class="px-6 py-4">
    <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2">#tag1</span>
    <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2">#tag2</span>
    <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700">#tag3</span>
  </div>
</div>
  1. 按钮组件
<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  Button
</button>
  1. 响应式布局
<div class="flex flex-wrap -mx-4">
  <div class="w-full md:w-1/2 lg:w-1/3 px-4 mb-4">
    <div class="bg-white rounded shadow p-6">
      <p class="text-gray-700">Content 1</p>
    </div>
  </div>
  <div class="w-full md:w-1/2 lg:w-1/3 px-4 mb-4">
    <div class="bg-white rounded shadow p-6">
      <p class="text-gray-700">Content 2</p>
    </div>
  </div>
  <div class="w-full md:w-1/2 lg:w-1/3 px-4 mb-4">
    <div class="bg-white rounded shadow p-6">
      <p class="text-gray-700">Content 3</p>
    </div>
  </div>
</div>
  1. 导航栏
<nav class="bg-gray-800 p-4">
  <div class="max-w-7xl mx-auto flex items-center justify-between">
    <div class="flex items-center flex-shrink-0 text-white mr-6">
      <span class="font-semibold text-xl tracking-tight">Logo</span>
    </div>
    <div class="block lg:hidden">
      <button class="text-white hover:text-gray-400 focus:outline-none">
        <svg class="h-6 w-6 fill-current" viewBox="0 0 24 24">
          <path fill-rule="evenodd" d="M4 6h16a1 1 0 0 1 0 2H4a1 1 0 0 1 0-2zm0 5h16a1 1 0 0 1 0 2H4a1 1 0 0 1 0-2zm0 5h16a1 1 0 0 1 0 2H4a1 1 0 0 1 0-2z"/>
        </svg>
      </button>
    </div>
    <div class="hidden lg:block">
      <div class="flex">
        <a href="#" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-gray-400 mr-4">
          Home
        </a>
        <a href="#" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-gray-400 mr-4">
          About
        </a>
        <a href="#" class="block mt-4 lg:inline-block lg:mt-0 text-white hover:text-gray-400">
          Contact
        </a>
      </div>
    </div>
  </div>
</nav>

这些示例展示了如何使用 Tailwind CSS 创建简单但功能强大的界面组件和布局。通过组合各种 utility 类,可以快速实现各种设计需求,而无需手动编写大量的自定义 CSS 样式。

Design System

Using inline styles, every value is a magic number. With utilities, you’re choosing styles from a predefined design system, which makes it much easier to build visually consistent UIs.

https://tailwindcss.com/docs/theme

标签:WHAT,自定义,样式,Tailwind,your,CSS,utility
From: https://blog.csdn.net/weixin_58540586/article/details/140326806

相关文章

  • Android自定义View游戏方向轮盘转向盘方向盘
    在画之前做一些规划,把View分成6份:一份就是小圆的半径,两份就是大圆的半径,大圆的圆心始终是中心,小圆位置根据手指变化,当我们手指超出大圆的范围时候就把他固定在大圆的边缘上(利用相似三角形来计算位置)。privatevoidcomputePosition(floatx,floaty){float......
  • 打造个性化科学工具箱:使用conda-build自定义软件包
    打造个性化科学工具箱:使用conda-build自定义软件包引言Conda是一个强大的包管理系统,广泛用于Python社区,尤其在数据科学和机器学习领域。除了安装现成的包,Conda还允许用户通过conda-build工具构建和分享自己的软件包。本文将详细介绍如何在Conda环境中使用conda-build构建......
  • uniapp 二次封装ui组件加class样式或修改样式在微信小程序不生效的情况
    原因:首先不论是自定义组件还是ui组件,本质上的原因都是微信小程序默认的组件隔离策略导致的。微信小程序组件隔离文档参考组件样式隔离默认情况下,自定义组件的样式只受到自定义组件wxss的影响。除非以下两种情况:指定特殊的样式隔离选项 styleIsolation 。webvie......
  • 一起了解自定义流程表单开发的主要优势
    当前,想要进行流程化办公,应用专业的软件平台产品是非常重要的。低代码技术平台拥有可视化操作界面、很灵活、易维护等优势特点,可以应用于很多中小型流程化办公中。那么,低代码技术平台、自定义流程表单开发的主要优势特点表现在哪来?跟着小编的节奏,一起来了解它们的主要优势吧。什么......
  • jmeter自定义函数开发—Web3钱包生成工具
    之前使用Jmeter进行接口测试时,有生成钱包地址的需求,于是有时间就简单写了个自定义函数环境说明JDK1.8.0,Jmeter5.4.3,maven构建工具实现代码新建一个简单的maven项目即可,以下是pom.xml配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org......
  • 定制化正则化:在Mojo模型中动态应用自定义方法
    定制化正则化:在Mojo模型中动态应用自定义方法在机器学习模型的训练过程中,正则化是一种用于防止过拟合的技术,它通过在损失函数中添加一个额外的惩罚项来实现。Mojo模型,作为H2O.ai提供的一种模型部署格式,主要用于模型的序列化和预测。虽然Mojo模型本身不支持在模型部署后动态......
  • uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获
    项目场景:uni-app使用ucharts地图,自定义Tooltip鼠标悬浮显示内容并且根据@getIndex点击事件获取点击的地区下标和地区名例如:问题描述官方给的文档有限,需要自己下载地图json数据然后自己渲染和编写鼠标悬浮显示内容以及获取点击地址名称,官方只给了@getIndex事件获取下......
  • QPushButton的checked和pressed样式设置无效是因为优先级问题
    设置QPushButton想要设置pressed状态的图标,但是尝试了很多次都没有效果,原来是按照优先级来的,位置越往下优先级越高,hover状态时在最下面,所以鼠标在按钮上时,hover优先级最高,所以无论pressed还是checked都无法显示正确的图标,所以要调整下顺序; QPushButton{border-image:url......
  • 【WCH蓝牙系列芯片】-CH9141模块AT指令增加自定义透传UUID服务
    -------------------------------------------------------------------------------------------------------------------------------------在使用沁恒的蓝牙串口透传芯片CH9141,这是一个自带固件,拿来接上串口就可以直接用的蓝牙模块芯片。支持串口AT配置和在从机模式下......
  • Simple WPF: WPF自定义一个可以定义步长的SpinBox
    最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园。通过WPF的按钮、文本输入框实现了一个简单的SpinBox数字输入用户组件并可以通过数据绑定数值和步长。本文中介绍了通过Xaml代码实现自定义组件的布局,依赖属性的定义和使用等知识点。完整代码见Github组合Xaml......