从遮罩图像中排除滚动条

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

我有一个水平菜单,边缘带有蒙版图像,但是滚动条包含在蒙版中并且边缘已褪色,如何在 div 的下部创建另一个蒙版以完全显示滚动条?

我尝试在底部使用

mask-size
,但滚动条完全隐藏了。

  mask-size: 100% 85%;
  mask-position: top;
  mask-repeat: no-repeat;

.nav {
  width: 400px;
  overflow-x: auto;
  -webkit-mask-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 3%, rgb(255, 255, 255) 97%, rgba(255, 255, 255, 0) 100%);
  padding-bottom: 20px;
}

.menu {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
<nav class="nav">
  <div class="menu">
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
    <p>text</p>
  </div>
</nav>

html css
1个回答
0
投票

使用

inline-block
包装器并将遮罩图像应用到其上。在您的情况下,如果除了
menu
之外没有任何子元素,您可以简单地将遮罩图像移动到
menu
上。

.nav {
  width: 400px;
  overflow-x: auto;
  border: 1px solid red;
  padding-bottom: 20px;
}

.wrapper {
  display: inline-block;
  mask-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 3%, rgb(255, 255, 255) 97%, rgba(255, 255, 255, 0) 100%);
}

.menu {
  display: flex;
  flex-direction: row;
  gap: 1rem;
}
<nav class="nav">
  <div class="wrapper">
    <div class="menu">
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
      <p>text</p>
    </div>
    123456789
</nav>

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