我在Chrome中遇到绝对定位问题。我已经在SO中阅读了所有类似的问题,但找不到合适的解决方法。
我正在使用Headway Theme for Wordpress构建网站。在这个网站中,我们有一个以网格为中心的布局加上全角背景。主题只给了我一个固定网格布局的选择,所以我必须使用jQuery作为全宽背景。
相关网站:http://www.mochilao.syncmobile.com.br/
我做了什么:我使用jQuery追加全宽的div并将其偏移,因此左= 0.这在页眉和页脚上效果很好。
问题: Webkit浏览器似乎存在绝对定位问题。所以我不得不给中间框一个偏移,这样它才能正常工作。但我遇到了一个错误。每当您点击标题徽标返回主页或重新加载页面时,全角背景框就会中断。在这些情况下,似乎不需要条件偏移。但是我该如何解决这个问题?
jQuery脚本:http://www.mochilao.syncmobile.com.br//wp-content/themes/headway/custom.js
答案 0 :(得分:1)
首先想到:
你不应该在函数调用中使用“.each”:
$(".game").load(compose(".game", "yellow"));
因为“游戏”类有多个元素?只是一个想法。此外,将函数附加到元素的加载似乎是一个潜在的问题,因为你所追求的是窗口的宽度,而不是元素的宽度。该元素将在整个窗口加载之前加载。请尝试使用window.onload。 (你会得到一些没有风格的内容,但这是一个单独的问题。)
但是还存在其他连接问题:将页面加载到1300px宽,然后将其扩展到1500,你会在Webkit和FF10的右侧看到类似的错误。下面还有其他奇怪的错误,也在“noticias”div上。问题可能是onresize事件的一个错误,jquery已经(大部分)规范化了,但是没有人是完美的。
Hombre,这是解决模板限制的大量工作。我认为你可能在第一时间站在错误的地方,即使你可以让它工作,它显然是依赖于js,这是不必要的。这实际上是一个CSS问题,而不是js问题。即使在那时,你正在构建网站,以便它永远不会对狭窄的视口做出响应,这可能是一个坏主意。
为什么不做一个纯粹的CSS方法?将包装器设置为100%宽度,没有填充。然后将旁边设置为100%宽度,并使用一些具有最大宽度的内部容器。保持WP循环相同,只需将它们包装在设置为居中的新div中。然后设置
background-size:cover
在你的背景图片上,每一个旁边。它不适用于古老的浏览器,但它会让你更接近。
或者......只是在身体或#whitewrap上设置疯狂的宽背景图像(大到可以覆盖任何实际情况)?或者,如果这太过于考虑只是在各个部分中添加虚拟子div,那么它们绝对被推到每个区域之外以覆盖边距。然后将容器设置为溢出:隐藏所以事情不会突然出现。它在语义上很难看,但更直接。使用css修复此问题的方法更容易,不会引入文档重排问题。你实际上永远不会编写匹配每个浏览器css idiosyncracies的js!