This

< span style=" font - family:宋体;身高:400 px;" >

提供一个div,用户可以在水平和垂直方向上滚动。我如何改变它,使div只能垂直滚动?


当前回答

除了使用错误的属性外,你已经把它覆盖住了。滚动条可以被任意属性overflow、overflow-x或overflow-y触发,并且每个属性都可以被设置为可见、隐藏、滚动、自动或继承中的任意一种。你现在看到的是这两个:

auto -该值将查看框的宽度和高度。如果它们被定义了,它就不会让盒子扩展超过这些边界。相反(如果内容超过了这些边界),它将为超过其长度的任何一个边界(或两个边界)创建滚动条。 scroll -该值强制滚动条,无论如何,即使内容没有超出边界设置。如果内容不需要滚动,该工具条将显示为“禁用”或非交互式。

如果你总是希望垂直滚动条出现:

你应该使用overflow-y: scroll。这将强制为垂直轴显示滚动条,无论是否需要。如果不能滚动上下文,它将显示为“禁用”滚动条。

如果你只希望滚动框出现滚动条:

只需使用overflow: auto即可。因为在默认情况下,当您的内容无法在当前行中放置时,它会切换到下一行,因此不会创建水平滚动条(除非它位于禁用了换行功能的元素上)。对于垂直栏,它将允许内容扩展到您所指定的高度。如果它超过了这个高度,它将显示一个垂直滚动条来查看其余的内容,但如果它没有超过这个高度,它将不显示滚动条。

其他回答

好吧,上面的答案已经很好地解释了一半的问题。为了另一半。

为什么不直接隐藏滚动条本身呢? 这样看起来更吸引人,因为大多数人(包括我)都讨厌滚动条。 您可以使用此代码

::-webkit-scrollbar {
    width: 0px;  /* Remove scrollbar space */
    background: transparent;  /* Optional: just make scrollbar invisible */
}

你可以使用overflow-y: scroll进行垂直滚动。

<div style="overflow-y:scroll; height:400px; background:gray"> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. </div>

参考这个要点:https://gist.github.com/zeoneo/5f9fff92a12aa6d9d42065b5df68e9d5

它可能会帮助您创建一个使用flex和具有自滚动分割窗格的布局。

body { background-color: aquamarine; margin: 0; padding: 0; } .container { height: 100vh; display: flex; flex-direction: column; background-color: bisque; } .left { width: 300px; background-color: lightblue; overflow: auto; scroll-behavior: smooth; } .right { flex:1; background-color: lightcoral; overflow: auto; scroll-behavior: smooth; } .sidebar-item { display: block; height: 100px; background-color: lightseagreen; margin: 5px; } .header { display: block; height: 100px; flex:none; background-color: aqua; } .content { flex:1; background-color: brown; display: flex; overflow: auto; } <html> <head> <title>Hello World</title> </head> <body> <div class="container"> <div class="header"> Header </div> <div class="content"> <div class="left myscroll"> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> </div> <div class="right"> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> <div class="sidebar-item"></div> </div> </div> </div> </body> </html>

The problem with all of these answers for me was they weren't responsive. I had to have a fixed height for a parent div which i didn't want. I also didn't want to spend a ton of time dinking around with media queries. If you are using angular, you can use bootstraps tabset and it will do all of the hard work for you. You'll be able to scroll the inner content and it will be responsive. When you setup the tab, do it like this: $scope.tab = { title: '', url: '', theclass: '', ative: true }; ... the point is, you don't want a title or image icon. then hide the outline of the tab in cs like this:

.nav-tabs {
   border-bottom:none; 
} 

还有这个。nav-tabs > li。激活> a, .nav-tabs > li。Active > a:hover, .nav-tabs > li。Active > a:focus {border:none;} 最后,删除不可见的选项卡,如果你不实现这个,你仍然可以点击:.nav > li > a {padding:0px;margin:0px;}

除了使用错误的属性外,你已经把它覆盖住了。滚动条可以被任意属性overflow、overflow-x或overflow-y触发,并且每个属性都可以被设置为可见、隐藏、滚动、自动或继承中的任意一种。你现在看到的是这两个:

auto -该值将查看框的宽度和高度。如果它们被定义了,它就不会让盒子扩展超过这些边界。相反(如果内容超过了这些边界),它将为超过其长度的任何一个边界(或两个边界)创建滚动条。 scroll -该值强制滚动条,无论如何,即使内容没有超出边界设置。如果内容不需要滚动,该工具条将显示为“禁用”或非交互式。

如果你总是希望垂直滚动条出现:

你应该使用overflow-y: scroll。这将强制为垂直轴显示滚动条,无论是否需要。如果不能滚动上下文,它将显示为“禁用”滚动条。

如果你只希望滚动框出现滚动条:

只需使用overflow: auto即可。因为在默认情况下,当您的内容无法在当前行中放置时,它会切换到下一行,因此不会创建水平滚动条(除非它位于禁用了换行功能的元素上)。对于垂直栏,它将允许内容扩展到您所指定的高度。如果它超过了这个高度,它将显示一个垂直滚动条来查看其余的内容,但如果它没有超过这个高度,它将不显示滚动条。