可接受的CSS攻击/修复
是否有一个“好的”干净的CSS黑客列表,这肯定是未来的证明 例如,可接受的CSS攻击/修复,css,shim,css-hack,Css,Shim,Css Hack,是否有一个“好的”干净的CSS黑客列表,这肯定是未来的证明 例如,zoom:1是安全的,只要它只提供给IE,并且您记得它就在那里。使用子选择器的常见黑客行为并不安全,因为IE7支持它们。使用height:1%感觉很脏(但那可能就是我) 我知道,所以IE6虫子不太让我担心。另外,我不是在寻找宗教辩论,只是寻找资料来源 谢谢你的回复-我已经选择了一个最好的来源作为答案 还感谢您建议使用单独的CSS文件,或者不用担心。我完全同意你的看法,对我来说,这些都是赠品。但是,当面临布局问题时,我需要一个安全
zoom:1
是安全的,只要它只提供给IE,并且您记得它就在那里。使用子选择器的常见黑客行为并不安全,因为IE7支持它们。使用height:1%
感觉很脏(但那可能就是我)
我知道,所以IE6虫子不太让我担心。另外,我不是在寻找宗教辩论,只是寻找资料来源
谢谢你的回复-我已经选择了一个最好的来源作为答案
还感谢您建议使用单独的CSS文件,或者不用担心。我完全同意你的看法,对我来说,这些都是赠品。但是,当面临布局问题时,我需要一个安全的解决方案,它可以最大限度地降低我不得不在$IE或$FF+1中重新审视问题的风险。很抱歉,我没有说得更清楚。这是一个很好的地方,可以找到记录良好、经过良好测试的浏览器错误,黑客可以帮助您解决这些问题:
IE6的下划线hack功能非常好,例如
min-height:50px;
_height:50px;
它不需要将内容从上下文转移到新的css文件中,只有IE6可以获得它们,如果您决定停止支持IE6,它们很容易被过滤掉。它们也非常小,不会让你的CSS太混乱。对于大多数IE bug,我认为你最好使用一个指向特定于浏览器的样式表的链接。它倾向于使事情保持整洁,并且它非常自我记录。我经常使用Peter Paul Koch的“”网站来解决CSS和跨浏览器兼容性方面的问题。他倾向于不赞成特定于浏览器的方法,但他确实有一个页面。没有好的干净/可接受的[css]黑客——总是按照标准编写代码,然后使用浏览器+特定于版本的样式表进行任何需要的黑客操作 例如:
default.css
default.ie6 fix.css
default.ie7 fix.css
default.ff2 fix.css
等 然后,当新版本的浏览器发布时,复制上一版本的hacks并删除不再适用的位(并在必要时添加新位)
(使用IE的条件注释和其他浏览器的用户代理嗅探加载单独的样式表。)修改CSS以获得特定于浏览器的支持永远不会错——只要您可以轻松地包含它。正如您所注意到的,符合标准的浏览器,*cough*除了MSIE之外的所有东西都不会在未来的版本中中断。新的W3C标准也不会打破以前的标准,它们通常最多会反对或扩展以前的标准 人们提到了有条件的评论,这对于处理IE来说是非常好的。但是对于处理所有浏览器(移动、gecko、webkit、opera等),你还需要更多的评论。通常,您将解析传入的请求头,以从用户代理参数获取浏览器类型和版本。基于此,您可以开始加载CSS文件 我相信我们大多数人的做法是:
- 首先开发一款符合标准的浏览器(以FF为例)
- 一旦CSS完成,您就可以提供对IE的支持(这可以通过条件注释轻松完成,正如前面提到的)
- 首先创建一个CSS文件,该文件将微调IE6和以下任何其他版本的所有内容
- 然后创建一个CSS文件来处理IE7的所有内容
- 最后,创建一个CSS文件,该文件将处理IE8及更高版本IE的所有内容
- 一旦IE9出现,确保将IE8+处理设置为IE8特定,并创建一个带有所需修复的IE9+CSS文件
- 最后,为webkit修复程序创建一个附加CSS文件
- 如果需要,您还可以创建额外的文件,专门针对Chrome或Safari(如果需要)
- 黑客应该很少李>
- 如果您只有5-6个hack(这已经足够了),那么将它们放在外部文件中,从而将其与上下文分离是没有意义的李>
- 额外的文件将导致性能损失()李>
background-color: #FF0000;
background-color: rgba( 255,0,0, 50% );
/* Opera */
.dude:read-only { color: green; }
/* IE6/IE7 */
@media,
{
.dude { color: silver;}
}
/* IE8 \0 */
@media all\0
{
.dude { color: brown; }
}
/* IE9 monochrome and \9 */
@media all and (monochrome: 0)
{
.dude { color: pink\9; }
}
/* Webkit */
* > /**/ .dude, x:-webkit-any-link { color:red; }
/*
* > /**/
/* hides from IE7; remove if unneeded */
/* Firefox */
@-moz-document url-prefix()
{
.dude { color: green; }
}