我在页面内容的任一侧显示2个图形。当浏览器/页面宽度变窄时,这些项目将从屏幕上裁剪下来,以便为内容留出更多空间。这主要是
.page {
height: 100%;
min-height: 100%;
overflow-x: hidden;
overflow-y: auto;
min-width: 960px;
}
一切正常但我在min-width
div上设置了.page
,它包含了所有内容,是开始body
标记之后的下一个元素。我刚刚意识到,当浏览器宽度低于min-width
时,垂直滚动条会从页面一侧消失。
以下是问题的CodePen:https://codepen.io/moy/pen/oemBEN
据推测,这是因为body
现在在视野中,但.page
元素仍保留在它的min-width
设置中......有意义。
但是,我首先在.page
元素上设置溢出的原因是因为我在body
上设置时遇到的问题。我认为我通过这种方式应用代码解决了这个问题。
如果我将以下代码移至body
:
overflow-x: hidden;
overflow-y: auto;
所有似乎都按照我的意愿行事。当内容在Mac上的Chrome + FireFox中足够长时,内容区域两侧的项目都会被裁剪,垂直滚动条仍保留在视图中。如果我检查Safari(Mac)中的页面或Windows上的IE,则副项目无法正确裁剪。
如果缩小浏览器然后单击背景并向右拖动,则可以显示页面的裁剪区域,看起来很麻烦!
有解决方法吗?或者我需要使用垂直滚动条隐藏吗?
答案 0 :(得分:0)
您可以使用flex布局:
https://codepen.io/anon/pen/EvrXmG
.container
元素启动flex布局。 .img
元素设置了width
和flex-basis
,不允许增长但缩小,导致“最大宽度”。.wrap
元素设置了width
和flex-basis
,不允许缩小但增长,导致“最小宽度”。如果页面变大,.img
元素保持最大尺寸,但内容会获得所有可用空间。
如果页面变小,内容将保持最小宽度,图像元素开始消失。
此解决方案可能对旧浏览器不安全,但对于现代浏览器Browser compatibility来说是最简单的解决方案之一。