如何在 Tailwind 中创建没有滚动条的可滚动元素

问题描述 投票:0回答:5

我正在尝试在底部重新创建一个带有顺风的水平滚动导航栏没有滚动条,就像这个例子一样(减少屏幕的宽度以便能够滚动)

https://getbootstrap.com/docs/5.0/examples/blog/

我使用 Tailwind 尝试了以下操作,但我无法弄清楚如何删除如上面的引导示例所示的水平滚动条。有人可以帮忙吗?

<ul class="flex overflow-x-auto whitespace-nowrap p-4">
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
  <li><a href="/" class="p-2">Nav Item</a></li>
</ul>
css bootstrap-4 tailwind-css bootstrap-5
5个回答
69
投票

要隐藏滚动条,您需要直接设置其样式:

/* Hide scrollbar for Chrome, Safari and Opera */
.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE, Edge and Firefox */
.no-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

您可以使用配置中的插件轻松地将它们添加为 Tailwind 实用程序:https://tailwindcss.com/docs/plugins#adding-utilities


进一步阅读:

https://css-tricks.com/almanac/properties/s/scrollbar/ https://www.w3schools.com/howto/howto_css_hide_scrollbars.asp


55
投票

将其添加到您的全局 css 文件中(

global.css
style.css
或任何您拥有的文件):

/*
    https://github.com/tailwindlabs/tailwindcss/discussions/2394
    https://github.com/tailwindlabs/tailwindcss/pull/5732
*/
@layer utilities {
    /* Chrome, Safari and Opera */
    .no-scrollbar::-webkit-scrollbar {
      display: none;
    }

    .no-scrollbar {
      -ms-overflow-style: none; /* IE and Edge */
      scrollbar-width: none; /* Firefox */
    }
}

然后你只需添加类

no-scrollbar
,就像你通常喜欢的那样,注意我添加了overflow-y-auto来自动使滚动条保持正确的大小。

<div className="no-scrollbar overflow-y-auto">

或者:

你可以尝试这个

tailwindcss
隐藏滚动条插件

https://github.com/reslear/tailwind-scrollbar-hide


17
投票

要回答@wataru 在评论中的问题,将这些类作为插件添加到tailwind.config.js

的语法是这样的:

const plugin = require('tailwindcss/plugin') module.exports = { content: [ "./pages/**/*.{js,ts,jsx}", "./components/**/*.{js,ts,jsx}", ], theme: { extend: {}, }, plugins: [ plugin(function ({ addUtilities }) { addUtilities({ '.scrollbar-hide': { /* IE and Edge */ '-ms-overflow-style': 'none', /* Firefox */ 'scrollbar-width': 'none', /* Safari and Chrome */ '&::-webkit-scrollbar': { display: 'none' } } } ) }) ], }
要检查的行是 

const plugin

plugins: []
 数组

我通过检查上面 @jasonleonhard 链接的

https://github.com/reslear/tailwind-scrollbar-hide 包的源代码了解到了这一点。


10
投票
使用 Tailwind v3,您可以使用任意值来实现此目的。

在 HTML 元素 classList 上使用

[&::-webkit-scrollbar]:hidden


4
投票
Tailwind v3 有一个强大的功能称为

arbitrary values

。您可以在此处找到如何使用它,
使用任意值。慢慢读,因为你可能会错过它。我是第一次做。无需使用实用程序。

class="[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"


这可以解决三大浏览器的问题:

/* Safari 和 Chrome */

/* IE 和 Edge */

/* 火狐 */

© www.soinside.com 2019 - 2024. All rights reserved.