本文和大家重点讨论一下CSS在IE和Nascape的显示差别,相同的CSS代码被不同的浏览器解释后会生成不同的效果,现在我们可以用所谓的符合标准的浏览器获得更好的效果。然而,显示效果的差别还是无法避免。
CSS在IE和Nascape的显示差别
Web建造者要对付的最棘手情况之一是:相同的CSS代码被不同的浏览器解释后会生成不同的效果。在以前,各种不同的浏览器生成极其不同的页面是随处可见的,而现在我们可以用所谓的符合标准的浏览器获得更好的效果。然而,显示效果的差别还是无法避免。
当前处于领导地位的一些浏览器在处理浮动效果上就存在着这样的差别。如果有人想创建一个能够随着浏览器窗口的大小变化而动态更改大小多栏的布局,那么这将是一个特别麻烦的问题。
简单的没有浮动的页面
假设你有两个div——div#one和div#two,它们都有固定的宽度。如果没有浮动或者绝对的定位,这些div就会以一个摞在另一个之上的形式放在浏览器窗口的左侧(如例A所示),因为标准的页面安排顺序是从左到右,从上到下,块级元素(block-levelelement)都会在前一个元素下面紧接着开始一个新的行。
下面是所有例子都需要的一段HTML:
- <body>
- <dividdivid="one">
- Portsidetext...
- </div>
- <dividdivid="two">
- Secondcolumntext...
- </div>
- </body>
下面的CSS代码用于基本的、不带浮动的版本:
- div#one{
- width:150px;
- margin:0px;
- background-color:red;
- }
- div#two{
- width:300px;
- padding:0px10px5px10px;
- margin:0px;
- background-color:silver;
- }
基本的浮动
当你创建一个包含有float:left或者float:right属性的CSS样式,并把它应用到诸如div标签这样的块级元素上的时候,div就会从文档的普通文本安排顺序里被删除,并被强制放到包含元素(containingelement)的左侧或者右侧。如果包含元素是一个主体标签,那么div就会浮动到浏览器窗口的一侧。否则,浮动的div就会移动到包含div的边缘,而以前是不会这样的。
如果你有一个以上的浮动元素,那么第二个和随后的浮动元素会紧接着***个排成一条,其排列方式非常像文本里的一行字母。一系列浮动元素会对齐成一行,直到撑满浏览器窗口的整个宽度,然后换到下一行,就像段落里的文字那样排列。
【编辑推荐】