CSS:<ul>的左边为什么有40px的距离呢?

html-css017

CSS:<ul>的左边为什么有40px的距离呢?,第1张

浏览器的默认值.

其实很多元素浏览器都设有相应的默认值的,就如

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,这样就能避免你说的问题!