上面的绿色区域超出了页面,给body设置overflow:scroll;
结果是下面这样,滚动条只是外观上出来了,但是不能滚动,这是为神马?
新手求指导~
回复讨论(解决方案)
你应该给body设置定高,不然如果内容没有超出可视区的高度,自然不会滚动,你可以改变窗口的大小来看效果
你应该给body设置定高,不然如果内容没有超出可视区的高度,自然不会滚动,你可以改变窗口的大小来看效果
确实,一开始,我给BODY的HEIGHT设置了100%,所以没有作用,现在让它超出100%就能滑动了。但是我的每个div的height都是用百分数设置的,为什么改变了body的height之后,他们的高度都没发生变化呢?
我明白我错哪了:
我一开始给页面每个div用的position:absolute来布局,所以给body设置height:150%的时候对div没有高度变化的影响。但是用这种方式布局必须设置每一个div的left和top,而且改动上面的div会导致下面的数据必须跟着变。更麻烦的是left和top在用百分数的时候,随着浏览器的放大缩小,元素的位置很不稳定。
改用对部分元素float,部分元素调整margin的方法来布局,当内容超出页面的时候无论设置不设置overflow页面都会自动加上滚动条,这又是为什么?
body 本身就是有内容撑开高度的,既然超出了可视区的高,自然会出现滚动条.
body 本身就是有内容撑开高度的,既然超出了可视区的高,自然会出现滚动条.
明白了,谢谢!