<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .box{ background: red; /* border: 1px solid red; */ /* zoom:1; */ } .div{ width: 100px; height: 100px; background: blue; margin: 100px; } </style> </head> <body> <div class="box"> <div class="div"></div> </div> </body> </html> border 可以解决子级的第一个元素的 margin-top 会直接传递给父级(在所有浏览器中) 在IE下,父级有边框的时候,子级的 margin 会失效。 为什么会出现这种情况呢? 这其实是在 IE 6/7/8 中才存在的一个属性,hasLayout。 在 IE 下的大部分兼容性问题都是因为 hasLayout 属性触发的问题,尽量触发 hasLayout 可以减少 IE 的问题。 至于触发 hasLayout 的方法有非常多,但比较常用的就是 zoom: 1; |
|