【问题标题】:Browser Specific HTML Possible?浏览器特定的 HTML 可能吗?
【发布时间】:2013-11-15 21:15:20
【问题描述】:

有没有一种方法可以根据用户正在查看的浏览器显示不同的 HTML 代码部分?例如:

为 IE7 显示这个 div:

<div id="ie7styles"><p>This is my IE 7 text</p></div>

为所有其他浏览器显示此 div:

<div id="mystyles"><p>This is every other browsers text</p><img src="#"></div>

我之所以要这样做是因为我有一个简单的 CSS 视差效果,但由于 IE7 不支持 inheritbackground-size,我希望从 IE7 中查看时只显示默认图像,所以没有间隙。

【问题讨论】:

  • 专门针对 IE 有 条件 cmets。谷歌那个。
  • 如果你解释为什么你正在尝试做某事,你会得到更好的回应;很有可能有其他替代解决方案可以解决您的潜在问题,这可能比拥有特定于浏览器版本的代码更好,但如果我们不知道潜在问题是什么,我们将无法提供这些解决方案你正在尝试解决。此外,为避免对问题投反对票,您应该包括您迄今为止尝试过的内容以及为什么它没有奏效。
  • 好的,所以问题是缺乏对某些浏览器功能的支持,所以也许detecting whether those features exist 将是一个合适的解决方案,而不是浏览器版本检测?或者也许找到polyfill script for the missing features

标签: internet-explorer html browser


【解决方案1】:

你可以使用条件 cmets

<!--[if lte IE 7]>
    <div>What ever you need tho show here</div>
<![endif]-->

html 的任何地方

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

适用于更多不同的浏览器。 它不仅仅适用于样式表

另一种方法是使用 javascript。但我更喜欢这个解决方案。

更新

我没有要测试的 IE,但现在我认为您更新了问题,从我看到的情况来看,jQuery 将有一个很好的解决方案来更改您想要的内容。它必须寻找你想要“改变”的元素。我举了一个例子让你了解它是如何工作的

http://jsfiddle.net/3PcxV/2/

想想如果你使用这个解决方案,每个 ie7 用户都必须运行 javascript。如果不是,它想要工作!这就是为什么我更喜欢上述解决方案。另一种方式是你可以只在一个地方更改代码,只需将类添加到需要更改的元素中。

<div class="alwaysLikeThis">Lorem ipsum dolor sit amet.</div>
<div class="changeOnIe7">Show something else on IE7</div>
<div class="alwaysLikeThis changeOnIe7">Show something else on IE7</div>

<script type="text/javascript">
    $(document).ready(function(){
        if($.browser.msie && parseInt($.browser.version, 10) == 7) {
            alert("here");
           $( ".changeOnIe7" ).replaceWith( "<p class='newElement'>this is something else</p>" );
        }   
    });
</script>

【讨论】:

    【解决方案2】:

    【讨论】:

    • 您可能想详细说明您的答案 - 目前看起来确实应该是评论。您可以通过解释其用途、提供示例及其与问题的相关性来做到这一点。仅链接的答案往往不受欢迎,因为链接可能会在以后停止工作。
    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 2010-12-18
    • 2011-01-27
    • 2011-01-31
    • 2011-12-21
    • 2011-05-11
    • 1970-01-01
    相关资源
    最近更新 更多