body设置overflow:hidden为什么滚动条没有了?

*{
	margin:0px;
	padding:0px;
}
body{
	height:2000px;
	overflow:hidden;
}
div{
	background:#ddd;
	height:3000px;
}
<body>
	<div></div>
</body>

overflow:hidden溢出元素内容区的内容被隐藏,不应该只隐藏了div的1000px吗?为什么滚动条不见了(屏幕高度小于2000px)求大神解答一下

你可以看下这个文章 https://blog.csdn.net/qq_36952611/article/details/72057760

因为对 body元素设置的background 和 overflow等样式,不是对body元素本身的作用。而是对整个浏览器窗口的根元素作用。
body设置overflow:hidden 是让窗口的根元素(也就是整个浏览器窗口)隐藏滚动条。(在html标签没设置overflow的情况下)。所以整个浏览器窗口滚动条不见了。
当对html标签也设置overflow的情况下
html {
    overflow: scroll;
}
html设置的overflow: scroll 作用窗口的根元素。
而body设置的overflow:hidden 就变回到只对body元素本身的作用了。
 

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title> 页面名称 </title>
<style type="text/css">
html {
	overflow: scroll;
}
*{
	margin:0px;
	padding:0px;
}
body{
	height:2000px;
	overflow:hidden;
}
div{
	background:#ddd;
	height:3000px;
}
</style>
</head>
<body>
	<div></div>
</body>
</html>

 

改成overflow:auto;

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632