我有margin-top:-200px
的div。我希望div在它上方的div上方/后方移动。
到目前为止,IE以外的所有浏览器都很好用。 margin-top:200px
有效,所以我知道这不是一个崩溃的保证金问题。
我不知道这里有什么错误吗?
答案 0 :(得分:25)
IE不喜欢负边距并且不能正确渲染它们。相对或绝对地定位元素并改为使用top: -200px
。
注意:定位它们可能会显着改变布局,您可能需要重新设计样式。
答案 1 :(得分:14)
负边距隐藏div ... 这是诀窍 使用zoom:1,position:relative
<强>问题:强>
.container{
padding: 20px;
}
.toolbar{
margin-top: -10px ;
}
在工具栏div的IE红色区域隐藏自己。即使我们使用zoom:1。要摆脱这个问题我们需要添加位置:相对也是。
<强>解决方案:强>
所以你的css课程将成为
.container{
padding: 20px;
}
.toolbar{
margin-top: -10px ;
zoom: 1;
position: relative;
}
答案 2 :(得分:3)
如果以上情况没有帮助:请确保您的违规div附近有一个div。现在向违规div添加100%的宽度并将其浮动到左侧。像这样。摆脱了我所有的负面边缘,即困境......
div.container {}
div.offender /*inside div.container*/ {
width: 100%;
float: left;
margin-bottom: -20px; /* ie fix */
zoom: 1; /* ie fix */
position: relative; /* ie fix */
display: block;
}
答案 3 :(得分:2)
给予相对位置。内联样式是可取的。如果使用外部css,可能会出现问题。
答案 4 :(得分:1)
为了支持IE中的负边距,我修复了display: table;
的类似问题。 zoom: 1;
和position: relative;
等其他修补程序并不总是有效(至少在我的经验中)。如果您只想将此样式添加到IE,我建议使用https://modernizr.com/
// using comment to show that .no-cssreflections belongs to the html tag
/*html*/.no-cssreflections .container { display: table; }