跳到最下面的问题,但首先,一个小的上下文。
所以我研究CSS编译器(如Sass & Less)已经有一段时间了,并且对它们非常感兴趣,不是因为它们帮助我理解更简单的东西(我做css已经有几年了),而是因为它们减少了繁琐的工作,让我看起来更容易。
我最近一直在研究可靠地实现inline-block (和clearfix),这需要大量无关的代码和hack。现在,根据该领域的所有权威人士,我不应该将IE hack放在我做CSS的同一个页面中,我应该让他们有条件的。但对我来说,这真的是一个很大的麻烦来处理和管理所有这些额外的代码,这就是为什么我真的喜欢Less这样的东西。不是应用非语义类,而是指定一个mixin并应用它一次,一切都设置好了。
所以我想我已经了解了一点(我想解释一下我的观点),但从根本上说,这些CSS编译器对我来说非常有用,并允许我抽象出许多繁琐的东西,并可靠地应用它们一次,然后编译它。我希望有一种方法,能够编译成IE的特定样式到自己的条件文件(ala Less / Sass),这样我就不必处理管理2个文件没有任何原因。
是否有像脚本/应用程序这样的东西运行,并且可以使下划线/星号黑客分离他们自己的文件?
发布于 2010-05-01 03:16:23
这并不是一个真正的编译器技巧,但是如果您希望使用条件注释而不必针对每个浏览器编译单独的样式表,则可以简单地使用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]-->现在,您可以在与其余规则相同的样式表中确定要应用于IE<=6和IE<=7的规则:
body.ie6 #thing { position: relative; }
body.ie7 #otherthing { z-index: 0; }这是国际海事组织比* html黑客更干净,这是最后一个可接受的CSS黑客。(“star hack”和“underscore hack”是无效的CSS: void.)
发布于 2010-05-01 03:22:18
您可以只有条件地包含一个为IE6/7/whathaveyou生成的CSS表:
<head>
<link rel="stylesheet" href="/css/master.css" type="text/css"/>
<!--[if IE 6]>
<link rel="stylesheet" href="/css/ie6.css" type="text/css"/>
<![endif]-->
</head>此外,如果你担心IE补丁/hack与你的大部分SASS/CSS混在一起,你可以将它们分解成它们自己的部分:
@import ie6.sass以上内容将包括当前SASS文档中该特定版本IE的所有规则。有关分词的文档可在此处找到:SASS Partials
发布于 2010-09-23 23:16:30
这是国际海事组织比*
黑客稍微干净一点,这是最后可接受的CSS黑客。(“star hack”和“underscore hack”是无效的CSS: void.)
并非如此:虽然“下划线黑客”是无效的,但"* html“和"*+html”黑客是完全有效的CSS。Check it out yourself。;)
~
至于上面的问题,目前我还不知道有没有编译器能够做到这一点,我仍然倾向于使用start hack (IE6-7),并将所有内容保存在一个文件中。更具可维护性。
https://stackoverflow.com/questions/2746754
复制相似问题