Published on

tailwindcss常用操作

Authors
  • avatar
    Name
    yushenw
    Linkedin
Python
TypeScript
JavaScript
Java
React
NextJS
Svelte
TensorFlow
PyTorch
Streamlit
Streamlit
PostgreSQL
MySQL
MongoDB
Firebase
FastAPI
Docker
Git
Prisma
Drizzle

饱和度 + 背景模糊 + 颜色过渡

  1. saturate-100:

    • 这个类用于控制元素的饱和度效果。
    • saturate-100 表示将元素的颜色饱和度设置为 100%,即保持原始的饱和度。
    • 你可以使用其他数值修饰符,如 saturate-50saturate-200,来调整饱和度。
  2. backdrop-blur-[10px]:

    • 这个类用于给元素添加背景模糊效果。
    • backdrop-blur-[10px] 表示将元素背后的内容模糊 10 个像素。
    • 你可以调整数值来控制模糊程度,例如 backdrop-blur-[5px]backdrop-blur-[20px]
  3. transition-colors:

    • 这个类用于设置元素的颜色过渡效果。
    • 当元素的颜色发生变化时,会有一个平滑的过渡效果,而不是突然变化。
    • 这个类通常与其他颜色相关的类一起使用,例如 hover:text-blue-500focus:bg-gray-200

综合使用这几个类,可以创造出一些有趣的视觉效果。例如:

<button
  class="bg-white/80 backdrop-blur-[10px] saturate-100 transition-colors hover:bg-red-400/90 text-gray-800 px-4 py-2 rounded-md"
>
  Button with Blur Effect
</button>

在这个例子中:

  • bg-white/80 设置了一个半透明的白色背景
  • backdrop-blur-[10px] 为背景添加了模糊效果
  • saturate-100 保持了原始的颜色饱和度
  • transition-colors 为背景颜色变化添加了平滑过渡
  • hover:bg-white/90 在鼠标悬停时增加了背景的不透明度

通过组合使用这些 Tailwind 类,你可以轻松地创建出富有动感的 UI 元素,增强用户体验。

实现对象模糊效果

在 Tailwind CSS 中,filter: blur(20px) 属性用于将元素应用模糊效果。这个属性通常用于创建一个毛玻璃或柔和的背景效果。

具体来说:

  1. filter 是一个 Tailwind 类,可以应用于任何 HTML 元素。

  2. blur(20px)filter 类的一个修饰符,用于指定模糊的强度。数值越大,模糊效果越强。在这个例子中,模糊强度为 20 像素。

使用方法:

<img src="/static/images/posts/etcd-lock-1.png" alt="etcd-lock" class="w-auto filter blur-[20px]" />

效果如下:

etcd-lock

你也可以使用其他的 filter 修饰符,如 grayscale, sepia, invert 等,来应用不同的视觉效果。

例如:

<img src="your-image.jpg" alt="Your Image" class="filter grayscale blur-[20px]" />

这将同时应用灰度和模糊效果:

etcd-lock

你还可以在 CSS 中使用 @apply 指令来应用这些类:

.blurred-image {
  @apply filter blur-[20px];
}

然后在 HTML 中使用这个类:

<img src="your-image.jpg" alt="Your Image" class="blurred-image" />

filter blur 和 backdrop-blur 的区别

filter: blur(20px)backdrop-blur(20px) 这两个 CSS 属性在 Tailwind CSS 中都可以用来实现模糊效果,但它们有一些不同之处:

  1. 作用对象不同:

    • filter: blur(20px) 是应用在元素自身上的模糊效果。
    • backdrop-blur(20px) 是应用在元素背后的内容上的模糊效果。
  2. 对性能的影响不同:

    • filter: blur(20px) 会对元素自身的渲染产生一定的性能开销,因为需要对整个元素进行模糊处理。
    • backdrop-blur(20px) 只会对元素背后的内容进行模糊处理,性能开销相对较小。
  3. 适用场景不同:

    • filter: blur(20px) 通常用于给元素本身添加模糊效果,如图片、背景等。
    • backdrop-blur(20px) 更适合用于创建毛玻璃/半透明效果,如遮罩层、导航栏等。

举个例子,假设你有一个半透明的遮罩层,你可以这样使用 Tailwind 类:

<div class="bg-black/50 backdrop-blur-[20px]">
  <!-- 遮罩层内容 -->
  <p>遮罩层内容</p>
</div>

内容

在这种情况下,使用 backdrop-blur-[20px] 会更合适,因为它只会模糊遮罩层背后的内容,而不会影响遮罩层自身的渲染。

相比之下,如果你有一个模糊的图片,你可以使用 filter: blur(20px):

<img src="your-image.jpg" alt="Blurred Image" class="filter blur-[20px]" />

总之,filter: blur(20px)backdrop-blur(20px) 都可以用于创建模糊效果,但前者适用于元素自身,后者更适合用于元素背后的内容。根据具体的使用场景,选择合适的属性可以帮助你获得更好的视觉效果和性能表现。

实现脉冲(pulse)动画效果

在 Tailwind CSS 中,pulse 是一个特殊的动画效果,用于创建一种脉动或闪烁的视觉效果。它通常用于吸引用户注意力或强调某些交互元素。

具体来说:

  1. pulse 是 Tailwind 提供的一个预定义的 CSS 动画类。

  2. 当你将 pulse 类应用到一个元素上时,它会创建一个脉动动画效果,元素会不断放大和缩小。

使用方法如下:

<button class="px-4 py-2 text-white bg-blue-500 rounded-md animate-pulse">Click me</button>

在上面的例子中, animate-pulse 类会应用脉动动画效果到 <button> 元素上。

也可以通过 duration-{length}delay-{length} 等修饰符来自定义动画的持续时间和延迟时间。

<div class="p-4 duration-1000 delay-500 bg-gray-200 animate-pulse">This is a pulsing element</div>
This is a pulsing element

使用 pulse 模拟资源加载

在这个例子中,我们使用 animate-pulse 类模拟了一个资源加载的动画效果。这种效果可以让用户知道某个资源正在加载,并且可以提高用户体验。

模拟文字加载

Loading...

pulse 是 Tailwind CSS 提供的一个非常有用的动画效果,可以帮助你创建引人注目的 UI 元素,从而提升用户体验。