首页 > 学做网站步骤

CSS在IE和Nascape的显示差别


时间:2009-09-28 05:18:59  来源:  作者:
Web建造者要对付的最棘手情况之1是:相同的CSS代码被不同的浏览器解释后会生成不同的效果。在以前,各种不同的浏览器生成极其不同的页面是随处可见的,而现在我们可以用所谓的符合标准的浏览器获得更好的效果。然而,显示效果的差别还是无法避免。

当前处于领导地位的1些浏览器在处理浮动效果上就存在着这样的差别。如果有人想创建1个能够随着浏览器窗口的大小变化而动态更改大小多栏的布局,那么这将是1个特别麻烦的问题。
简单的没有浮动的页面
假设你有两个div&;#8212;&;#8212;div#one和div#two,它们都有固定的宽度。如果没有浮动或者绝对的定位,这些div就会以1个摞在另1个之上的形式放在浏览器窗口的左侧(如例A所示),因为标准的页面安排顺序是从左到右,从上到下,块级元素(block-level element)都会在前1个元素下面紧接着开始1个新的行。
下面是所有例子都需要的1段网站制作:
<body>
<div id="one">
Port side text...
</div>
<div id="two">
Second column text...
</div>
</body>

下面的CSS代码用于基本的、不带浮动的版本:
div#one {
width: 150px;
margin: 0px;
background-color: red;
}
div#two {
width: 300px;
padding: 0px 10px 5px 10px;
margin: 0px;
background-color: silver;
}
[color=#FFFFFF'][/color]


[color=#FFFFFF'][/color]

基本的浮动
当你创建1个包含有float: left或者float: right属性的CSS样式,并把它应用到诸如div标签这样的块级元素上的时候,div就会从文档的普通文本安排顺序里被删除,并被强制放到包含元素(containing element)的左侧或者右侧。如果包含元素是1个主体标签,那么div就会浮动到浏览器窗口的1侧。否则,浮动的div就会移动到包含div的边缘,而以前是不会这样的。
如果你有1个以上的浮动元素,那么第2个和随后的浮动元素会紧接着第1个排成1条,其排列方式非常像文本里的1行字母。1系列浮动元素会对齐成1行,直到撑满浏览器窗口的整个宽度,然后换到下1行,就像段落里的文字那样排列。
固定宽度的浮动
只要div#one和div#two具有固定宽度,而且其总宽度小于浏览器窗口的宽度,它们就会像例B所示的那样紧挨着排在1起。几个大的浏览器在处理固定宽度浮动的方式上保持着相当的1致性。下面的CSS代码所生成的页面在IE6、Netscape 7、Mozilla 1和Opera 7里显示出来是1模1样的。

div#one {
float: left;
width: 150px;
margin: 0px;
background-color: red;
}
div#two {
float: left;
width: 300px;
padding: 0px 10px 5px 10px;
margin: 0px;
background-color: silver;
}

可变宽度的浮动带来了可变的结果
当你想把div变成宽度可变的时候,生成浮动效果不1致的问题就浮现出来了。例如,假设你想要在页面的左侧放1个固定宽度栏,用于导航按钮的列表,而想在右侧放另外1个栏,让它根据浏览器窗口(的大小)自由扩展和收缩。
你可能会认为自己用两个左侧浮动的div就能实现这个效果;1个是固定宽度的,而另1个把宽度设定为自动,让div自动调整大小,这样它就能够填补第1个div和浏览器窗口右侧之间的空白。例C就是下面代码显示的结果:
div#one {
float: left;
width: 150px;
margin: 0px;
background-color: red;
}
div#two {
float: left;
width: auto;
padding: 0px 10px 5px 10px;
margin: 0px;
background-color: silver;
}

[color=#FFFFFF'][/color]

如果在IE里显示这个例子,你会获得预计的效果,即左边是固定宽度的栏,紧挨着它右侧的是1个可变宽度的栏;但是,相同的代码在其他当前流行的浏览器上却会生成不同的结果。第2个div会掉到第1个的下面,而不是接着这1行放在右边。结果就和不带浮动的页面非常类似。
解决方案
要获得这种两栏布局,其中1栏能够自动调整大小的理想效果的1种解决方案是对第1栏使用浮动div,但是要从必须调整大小的那1栏里把浮动删掉。由于浮动栏和普通的文档安排顺序是分离的,所以常规的div会被放在上方,但是在浮动div的下方。在左边添加1个padding,并让其等于浮动div的宽度,而常规div的内容看起来就会像是放在左边div右侧的1个栏里。例D说明了这个技巧。下面的代码能够在当
来顶一下
近回首页
返回首页
上一篇: 对CSS类及id的规范化命名
下一篇: 增强网站的可访问性

版权所有:   2005-2009  搜发网络服务有限公司  公司地址:辽宁省锦州市铁北金秋大厦正楼
自己做网站 QQ:  免费做网站 QQ: 学做网站 QQ: 企业做网站 QQ:  公司邮箱:5729799@qq.com
《中华 人民共和国增值电信业务经营许可证》编号:辽ICP备08001153号   版权所有 严禁复制

友情链接:免费网站制作 免费网站申请 web免费制作网站教程 免费申请网站 研究生考研信息博客 免费网站制作论坛