浮动太远了

时间:2009-01-09 17:01:18

标签: jquery css internet-explorer-7 internet-explorer-6 css-float

我有一个记录管理Web应用程序,它在一个屏幕上显示主记录,AJAXes动态构建编辑器到编辑器div中,我使用JQuery来制作可拖动的。这很有效。

即使div不是一个窗口,我认为让它的行为更像是一个很好的主意,所以我用“关闭”按钮进行编码。结构如下所示:

<div id="editor">
  <div id="draghandle" />
  <div id="closebutton" />
  <div id="editorbody" />
</div>

编辑主体是可变维度,取决于人们想要进入的内容。

Draghandle的宽度设置为编辑器的100%。 Closebutton在CSS中设置为float:right

我的问题是,在IE6和IE7中,关闭按钮浮动太远了。它总是在窗口的右边缘,无论我在哪里拖动编辑器div。在Firefox和Safari中,它看起来像我预期的那样 - 窗口和编辑器一样宽,而按钮位于右上角。

我并不特别喜欢浮动:对,只是想找到一种方法来设置CSS,它会在所有浏览器中给出相同的结果。有什么想法吗?

“屏幕截图”

这是我想在jsbin上做的一个模型(谢谢,redsquare)

sample code

我正在使用法律敏感信息,因此我无法提供该应用的屏幕截图。但是,我拍摄了一些照片并屏蔽了文本和界面,只留下了窗口结构。

how it looks in IE7

how it looks in firefox 3

4 个答案:

答案 0 :(得分:6)

为了记录,解决这个问题的方法是从

更改关闭按钮的CSS
float: right;

position: absolute;
right: 5px;
text-align: right;

这在IE中产生了正确的结果,并且对于内部表单字段有一点填充,不用担心重叠。

答案 1 :(得分:1)

您可能需要考虑仅使用JQuery Dialog,因为它的premade和样式已经跨平台工作。

答案 2 :(得分:0)

有时需要CSS黑客攻击:

* + html #editor #closebutton /* IE7 */, * html #editor #closebutton /* IE6 */ {margin-right: 100px;} // insert whatever value that fits here

答案 3 :(得分:0)

对于IE特定的css hacks,您可以执行以下操作:

#divId {    
   margin-right: 0; /*Normal styles for all browsers*/    
  *margin-right: 100px; /*The asterisk allows only for IE6 AND IE7 to read this*/        
  _margin-right: 90px; /*The underscore allows only IE6 to read this style*/    
}

确保在正常(有效)css样式之后放置星号和下划线黑客。