其实很多元素浏览器都设有相应的默认值的,就如
ul有40px 的margin
body有10px 的margin
a标签有下划线
p标签字体默认是黑色
等……
(当然,各不同的浏览器,其默认值设置也有所不同)
大多数人在写CSS前,一般都会加上一条通配符设置取消浏览默认值的:
*{margin:0padding:0}
其实浏览器的一些默认值,自己实践多了,自然就会知道的了。
底部和头部分别定义两个div,在利用position:fixed分别设置它们的位置。position 属性规定元素的定位类型。
说明
这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。
fixed
生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。
这个问题是最常见的盒子模型问题,不仅是高度,宽度同样有一样的问题!主要原因是包含ie6以下版本的浏览器对盒子模型的解析和标准css对盒子模型的解析是不同~
按css本身的标准盒子模型(也就是你说的定义了一个div的高度或者宽度),是指内容的区域的高度和宽度,不包含paading、border、margin。
但是在ie6以下版本,对盒子模型的解析并不是按css的标准来的,而是内容区域+padding+border。 这就造成同一个盒子模型在ie6以下的浏览器和ie7以上版本、以及火狐狸等对css标准解析的浏览器下会出现不一样的情况!
比如
<div style="width:100pxheight:100pxmargin:10pxpadding10pxborder:1px">
比如这个列子
</div>
在ie6以下版本被解析成高度100+上padding10+下padding10+上border 1+ 下border 1=122
而在ie7以上既火狐狸浏览器下高度为:就是我们我们定义的高度100px (这才是css的标准解析)
目前用ie6以下版本浏览器的人还很多,要解决这个问题最简单的方法就是多套用一层div,上面的例子可以修改为
<div style="width:100pxheight:100pxmargin:10px">
<div style="padding10pxborder:1px">
比如这个列子
</div>
</div>
当然也可以用hack来解决 ,不过用hack就相对比这个复杂!
简单来说为了兼容 我们不建议在一个已经设置了宽度和高度的div上在设置padding 和 border,这样就能避免你说的问题!