Rey*_*Rey 1 css internet-explorer sass less internet-explorer-6
跳到底部问题,但首先是一个小环境.
所以我一直在研究CSS编译器(比如Sass&Less),并且对它们非常感兴趣,不是因为它们帮助我更容易理解(我已经做了几年css了)而是他们减少了残疾,帮助我更轻松地看待事物.
我最近一直在研究可靠地实现内联块(和clearfix),它需要大量无关的代码和黑客.现在据该领域的所有权威人士说,我不应该把IE黑客放在我做CSS的同一页面上,我应该让它们有条件.但对我来说,通过管理所有这些额外的代码是一个非常大的麻烦,这就是为什么我真的喜欢像Less这样的东西.您可以指定一个mixin并将其应用一次,而不是应用非语义类.
所以我想我得到了一些曲目(我想解释一下我的观点),但最重要的是,我正处于这些CSS编译器对我非常有用的地步,并允许我抽象出很多东西,并且可靠地应用它们一次然后编译它.我想有一种方法能够将IE特定的样式编译到他们自己的条件文件(ala Less/Sass)中,所以我不必无故地处理2个文件.
是否有类似脚本/应用程序运行并且可以使下划线/星形黑客攻击他们自己的文件?
它不是真正的编译技巧,但是如果你想使用条件注释而不必编译单独的每个浏览器样式表,你可以简单地使用HTML条件注释来注入样式钩子.例如:
...
</head>
<!--[if lte IE 6]><body class="ie6 ie7"><![endif]-->
<!--[if lte IE 7]><body class="ie7"><![endif]-->
<!--[if gte IE 8]><!--><body><!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)
现在,您可以在与其他规则相同的样式表中将要应用于IE <= 6和IE <= 7的规则作为目标:
body.ie6 #thing { position: relative; }
body.ie7 #otherthing { z-index: 0; }
Run Code Online (Sandbox Code Playgroud)
这是IMO比* html
黑客更清晰,这是最后可接受的CSS黑客攻击.("明星黑客"和"下划线黑客"是无效的CSS:避免.)