如何解决将CSS规则写入不同的浏览器,如何? [重复]
| 这个问题已经在这里有了答案:解决方法
两件事情。首先,请确保包含DOCTYPE。如果不这样做,浏览器将默认为“怪癖”模式,并且它们对样式的解释也将有所不同。这样,您可以最小化页面的不同CSS解释。
其次,我将指出IE(根据我的经验,罪魁祸首)支持条件注释,因此您可以包括特定IE版本的样式,如下所示:
<!--[if lt IE 8]>
<link rel=\"stylesheet\" href=\"iehacks.css\" type=\"text/css\" />
<![endif]-->
, 我个人不相信浏览器会感知CSS。我认为,这是浪费时间。这需要花费更多的时间来编写代码,花费更多的时间来进行更改,并造成额外的麻烦。另外,什么时候停止? AOL浏览器?冰岛有12个人使用的15岁版本linux的一天中有些随意的味道吗?
我也不做黑客。有些会通过Jquery的CSS或我包含的外部代码进入其中,但我不会亲自编写它们。他们没有验证,因此它们并不是我想要的。 Javascript技巧很不错,但是对于样式来说,我不依赖它们,因为它们不是100%可靠的。如果无法正常降解,则不可以。
因此,要解决这些问题,请执行以下操作:
干净有效的CSS
重置(有时)
网格(通常通过蓝图或960.gs)
元素的推算。这意味着要避免图形设计师百分百完美的心态,而要针对可能随着网络变化而变化的元素进行设计。一分钟忘掉盒子模型,字体也呈现不同的外观,并且永远不会改变。
我避免像瘟疫这样的绝对因素。如果尝试,所有事情的99.5%可以相对完成。
切割边缘...不是边缘。很酷的新技术很不错,但尚不支持。因此,它们对我来说是最后一种情况。对于我的大型(高薪)企业客户来说,就是这种方式。
智能设计。让我们面对现实吧,如果您为网络设计,那么这样做会更轻松。如果设计师将打印设计转换为Web,则几乎总是会出现问题。他们可以解决吗?当然,这对我们来说是有利可图的。但是,智能设计首先可以解决各种问题。
伙计们,游戏的名称是渐进增强。如果IE不支持圆角,则它们会变成圆角。毕竟,标准的圆角是有效的HTML。如果他们有问题,可以升级或更改。听起来刺耳吗?是的。但是我们有一个非常明确的标准(由w3c设置)来维护,这是我们的工作。这是在此移动目标上达到目标的唯一方法。
,
所有浏览器都不同。每一个
浏览器解释CSS规则
不同的,导致不同
结果。有时结果是
美好的时光,很多时候
结果完全出乎意料。的
IE的情况可能导致最坏的情况
可能的情况!
您应该能够为所有浏览器提供完全相同的CSS(我在这里谈论CSS 2.1)并获得一致的显示,但IE6和IE7除外(那是因为它们有太多的错误)。
对于这些浏览器,通常的做法是使用带有特定修复程序的条件注释包括新的样式表:
<link href=\"forAllBrowers.css\" rel=\"stylesheet\" type=\"text/css\" />
<!--[if IE 7]><link href=\"ie7.css\" rel=\"stylesheet\" type=\"text/css\" /><![endif]-->
<!--[if IE 6]><link href=\"ie6.css\" rel=\"stylesheet\" type=\"text/css\" /><![endif]-->
另一种情况是您愿意使用仅在较新的浏览器中可用的功能。
在这些情况下,最好使用Modernizr检测对您正在使用的闪亮新功能的支持。
这样,您可以为不支持该功能的浏览器提供合理的备用。
, 要挑选出IE(尤其是IE7和6),可以使用条件注释来加载IE特定的样式和/或样式表。
大多数错误的确有可行的解决方法。格式正确且符合标准的html / css应该在所有现代浏览器中正确显示。
, IE条件样式可以帮助您解决Internet Explorer中的缺陷。
,除了JavaScript,基本上有两种解决方案。您可以将两者混合搭配。
第一种解决方案是根据HTTP请求中的标头确定用户的浏览器。 (不同的平台将允许您以不同的方式执行此操作-例如在ASP.NET中,Request对象包含此信息)。然后,您可以根据用户的浏览器提供不同的物理CSS文件。
第二种方法是使用一个包含针对不同浏览器的不同规则的CSS文件。使用各种特定于浏览器的技巧,将正确的规则应用于正确的浏览器。实际上,这意味着使用只有某些浏览器才能理解的CSS规则。有关此技术的更多信息,请参见此处。
, 好吧,对于内联CSS,您可以进行特定的修改,例如:
.myclass {
height: 100px; /* all browsers */
#height: 100px; /* MSIE browsers */
_height: 100px; /* MSIE >= v6.0 */
}
或者,您可以在页面内使用注释样式条件,并包括可选样式表:
<!--[if gt IE 5]>
<style type=\"text/css\">
.mystyle { height: 100px; }
</style>
<![endif]-->
, 实际上,当前所有现代浏览器都基于这些标准非常相似地解释CSS。通常只有IE(6、7、8)会造成问题,尤其是在HTML文档未触发“标准模式”的情况下,因此:
根据当前HTML和CSS标准以DOCTYPE编写页面。
为了支持较旧的IE,请使用“条件注释”为它们提供单独的样式表。
如果其他浏览器之间存在差异,则通常有解决方法。在此处或您最喜欢的CSS论坛/组/列表中询问abotu具体问题。
, 只需一个词:Modernizr。
永远不要基于用户的浏览器来更改样式,而应基于允许或不允许的浏览器资源来更改样式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。