为什么添加border会影响滚动条?
遇到一个奇怪的问题.
当给body元素添加border属性时,竖直方向的滚动条范围极小
有border的codepen示例
https://codepen.io/dumbdonkey...
但是一旦移除body元素中的border属性,竖直方向的滚动条范围就会变得很大.
没有border的codepen示例
https://codepen.io/dumbdonkey...
不明白为什么会有这样的差异. ?
哪位同学能解释一下吗?多谢了
我的浏览器版本是:
chrome 版本 75.0.3770.100
结案:
根据@大米绿豆 的回答,我总结下原因. ?
造成这种现象的原因是由于margin collapse 造成的.
详细解释
https://developer.mozilla.org...
Parent and first/last child
If there is no border, padding, inline part, block formatting context created, or clearance to separate the margin-top of a block from the margin-top of its first child block; or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block from the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent.
在没有给body设置border的情况下,body和div元素和进行margin collapse,collapse之后,body相对于html元素向下移动margin-top的位置,html元素判断内部元素溢出,从而出现滚动条.
给body设置border之后,body和div之间不在有margin collapse。body也就不会溢出html元素,自然也就没有滚动条了.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这个其实css基础的问题
总结移至原题目下方
不是一样么...我没发现滚动条有什么区别
你能截图吗?可能你浏览器问题