块级元素的位置可以用margin,padding来起作用,而行内元素只可以用padding 来进行上下的设置,也可以从字面上理解,使用margin的 行只能设置左右,不能进行上下的设置
上面的<span></span>属于行内元素,所以你的margin设置是不起作用的,你可以把margin换成padding或者用display:bolck把它变成块级元素
<div>属于块级元素了,所以可以用margin来进行设置
光从这样式代码上来看没有什么问题,关键是你定义的这些标签span或者p在html里有没有用,没有在html里写这样的标签当然是没有起效果的,body是不用写的,因为每个html页里本身就有一个body标签的。