如果浏览器忽略了他们不理解的CSS,为什么要使用Modernizr?

Don*_*Don 7 html css modernizr

我一直在与Modernizr合作,这是一个很棒的资源,只是一个伟大的项目.但是,我一直在使用它的方式是:

  • 使用基线(IE)CSS进行设计
  • 使用CSS3效果增强高级浏览器

除非我要根据行为完全替换样式,为什么我不应该只在样式表中添加框阴影,渐变和边框半径等样式?如果浏览器不理解规则,它会忽略它,对吗?如果JavaScript关闭,我无论如何都无法使用它.

我应该在典型案例中使用上述方法吗?对于高级案例,我应该使用Modernizr吗?或者依靠浏览器忽略他们不理解的东西有什么不对吗?

Pau*_*ish 16

你完全没有理解旧版浏览器完全忽视CSS3中的大部分内容.

因此,我在我的基本选择器中执行我的css3 ..但是经常使用modernizr的无功能类来处理旧浏览器的情况:

div.box { 
         height:50px; 
         -moz-box-shadow: 3px 3px 5px #555; 
         -webkit-box-shadow: 3px 3px 5px #555; }

div.box span.fakeshadow { 
         display:none; 
}

.no-boxshadow div.box span.fakeshadow { 
         display:block; background: url('fakeshadowbg.png'); 
}
Run Code Online (Sandbox Code Playgroud)

我希望这更清楚.

  • 来自Modernizr的创作者之一,我不得不说,是的,这使得它更加清晰.也是很好的例子.我关注的所有3个案例(有能力的浏览器,旧浏览器,关闭JavaScript的旧浏览器)都会被处理,并且网站会优雅地降级. (3认同)

ric*_*ard 6

您可以使用某些浏览器尚不支持的(html 5)元素.您还可以指定后备样式.

许多浏览器为文本转换等事情创建自己的CSS规则.使用Modernizr,您可以编写一个规则,Modernizr可以实现多个浏览器.

我认为这只是方便.

  • 这是一个很好的观点 - 不需要乱用-webkit,-moz和-khtml扩展,并且必须考虑哪些浏览器支持哪些CSS3功能.我不知道为什么我没有这样做. (2认同)