文件css在win xp中不适用于IE 8,在win 7中不适用9

时间:2014-07-03 10:46:18

标签: html css internet-explorer internet-explorer-8

我的CSS文件有问题。 CSS文件不适用于Win XP中的IE8和Win 7中的IE 9,但在Win 8,Win 7中的IE 10以及firefox和chrome中都能正常工作。请让我知道如何使它适用于所有版本。当我查看源代码时,CSS文件存在,但它不适用于页面 谢谢大家阅读。

1 个答案:

答案 0 :(得分:-1)

有时我们必须在css代码中做一些技巧才能在IE古老版本和其他浏览器中工作。

例如,要对元素应用不透明度,我通常会这样做:

.withOpacity {

  /* IE 8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
  /* IE 5-7 */
    -webkit-filter: alpha(opacity=60);
    -moz-filter: alpha(opacity=60);
    -o-filter: alpha(opacity=60);
    filter: alpha(opacity=60);

  /* Netscape */ -moz-opacity: 0.6;
  /* Safari 1.x */ -khtml-opacity: 0.6;
  /* Good browsers */
    -ms-opacity: 0.6;
    opacity: 0.6;
}

因此,opacity属性是通用的,但有时为某些浏览器提供支持,我们必须先加入相应的前缀。例如,看this page以便更好地理解。

有时,为了强制IE古代版本应用css属性,我们必须在属性之前加入*,这就足够了,就像这样:

.smallElement
{
    width: 20px;
    *width: 20px
} 

例如,要创建必需的字段指示符,我通常会这样做:

.fieldRequired:after,
.requiredIndicator
{
    content: "*";
    color: red;
    vertical-align: top
} 

.fieldRequired 
{
    zoom: expression(this.doneReq ? '1' : (
      function(el) {el.innerHTML += '<span title="This is a required field!" class="requiredIndicator">*</span>'; return el.doneReq=true;})(this));
}

换句话说,IE古代版本无法在.fieldRequired:after上应用css代码,因此使用.fieldRequired类中创建的表达式/函数,我们将与html代码绑定相同的行为。