CSS编译器和转换IE黑客将条件CSS [关闭](CSS compilers and convert

2019-10-21 10:02发布

跳转至底部的问题,但首先,有点背景。

所以我一直在寻找到CSS的编译器(如萨斯及以下)了一段时间,并已在他们真正感兴趣的,并不是因为他们帮助我理解什么更容易(我一直在做的CSS几年了),而是他们削减冗余代码,并帮助我看到的东西更容易。

最近,我一直在寻找到可靠地实现内联块(与clearfix),这需要大量的外来代码和黑客。 现在,根据在现场的所有部门,我不应该把IE黑客在同一页面中我做我的CSS中,我应该让他们的条件。 但对我来说这是一个真正的大麻烦,要经过和管理所有这些额外的代码,这就是为什么我很喜欢的东西一样都不能少。 相反,应用unsemantic类的,可以指定一个mixin,一旦运用它,就这么简单。

所以我想我有一个小的轨道(我想解释一下我的观点),但bascially,我在点我在那里这些CSS编译器对我来说是非常有用的,并让我抽象了很多克鲁夫特的路程,可靠地提供他们一次,然后就编译它。 我想有一个办法能够编译IE特定的风格融于自己的条件的文件(ALA以下/萨斯),所以我没有处理管理2个文件没有任何理由。

做任何事情一样运行,可以使下划线/明星黑客除了自己的文件存在的脚本/的applcation?

Answer 1:

这不是一个真正的编译器的把戏,但如果你想使用条件注释,而无需单独编译每个浏览器的样式表,你可以简单地使用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; }

这是IMO略高于清洁* html的黑客,这是最后一个可以接受的CSS破解。 (“明星黑客”和“强调黑客”是无效的CSS:避免)



Answer 2:

你可以只有条件包括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>

此外,如果你担心在你的大部分SASS / CSS的IE修复/黑客混合,就可以打破他们到自己的谐音:

@import ie6.sass

上述将包括IE目前上海社会科学院文档中特定版本的所有规则。 在谐音文档可以在这里找到: 上海社会科学院局部模板



Answer 3:

这是IMO稍微比* HTML黑客,这是最后一个可以接受的CSS破解清洁。 (“明星黑客”和“强调黑客”是无效的CSS:避免)

不是真的:而“强调黑客”无效,“* HTML”和“* + HTML”的黑客是完全有效的CSS。 检查它自己 。 ;)

对于上述的问题,现在我不知道能做到这一点的编译器,我还是喜欢的用户开始劈(IE6-7),并把一切都在一个文件中。 更易于维护。



文章来源: CSS compilers and converting IE hacks to conditional css [closed]