另外根据你说的情况,我有点怀疑是跟浏览的默认样式有关系,因为不同浏览器为每个元素的默认样式是有不同的,比如这个例子我是用<div>没有问题,但是用<p>的话就不行了。你给你的#main 添加margin: 0padding:0
给mleft 和mright都添加: margin:0试试看
尽管有CSS的vertical-align特性,但是并不能有效解决未知高度的垂直居中问题(在一个DIV标签里有未知高度的文本或图片的情况下)。标准浏览器如Mozilla, Opera, Safari等.,可将父级元素显示方式设定为TABLE(display: table) ,内部子元素定为table-cell (display: table-cell),通过vertical-align特性使其垂直居中,但非标准浏览器是不支持的。非标准浏览器只能在子元素里设距顶部50%,里面再套个元素距顶部-50% 来抵消。
CSS:
body {padding: 0margin: 0}body,html{height: 100%}
#outer {height: 100%overflow: hiddenposition: relativewidth: 100%background:ivory}
#outer[id] {display: tableposition: static}
#middle {position: absolutetop: 50%} /* for explorer only*/
#middle[id] {display: table-cellvertical-align: middleposition: static}
#inner {position: relativetop: -50%width: 400pxmargin: 0 auto} /* for explorer only */
div.greenBorder {border: 1px solid greenbackground-color: ivory}
<div id="outer">
<div id="middle">
<div id="inner" class="greenBorder">
</div>
</div>
</div>
以上CSS代码的优点是没有hacks,采用了IE不支持的CSS2选择器#value[id]。
CSS2选择器#value[id]相当于选择器#value,但是Internet Explorer不支持这种类型的选择器。同样地.value[class],相当于.value,这些只有标准浏览器能读懂。
测试:Firefox1.5、Opera9.0、IE6.0、IE5.0通过。
层叠样式表*
CSS是Cascading
Style
Sheets(层叠样式表)的简称.
*
CSS语言是一种标记语言,它不需要编译,可以直接由浏览器执行(属于浏览器解释型语言).
*
在标准网页设计中CSS负责网页内容(XHTML)的表现.
*
CSS文件也可以说是一个文本文件,它包含了一些CSS标记,CSS文件必须使用css为文件名后缀.
*
可以通过简单的更改CSS文件,改变网页的整体表现形式,可以减少我们的工作量,所以她是每一个网页设计人员的必修课.
*
CSS是由W3C的CSS工作组产生和维护的.