这是我第二次遇到这个问题,我正要拔头发试图修复它。我正在创建一个网站,并且刚刚起步。在 css 中,我将html
andbody
标记的边距和填充设置为 0,并且页面超出了屏幕的右边缘。
我尝试修改这些元素的 css 以包含 100% 的宽度,但水平滚动条仍然存在,页面仍然超出屏幕边缘。
我还尝试将overflow
值设置为隐藏,但正如预期的那样,这只带走了滚动条。很明显,页面仍然超出了屏幕的右边缘。
有什么想法吗?
除了 100% 宽度之外,您还有一个填充。
Div 元素占据了所有可用的水平空间,因此您在这里并不需要 width 属性。把它拿出来可以解决问题。此外,您可以更改box-sizing
元素的属性
box-sizing: border-box;
只需删除 navigation_bar div 上的 width:100%
这是你的问题:
#navigation_bar {
background-color:#900;
height:50px;
left:0px;
padding-right:10px;
text-align:right;
top:0px;
width:100%;
z-index:0;
}
您在 100% 宽度的元素上有填充,它扩展了身体的整个宽度。删除填充,您的#navigation_bar
元素将适合没有滚动。或者,只需删除width: 100%
,因为 div 会自然增长以填充其容器(在本例中body
)允许的水平空间。
顺便说一句,将 HTML 和 CSS 部分放在您的问题中会很有帮助,以免人们通过您的网站挖掘来获取它。
使用视口宽度时出现相同问题的不同原因。
什么是视口?
浏览器的视口是可以看到 Web 内容的窗口区域。
它还包括滚动条!
因此,当您在 body 标签上使用视口宽度时,请记住 100vw > 100%,因为滚动条的宽度包含在视口中,这与使用百分比时不同。
body{
width: 100%;
/* Page does not extend. */
width: 100vw;
/* Page extends in width by the width of the scrollbar. */
}