当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > IE与FF不兼容网页布局CSS问题

CSS样式表
CSS 表单元素不继承body的字体属性
网页制作学习教程 CSS Position
网页设计学习教程 CSS盒模型
vertical-align 表单元素垂直对齐的解决方法
不用Cookie的仿刷新二级高亮菜单
CSS3 优势以及网页设计师如何使用CSS3技术
CSS 网页制作 提高CSS可阅读性
CSS 样式表中引用图片地址在各浏览器中的差异
CSS Sprite优化 减少HTTP链接数
网页制作中应用的50个CSS技巧(国外)
CSS 英文教程 CSS语法
CSS 网页文字渐变效果
纯css 圆角实现代码
CSS 新的图像替换方法
不必需的样式脚本文件导致页面不能及时更新
CSS 约定写法 利用扩展
最全的CSS浏览器兼容问题小结
CSS 网页图文混排的10个技巧
IE的CSS制作网页技巧3则
创造100% 自适应css布局的行之有效的方法

CSS样式表 中的 IE与FF不兼容网页布局CSS问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-13   浏览: 67 ::
收藏到网摘: n/a

  CSS网页布局中往往会出现很多IE与FF不兼容问题,下面整理了一些常见的可能及其解决的办法!

1、用!important解决IE和Mozilla的布局差别

  !important是CSS1就定义的语法,作用是提高指定样式规则的应用优先权,最重要的一点是:IE一直都不支持这个语法,而其他的浏览器都支持。因此我们就可以利用这一点来分别给IE和其他浏览器不同的样式定义,例如,我们定义这样一个样式:

.colortest{ 
border:20pxsolid#60A179!important; 
border:20pxsolid#00F; 
padding:30px; 
width:300px;
}

  在Mozilla中浏览时候,能够理解!important的优先级,因此显示#60A179的颜色;在IE中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色。

2、解决超链接访问过后hover样式不显示的问题

  改变CSS属性的排列顺序: 先后顺序标准应为:
  a:link—a:visited—a:hover—a:active

3、Li中内容超过长度后以省略号显示的方法

<meta content="text/html; charset=gb2312" http-equiv="Content-Type" />
<style type="text/css">
<!--
li {
     width:200px;
     white-space:nowrap;
     text-overflow:ellipsis;
     -o-text-overflow:ellipsis;
     overflow: hidden;}
--></style>
<ul>
     <li><a href="#">CSS Web Design 我爱CSS-Web标准化 - www.52CSS.com</a></li>
     <li><a href="#">web标准常见问题大全 - www.52CSS.com</a></li>
</ul>

4、margin和padding定义尺寸的缩写

  margin:3px——表示所有边都是3px;
  margin:3px   5px—— 表示top和bottom的值是3px ,right和left的值是5px
  margin:3px   5px 7px——表示top的值是3,right和left的值是5,bottom的值是7
  margin:3px   5px 7px 5px——四个值依次表示top,right,bottom,left;上右下左。

5、解决IE不能正确显示透明PNG——header内加入代码

<script language="javascript">
function correctPNG()
{
for(var i=0; i<document.images.length; i++)
{
   var img = document.images[i]
   var imgName = img.src.toUpperCase()
   if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
   {
   var imgID = (img.id) ? "id='" + img.id + "' " : ""
   var imgClass = (img.className) ? "class='" + img.className + "' " : ""
   var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
   var imgStyle = "display:inline-block;" + img.style.cssText
   if (img.align == "left") imgStyle = "float:left;" + imgStyle
   if (img.align == "right") imgStyle = "float:right;" + imgStyle
   if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle 
   var strNewHTML = "<span " + imgID + imgClass + imgTitle
   + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
   + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
   + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
   img.outerHTML = strNewHTML
   i = i-1
   }
}
}
window.attachEvent("onload", correctPNG);
</script>

6、ul在Firefox和IE下表现不同

  使用(padding:0; margin:0; list-style:inside;)
  或者(padding:0; margin:0; list-style:none;)实现兼容

7、BOX模型在firefox和IE中的解释相差2px的解决方法

div{
margin:30px!important;
margin:28px;
}

  注意这两个margin的顺序一定不能写反。根据上面提到的IE并不支持!important,所以在IE下其实解释成这样:

div{
maring:30px;
margin:28px
}

  重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

8、margin的默认效果

  div里的内容,ie默认为居中,而ff默认为左对齐。使ff内容居中的方法是增加代码margin:auto;