这两个区别都是比较容易混淆的问题,尤其是Class与ID,相信很多人并没有仔细了解过之中区别。以下是我的一些理解:
1. Class与ID的区别
一个Class是用来根据用户定义的标准对一个或多个元素进行定义的。打个比较恰当的比方就是剧本:一个Class可以定义剧本中每个人物的故事线,你可以通过CSS,Javascript等来使用这个类。因此你可以在一个页面上使用class="Frodo" ,class="Gandalf",class="Aragorn"来区分不同的故事线。还有一点非常重要的是你可以在一个文档中使用任意次数的Class。
至于ID,通常用于定义页面上一个仅出现一次的标记。在对页面排版进行结构化布局时(比如说通常一个页面都是由一个页眉,一个报头,一个内容区域和一个页脚等组成),一般使用ID比较理想,因为一个ID在一个文档中只能被使用一次。而这些元素在同一页面中很少会出现大于一次的情况。
归纳成一句话就是:Class可以反复使用而ID在一个页面中仅能被使用一次。有可能在很大部分浏览器中反复使用同一个ID不会出现问题,但在标准上这绝对是错误的使用,而且很可能导致某些浏览器的现实问题。(刚才在Dreamweaver中试了一下,确实,并没有出错)
在实际应用的时候,Class可能对文字的排版等比较有用,而ID则对宏观布局和设计放置各种元素较有用。
2. Margin与Padding的区别
margin和padding用来隔开元素,margin是隔开元素与外边,padding是隔开元素里边。说白了,一个是内部的距离,一个是外部的距离;padding:内边距;margin:外边距。
两者都是代替表格最重要的作用->分割块的好方法,区别在于Margin是不同的Tag间互相隔离的距离而Padding是同一元素中不同内容分割使用,这在表格中最看得清楚。尤其是当对一个区域加载了背景样式之后,Padding下的内容背景色会发生改变,而Margin则不会有所改变。
margin的取值有:margin-top, margin-right, margin-bottom, margin-left
padding的取值有:padding-top, padding-right, padding-bottom, padding-left
简写法(举例):
四个边距均为10px:
h1 {margin: 10px}
顶边距和底边距为10px,左边距和右边距是父元素宽度的2%:
h1 {margin: 10px 2%}
顶边距为10px,左边距和右边距是父元素宽度的2%,底边距是-10px:
h1 {margin: 10px 2% -10px}
顶边距为10px,右边距是父元素宽度的2%,底边距是-10px,而左边距由浏览器设置:
h1 {margin: 10px 2% -10px auto}
margin是用来设定该元素与相邻元素直接的距离。
margin:0 20px 30% 0对应的是与上,右,下,左四边相邻元素的距离。
30%指下边距为其父元素的宽度的30%
补充:
1.如果margin只有三个值,按照值的顺序为margin:top right bottom; 缺少了left,根据原则,则left的值有right来代替。
margin:10px 20px 30px;就等于margin:10px 20px 30px 20px;
2.如果margin只有两个值,按照值的顺序为margin:top right; 缺少了bottom和left,根据原则left的值由right来代替,bottm的值由top来代替。
margin:10px 20px;就等于margin:10px 20px 10px 20px;
3.如果margin只有一个值,按照值的顺序为margin:top; 缺少了bottom、left和right,根据原则left的值由right来代替,bottom的值由top来代替,right的值右top来代替,也就是说left的值也由top来代替。
margin padding区别
margin:10px;就等于margin:10px 10px 10px 10px;
margin是对外元素的距离,用来控制元素本身的浮动位置;
margin-left:具体值;
margin-bottom:具体值;
margin-right:具体值;
margin-top:具体值;
padding是对内元素,用来控制元素内部元素的位置;
padding-left:具体值;
padding-bottom:具体值;
padding-right:具体值;
padding-top:具体值;
我给你解释一下楼上的意思,margin是调节本身与周围之间的距离,注意,调节的是本身
padding是调节内部元素与本身之间的距离,调节的不是本身
举个不恰当的例子吧:元素比作一只鞋,margin是鞋与地面的距离,padding指的是脚与鞋之间的距离。
至于上下左右,我想你应该会懂了吧!