2013-06-04 140 views
1

当BODY应用了固定的CSS“宽度”时,我遇到了网页问题。在执行屏幕宽度计算/检查(即内容的左边缘而不是浏览器窗口的左边缘)时,给身体的宽度似乎影响浏览器认为是像素0的值。影响屏幕计算的Body'width'属性

我有一个控制,它被注入页面后加载在特定的计算位置。当设置主体宽度并且内容比浏览器窗口更窄时,控件将显示在屏幕外。

在Chrome和IE10中,“margin-left”和“margin-right”属性被动态设置,这意味着我仍然可以得到正确的结果。但是,我知道的Safari不是。

有没有人有任何建议或指示,我如何能准确地获得宽度信息的可靠,跨浏览器兼容的方式在身体的情况下具有明确的,固定的宽度?非常感谢...

更新:我看到这在特定的地方,但它似乎并不是造成问题的“宽度”属性,它存在的“位置:相对”属性。请参阅下面的评论中的jsfiddle链接。

为了澄清,我的控件是一个插件,可以进入任何人的网站,所以我需要尝试尽可能多地迎合潜力。其被设置为position: absolute

+0

可以PLZ提供任何示例代码片段? –

+0

我不明白你准确计算/设置什么,以及你的问题是什么......这是什么控制?一些例子? http://jsfiddle.net/HEQVb/ –

+0

http://jsfiddle.net/samkirkpatrick/ghGza/ - 这是一个特定网站的CSS /设置快照,我看到的问题。经过进一步调查,它实际上是身体的“位置” - 而不是导致问题的“宽度”......主文章已更新。 –

回答

0

元素将根据它们的最接近的position: relative祖先的content area被定位,与html是默认值,如果没有更接近position: relative祖先。

如果您希望控件的页面左上角始终出现5px向下和300px,请将html设置为position: relative,并将身体设置为根本不设置position

如果你希望你的控制,坚持你body元素的右上角,然后设置#myblock有以下CSSproperty: value;对:

position: absolute; 
top: 0; 
left: 100%; 

jsFiddle