【问题标题】:Horizontal scrolling & overflow水平滚动和溢出
【发布时间】:2016-09-25 14:35:57
【问题描述】:

我想在没有看到滚动条的情况下进行水平滚动。 所以我尝试了多种方法,例如下面提供的解决方案。

Hide scroll bar, but still being able to scroll

我现在拥有的:

nav {
    display: inline;
    white-space: nowrap;
    width: 100%;
    height: 100%;
    min-width: 75em;
    overflow-y: hidden;
    overflow-x: hidden;

    .overflow_wrap {
        overflow-x: scroll;
        overflow-y: hidden;
        -ms-overflow-style: none;
        width: 100%;
        height: 100%;
        height: auto;
        text-align: center;
        float: left;
        background-color: $white;
        border-bottom: 1px solid $third_fontcolor;

        &::-webkit-scrollbar { 
            width: 0 !important; 
            display: none; 
            background: transparent; 
        }

    }

} 

我可以水平滚动,但我仍然在其他浏览器中看到滚动条,然后是 Chrome。有没有办法来解决这个问题?我在没有看到滚动条的情况下看到了垂直滚动的多种解决方案,但没有看到水平滚动的解决方案。我可能错过了什么。

【问题讨论】:

  • 所以你想对所有浏览器隐藏滚动条?
  • 没错,只是隐藏它,同时保留滚动的可能性
  • 第二个答案很有帮助,不是吗?为什么不试试这个?
  • 这已经在我的代码中,但我仍然看到滚动条。

标签: css scroll scrollbar overflow horizontal-scrolling


【解决方案1】:

#parent{
    height: 100px;
    width: 100px;
    overflow: hidden;
}

#child{
    height: 100px;  /* set the width 20px longer, so that vertical scroll disabled */
    width: 120px;
    overflow-y: auto;
    overflow-x: hidden;
}

#child2{
   width: 100px;  /* real width for scrolling */
	font-size:30px;
	background:#ff0;
	word-wrap:break-word;
}
<div id="parent">
	<div id="child">
		<div id="child2">kjhdsvcbsk,jgfnbv lihkfxdkjfdxhlgbfdzkjvdrjbgkjdxblkjhgvbdzkjbvkjdzbvkjldzgvkjhgbdzlkbvlkjdzkjvdzhflkjbhfdzkjbghlkjfdznbbdxblsergdrsnttdrhytdjnhtdumhykjdnijertsnbvls</div>
	</div>
</div>

代码如上,你可以删除不需要的东西。

注意事项:

  1. 设置3层元素;
  2. 对于最外层,设置溢出为隐藏,宽度和高度设置为你想要的值;
  3. 对于第二层,将宽度或高度设置为比第一层长约 20 像素。如果要隐藏垂直滚动条,请将overflow-x设置为隐藏;否则将overflow-y设置为隐藏;

这取决于是否应该隐藏水平或垂直; 如果是水平的,则设置宽度;否则设置高度;

  1. 对于最后一个子元素,将宽度和高度设置为您想要的值。

【讨论】:

  • 如果你尝试这个水平滚动,它不起作用。 codepen.io/anon/pen/aZboeo
  • 横向的,只有在#child2元素宽度固定的情况下才有效
  • 当然不行,因为宽度是100,不需要滚动。
  • 将#child overflow-x,y 设置为 auto 并将宽度和高度设置为 120。
  • 好吧,我根本没看到。我们正在创建一个固定大小的盒子,不会溢出。在这个盒子里,我们创建了另外两个同样大小(大 20px)和溢出滚动的盒子。我给了它一个高度并添加了 white-space: nowrap ,现在我有了水平滚动。但是这段代码会受到父元素的影响吗?因为这些 div 位于 nav 内部(并且 div 内部是导航),但运行起来并不顺畅。
【解决方案2】:

有一种方法很简单 - 使用 overflow-x: auto 而不是 overflow-x: scroll 让浏览器使用它们的默认行为。

【讨论】:

  • 滚动有效,但滚动条仍在我的视野中。我想隐藏它
【解决方案3】:

只是一个运行良好的测试。

#parent{
    height: 100%;
    width: 100%;
    overflow: hidden;
}

#child{
    width: 100%;
    height: 100%;
    overflow-y: scroll;
    padding-right: 17px; /* Increase/decrease this value for cross-browser compatibility */
}

【讨论】:

  • 你刚刚复制了对我发布的主题的反应。这并不能解决我的问题。
猜你喜欢
  • 2013-11-16
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-10
  • 2021-02-04
  • 2014-08-27
  • 1970-01-01
  • 2021-02-12
相关资源
最近更新 更多