em和%都是相对大小的单位。

举个例子: 当父级font-size为12px的时候,那么1em就是12px。0.5em就是6px。

做响应式网站的时候,为什么字号建议用em?原因是不同客户端的默认字号是不一样的。
有的客户端12px是默认字号,有的16px是默认字号。如果直接用px来设定大小,在某些平台下字号就显得不是很合适。这个时候就需要em。因此,设置字号为1em,这样无论在什么客户端,字号永远是默认的字号。

em跟百分比的差别在于em只相对于字号。而百分比可以相对于body,div,甚至table。所以,百分比用多了会比较麻烦。

重点:margin可以用em,padding可以用em,其它的可以用到px的地方都可以用em。但是这个em是相对于跟他在同一级容器的字号。