2013-05-18 98 views
0

我有一个DIV,其中包含其他东西包含一个表格,显然随着行或列的增加或删除而增大或缩小,当发生这种情况时容器DIV必须相应地重新调整大小。如果浏览器的窗口不足以显示整个表格,则DIV必须包含必要的滚动条,否则不应显示滚动条。一块蛋糕,不是吗?如何摆脱不需要的滚动条

在IE 10上,一切正常,但是在Chrome和Safari 2中,即使它们不是必需的,也会出现丑陋的滚动条......至少这是我理解当我检查DIV对象属性并看到这个:

this.offsetWidth = 642 
this.scrollWidth = 638 

所以不需要水平滚动条,对吗?

this.offsetHeight = 420 
this.scrollHeight = 416 

所以不需要垂直滚动条,对吧?

即使如此,两个滚动条都显示出来......如果我最小化浏览器的窗口然后恢复它,那么两个滚动条都会消失,就好像浏览器意识到迟到了,他们不是必需的。如果我切换到另一个应用程序,然后返回到浏览器,并且当我点击页面上的任何输入字段时也会发生同样的情况。所以这显然是一个错误,但无法找出解决方法。

我尝试以下操作:

this.style.overflow = "hidden"; 
this.style.left = q/2+"px"; 
this.style.width = v+"px"; 
this.style.top = p+"px"; 
this.style.height = i+"px"; 
this.style.overflow = "auto"; 

,但我仍然获得相同的行为。

+0

什么其他的样式在玩,我知道有很多样板代码确保滚动条一直存在,以避免由于滚动条,当您从简短页面跳到长页面时,该网站会跳跃。 – Orangepill

+0

你尝试过溢出吗? – Sanjeev

回答

0

解决!

这是就在我的鼻子的字体,但需要时间,我认识到:

this.style.overflow = "hidden"; 
this.style.left = q/2+"px"; 
this.style.width = v+"px"; 
this.style.top = p+"px"; 
this.style.height = i+"px";  
if(this.scrollHeight>this.offsetHeight) this.style.overflowY = "auto"; 
if(this.scrollWidth>this.offsetWidth) this.style.overflowX = "auto";