我如何摆脱使用CSS元素的偏移量?

我有一些元素的定位问题,在检查它IE8开发人员工具它告诉我这个:

偏移从哪里来?

现在我很确定我的问题是这12偏移量,但我怎么删除它 ? 我找不到任何提到的CSS偏移属性。 除了保证金之外,我们是否需要一个抵消?

这是产生这个代码:

<div id="wahoo" style="border: solid 1px black; height:100px;"> <asp:TextBox ID="inputBox" runat="server" /> <input id="btnDropDown" type="button" style="width:26px; height:26px; background-position: center center; border-left-color: buttonface; background-image: url(Images/WebResource.gif); border-bottom-color: buttonface; border-top-color: buttonface; background-repeat: no-repeat; border-right-color: buttonface;" tabindex="99" /> <div id="ListboxWrapper" style="display:none; position:absolute; onfocusout="this.style.display = 'none'""> <asp:ListBox ID="lstBoxCompany" runat="server" AutoPostBack="True" OnSelectedIndexChanged="lstBoxCompany_SelectedIndexChanged" style="z-index: 100;" Width="300px" /> </div> </div> 

偏移的元素是inputBox

该偏移量基本上是浏览器根据位置css属性为元素计算的x,y位置。 所以如果你把它放在它之前或其他任何元素,它会改变偏移量。 例如,您可以通过以下方式将其设置为0:

 #inputBox{position:absolute;top:0px;left:0px;} 

要么

 #inputBox{position:relative;top:-12px;left:-2px;} 

因此,无论您有什么定位问题,都不一定是偏移问题,尽pipe您可以通过使用顶部,左侧,右侧和底部属性来解决问题。

你的问题浏览器不兼容吗?

对我来说,这是垂直alignment:基线vs垂直alignment:顶部,造成顶部的偏移量。

快速解决:

 position: relative; top: -12px; left: -2px; 

这应该平衡这些偏移,但也许你应该看看你的整个布局,看看这个框是如何与其他框交互。

至于术语, leftrighttopbottom是CSS 偏移属性。 它们用于在特定位置定位元素(当使用absolute定位或fixed定位时),或者将它们相对于其默认位置(当用于relative定位时)移动它们。 另一方面,利润率指明了盒子之间的差距,有时也会崩溃,所以它们不能可靠地用作抵消。

但是请注意,在您的情况下, 偏移量可能不是(仅)从CSS偏移量计算的。

如果您的问题仅仅是您处于怪癖模式,则将顶部属性和左侧属性设置为负值可能不是一个很好的解决方法。 如果页面缺less一个<!DOCTYPE>声明,就会发生这种情况,导致它在IE8中以怪癖模式呈现。 在IE8开发者工具中,确保在“文档模式”下没有select“怪异模式”。 如果选中,则可能需要添加相应的<!DOCTYPE>声明。

如果您使用的是IE开发人员工具,请确保您没有意外地将其留在较旧的设置。 直到我看到它被设置为Internet Explorer 7标准时,我才对这个相同的问题发疯了。 将其更改为Internet Explorer 9标准,所有内容均正确无误。

移动元素顶部:-12px或绝对定位不能解决问题,但只能掩盖它

我有同样的问题 – 检查你是否在一个包装元素混合:浮动元素与非浮动元素 – 我的非浮动元素造成这个奇怪的偏移到浮动

为元素定义边距和填充正面临着问题:

 #element_id {margin: 0; padding: 0} 

并查看是否存在问题。 IE浏览器呈现更多不必要的inheritance页面。 你应该停止这样做。

这看起来很奇怪,但是你可以尝试在CSS为input设置vertical-align: top 。 至less在IE8中修复了这个问题。

我在我们基于.NET的网站上运行的DotNetNuke(DNN)上有同样的问题,对我来说,解决这个问题基本上是一个简单的表单标签重置。 基于.NET的网站通常被包装在一个表单中,而不用重新设置边距,你可以看到有时会出现奇怪的偏移量,大部分是在包含一些脚本的时候。

所以如果你想在你的网站上解决这个问题,可以尝试在你的CSS文件中input:

 form { margin: 0; } 

你可以申请重置CSS来摆脱这些'默认'。 这里是一个重置CSS http://meyerweb.com/eric/tools/css/reset/的例子。; 只需应用您自己的样式之前的重置样式。

我有同样的问题。 UpdatePanel刷新后出现偏移量。 解决方法是在UpdatePanel之前添加一个空标签,如下所示:

 <div></div> 

只需将这个轮廓设置为none即可

[标识符] {纲要:无; }