有什么办法可以做到“if IE”吗? CSS 文件内部?
我知道如果您使用的是 Internet Explorer,您可以放置条件语句来加载不同的 CSS 文件,但是您可以在 CSS 文件内执行此操作吗?
我遇到的情况是,如果是 Internet Explorer,我希望右边距为 20,但如果是任何其他浏览器,则希望右边距为 10。
I know you can put conditional statements to load different CSS files if you are in Internet Explorer, but can you do this inside of a CSS file?
I have a situation where I want the right margin to be 20 if it's Internet Explorer but 10 if it's any other browser.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
处理此问题的最简单方法是在 HTML 中设置条件,在页面的其余部分周围放置一个具有特定 id 的 div。
然后,你的 CSS 可以做到这一点:
这使得所有这些 CSS hack 都变得不必要了。
The easiest way to handle this is with conditions in your HTML that put a div with a specific id around the rest of the page.
Then, your CSS can do this:
This sort of makes all those CSS hacks unnecessary.
CSS 没有官方的条件注释语法。只有条件 HTML 和 JavaScript 注释,因此请发挥创意(John Fisher 展示了一种方法)。
您可以使用非常著名的 CSS hack 来模拟条件 CSS,但我宁愿不这样做。它们可能会在任意版本的 IE 上崩溃或以其他方式意外工作,因为黑客旨在利用 IE 处理 CSS 时的错误。
There is no official conditional comment syntax for CSS. There are only conditional HTML and JavaScript comments, so get creative with those (John Fisher shows one way).
You could emulate conditional CSS by using the very well-known CSS hacks, but I'd rather not. They could break or otherwise work unexpectedly at any arbitrary version of IE, because hacks are meant to exploit bugs in IE's handling of CSS.
有像 this 这样的黑客,使用 IE 无法解释的规则意味着 IE 停止处理一条规则使其可以安全地用于其他浏览器。
像这样:
There are hacks like this one where using rules that IE fails to interpret means that IE stops processing a rule leaving it safe to use for other browsers.
Like this:
进行这些黑客行为会让你的 css 文件变得一团糟。最好为 IE 制作一个单独的文件。在常规 css 文件中将边距设置为 10,并在 IE 特定文件中将其设置为 20,该文件应(有条件)在常规 css 文件之后加载。您知道如何做到这一点,并且几乎没有理由以其他方式做到这一点。
You will make a mess of your css files doing these kind of hacks. Better make a separate file for IE. Set the margin to 10 in your general css file, and set it to 20 in your IE specific file, which should be (conditionally) loaded after your general css file. You know how to do this and there's hardly a reason to do it any other way.