我可以在 CSS 文件中插入浏览器测试或条件注释吗?
嗨
我有一个根据浏览器应用不同样式的CSS,我想在CSS文件本身(而不是在HTML或PHP文件中)测试浏览器(如果浏览器不是IE)。
我该怎么做呢? 使用这个:吗???
<!--[if !IE]>
<style>
//code
</style>
<![end if]-->
我应该在 CSS 文件中
Hi
I have a CSS that applies different styles according to the browser, and I want to test for the browser (if browser is not IE) in the CSS file itself (not in the HTML or PHP file).
How can I do it? Should I use this:
<!--[if !IE]>
<style>
//code
</style>
<![end if]-->
in the CSS file???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这些条件注释仅适用于 IE。因此,检查
!IE
不会对其他浏览器执行任何操作;)您可以使用 Javascript 注入 CSS。我只是即兴创作,类似这样的事情可能会做(jQuery):
编辑:条件现在适用于非 IE 浏览器
These conditional comments are IE-only. So checking for
!IE
won't do anything to other browsers ;)You could inject the CSS with Javascript. I'm just improvising, something like this might do (jQuery):
Edit: the condition holds for non-IE browsers now
最好将每个浏览器特定的代码添加到单独的文件中,并使用与您正在使用的相同的条件导入所需的文件,是的,条件将位于 CSS 外部和实际 HTML 文件内部。
It's better to add each browser specific code in a separate file and import required file using the same conditions as you are using and yes, the conditions will be outside of the CSS and inside the actual HTML file.
不幸的是,没有可以在 CSS 中使用的条件注释的等效语法。条件注释是 Microsoft 对 HTML 的扩展,而不是 CSS。
但是,您可以用 PHP 编写 CSS 文件,然后让 PHP 将其作为 CSS 文件提供服务。
请注意,用于检测非 Internet Explorer 浏览器的条件注释语法是错误的。您需要以下内容:
这将隐藏 IE 注释之间的代码。
Unfortunately, there isn’t an equivalent syntax to conditional comments that you can use within CSS. Conditional comments are a Microsoft extension to HTML, not CSS.
You could, however, write your CSS file in PHP, and get PHP to serve it as a CSS file.
Note that your conditional comment syntax for detecting browsers that aren’t Internet Explorer is wrong. You want the following:
That’ll hide the code between the comments from IE.
更好的方法是根据浏览器类型/版本将特定类应用于页面的
元素。然后,您可以从 CSS 文件中定位特定浏览器。
这正是 html5 样板项目 所做的:
现在要专门为 IE6 编写 CSS,您只需将以下内容添加到样式表中即可:
等等等等。
A better approach is to apply specific classes to the
<html>
element of your page based on the browser type/version. You can then target specific browsers from within your CSS file.This is exactly what the html5 boilerplate project does:
Now to write CSS specifically for IE6 you can just add the following to your stylesheet:
and so on and so forth.