真的不太好描述,这也算是css中最麻烦的样式了
简单的说下
absolute一般是要在relative里面用的,是相对于relative定位的
比如父节点relative, 那么子节点用absolute后,再配合 top,right,left,bottom 来实现定位
margin是以自身为中心,向外扩散,这扩散的部分不属于自己的,比如width:100,margin:10px; 那么实际宽度还是100px。
你可以试试
用了margin:10px ,background:#ff0000; 会发现图片没有背景颜色
如果换成
用了padding:10px ,background:#ff0000; 会发现有10像素的红色背景
padding就是以自身为中心,向外扩大,扩大的部分,是自己的,比如width:100,padding:10px; 那么实际宽变成了120px
囧,可能描述得也挺晕的,不可言传呀,可以用PS画图描述,懒得弄了
关于这个问题,你需要先了解下 Css 的框模型,看下下面这个网站
http://www.w3school.com.cn/css/css_boxmodel.asp
然后学习下CSS 定位
http://www.w3school.com.cn/css/css_positioning.asp
学习完这2部分,你就明白了。
这个问题你要是在我面前,找个网页例子打开给你看着说,三分钟你就明白了!光靠文字给你描述就复杂了,而且这些东西不是绝对的,不同网页根据需求可灵活用,他们用的地方不是死的。
你多切点网页试试,什么方法定位都可以,只要能实现正确的界面和兼容,有点经验后你就明白在什么情况下用什么最合适了。
static : 无特殊定位,对象遵循HTML定位规则
absolute : 将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位。而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框
relative : 对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置