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

plicqrtu  于 2022-12-15  发布在  其他
关注(0)|答案(4)|浏览(352)

我正在尝试重新创建一个水平滚动导航条与顺风 * 没有滚动条 * 在底部像这个例子(减少宽度,您的屏幕能够滚动)
https://getbootstrap.com/docs/5.0/examples/blog/
我用Tailwind尝试了以下方法,但是我不知道如何删除上面的 Bootstrap 例子中的水平滚动条。有人能帮忙吗?

<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>
btqmn9zl

btqmn9zl1#

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

/* 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

qq24tv8q

qq24tv8q2#

/*
    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

2w2cym1i

2w2cym1i3#

为了回答@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 pluginplugins: []阵列
我通过检查上面由@jasonleonhard链接的https://github.com/reslear/tailwind-scrollbar-hide包的源代码了解到这一点。

ukqbszuj

ukqbszuj4#

使用tailwind v3,您可以使用任意值来实现这一点。
在HTML元素classList上使用[&::-webkit-scrollbar]:hidden

相关问题