Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IE 9 css问题或css黑客_Css_Cross Browser_Css Hack - Fatal编程技术网

IE 9 css问题或css黑客

IE 9 css问题或css黑客,css,cross-browser,css-hack,Css,Cross Browser,Css Hack,*已更新* 大家讨论得很好,再次感谢大家的投入。我只想与其他开发人员/程序员分享信息,并讨论可能的解决方案 我想出了另一个聪明的小把戏,也能奏效 这是asp中服务器端/客户端的一种老方法,仍然可以在.NET中完成(不是说这是正确的,但最终“他们”只是希望它工作) 这是: 这更多的是一个讨论而不是一个问题,但是有人知道一些特定的IE9CSS攻击吗。我不想使用一个单独的样式表,但想知道我们是否有IE 9的黑客了 例如,您可以为其他IE执行以下操作 _CSS_thing {css} /** IE 6

*已更新* 大家讨论得很好,再次感谢大家的投入。我只想与其他开发人员/程序员分享信息,并讨论可能的解决方案

我想出了另一个聪明的小把戏,也能奏效

这是asp中服务器端/客户端的一种老方法,仍然可以在.NET中完成(不是说这是正确的,但最终“他们”只是希望它工作)

这是:

这更多的是一个讨论而不是一个问题,但是有人知道一些特定的IE9CSS攻击吗。我不想使用一个单独的样式表,但想知道我们是否有IE 9的黑客了

例如,您可以为其他IE执行以下操作

_CSS_thing {css} /** IE 6 **/

*CSS_thing {css} /** IE 7 **/

.CSS_thing {margin-top:0px/0\} /** IE 8 -- could be wrong on the /\ format is one of those ways don't really use that one. **/
谢谢


Kaos

与其专门为IE使用hack,不如改用条件注释?看看他们是如何处理IE特定风格的

更具体地说,您可以使用条件注释将类添加到
元素中,然后在样式表中,使用这些类以修复特定IE问题或差异的样式为目标

以下是从HTML5样板项目中摘录的内容:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

这些注释将导致IE使用一个特定版本的
标记,其中有一个类对应于IE的特定版本。使用相同的概念,您可以轻松扩展到IE9,或者添加其他类来处理IE特定的行为。

我不知道有任何针对IE9的CSS攻击。对不起

你被困住了

真正的问题是:为什么您认为需要为IE9提供不同的样式


IE9是一款基本符合标准的浏览器,与它的前身不同

只需使用单独的样式表和条件。省去你自己的麻烦,让你的样式表被那些不知道奇怪的黑客和错误滥用的人看清楚。我还没有在IE9中测试过任何东西,所以看到我们显然仍然需要黑客IE让我很难过?您的CSS是否在其他浏览器中工作,或者这只是一个“理论”问题?@Bazz我不想在这一点上使用单独的样式表。在这种情况下,条件语句可能会起作用。@Bazz从我目前看到的情况来看,IE6-IE8中的一切都很好,然后当我在IE9中测试它时,一切都偏离了几个像素。我有一种不好的感觉,IE9将成为新的IE6,因为他们已经推出了IE10平台评论。听起来像是一个条件,测试
IE
,然后重新设置CSS,然后是一个
lte IE8
的条件,其中包括或添加了一些额外的样式。@thirtydot IE9没有从IE6中获得很好的样式,IE7和IE8。除非他们还必须修复一些东西,否则它不会处理以前处理得很好的样式。@Kaos:那么你可能已经编写了IE6-8的一些bug代码。您的旧CSS是否也适用于Firefox和Safari/Chrome?@Paul D.Waite在这个特定问题上没有CSS漏洞。事实上,这是一次重新设计,因此它将与所有IE和所有浏览器兼容。@Kaos:与IE 8和Firefox/Safari相比,您在IE 9中看到相同HTML和CSS的不同结果?@Kaos:问题是什么?我确信尝试为IE9提供不同的规则是错误的。@cdezaq对于导致问题的原因,这可能是解决方案。。但仅针对我遇到的这个特定问题。我喜欢这个想法,虽然还没有在生产中使用它,但我唯一关心的是解析器必须尽可能多地进行“回望”“失败“选择器已经遍历到DOM树的顶部,是否有关于此性能的报告/想法?@Kaos,通过在有问题的IE浏览器中的
元素中添加额外的类,您可以应用该浏览器可以使用的任何样式更正,而不会影响任何其他浏览器。我不确定这个解决方案是否适用于IE和其他浏览器版本之间的任何风格差异问题。你能解释一下你的意思吗?@clairesuzy,我自己没有任何指标,但希望你不需要太多的“修复”来处理IE。如果css类让你从性能角度担心,你可以随时将类转换为ID,但这限制了您将IE Fix类应用于页面上的其他元素的能力,您可能不想使用复杂的选择器来设置这些元素的样式。@cdeszaq,非常正确,我总是少用hack或条件表,所以这不会改变。。这不是课程的问题。。这是匹配选择器所需的回溯时间,但如果只有少数时间,我想专业人士的时间确实超过了这里的顾虑:)