2011-11-09 187 views
0

我有一个页面,其中发生以下情况:这个布局问题如何解决?

  1. 某些东西被呈现。静态内容和内容意味着要用JavaScript加强。
  2. 一些div通过$()
  3. 中的jquery进行插件增强,其中一些第三方脚本测量了他们将内容放入的div,以便他们知道如何呈现它。
  4. 与此同时,随着其他div的增强,有时页面会变得足够长以至于出现滚动条。这意味着页面变得更薄,插件所做的测量现在不正确。
  5. 一些div增强了错误的宽度。
  6. 丑!

如果我调整浏览器的大小,所有内容都会“捕捉”到它应该在的位置。

我可以看到2个我不喜欢的解决方案。

  1. 以某种方式强制浏览器在每次增强后重新排列所有内容。
  2. 强制垂直滚动条。 http://ryanfait.com/resources/forcing-vertical-scrollbars/

这是一个相当普遍的问题。还有其他的技巧或建议吗?

+1

我会说强制滚动条 - 更少的头痛。 – swatkins

+1

一个令人毛骨悚然的方法是在加载所有内容后触发调整大小: $(window).trigger('resize'); – MrGrigg

回答

1

KISS方法:强制垂直滚动条在那里。

忘了提,你也可以简单地使用:

html {overflow-y: scroll;} 
1

你可能会迫使滚动条总是出现在CSS,或者你可以设置你的jQuery代码执行时,页面完全加载,而不是当DOM准备就绪,下面的例子:

$(window).bind("load", function() { 
    // code here 
}); 

这可能会导致“抽筋”的内容被呈现,则作为脚本配置它的视口大小抛去。

就个人而言,我只是强制滚动条。无论如何,大多数游客甚至都不会注意到它始终在那里。