最佳答案
都不是.
最好是编写适用于所有浏览器的代码,而无需浏览器特定代码或css hacks.它当然不是那么容易实现,这就是许多人使用其他方法的原因.
关键是要避免某些浏览器(通常是Internet Explorer)出现问题.一个这样的事情是使用填充而不是边距,因为IE不能正确处理边距折叠.
处于黑客边界线的一些方法是使用不影响正常工作的浏览器的代码,但修复了特定浏览器的问题.这可能是指定通常不需要的元素的高度,或者指定浮动元素上的display:inline.
页面Position is everything包含一些错误和建议修复的示例. (通常修复是某种破解,所以你当然也应该考虑是否可以完全避免这个问题.)