首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇数IE8 html5shiv行为

奇数IE8 html5shiv行为
EN

Stack Overflow用户
提问于 2013-09-25 19:10:27
回答 1查看 268关注 0票数 0

考虑以下几点..。

代码语言:javascript
复制
<!DOCTYPE>
<html>
<head>
    <title></title>
    <!--[if lt IE 9]>
        <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <style>
        main{
            width:500px;
            height:500px;
            margin:0 auto;
            border:5px solid red;
            display:none;  
        }
    </style> 
</head>
<body>
    <main>
        <h1>Test</h1>
    </main>
</body>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        //load some external content then on callback...
        $('main').show();
    });
</script>
</html>

除了IE8 (令人震惊的)之外,每个浏览器都工作得很好。如果您删除了display:none;,那么一切都很好,所以我假设这就是问题所在。但是为什么呢?

我想要实现的

<main>是我的包装器,它包含一个<nav><footer>和一个<div>,通过ajax调用将内容注入其中。当站点第一次加载登陆页内容并将其注入空的<div>内容持有者时,会出现轻微的尴尬闪烁。这不是什么大不了的事,但我想要一些更简单的东西,所以我在main样式定义中添加了一个show()fadeIn(),并在内容加载后添加了一个show()fadeIn(),以防止闪烁。起作用..。除了在IE8。这就好像<main>失去了由shiv定义的display,默认为inline

我试过的东西

我已经将<main>标记替换为<div id="main">,这很好。但我正在尝试采用HTML5,并希望使用<main>标记。

我知道这是次要的,当我不明白原因时,我就会感到沮丧。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-25 19:53:42

不能完全归功于这个..。我工作的另一个开发人员是jQuery yoda.

默认情况下,jQuery似乎添加了一个css样式'display:inline;‘来标记元素。因为'main‘在IE中没有定义为已知元素(例如div),所以它默认为'inline’。一些解决办法可能是:

代码语言:javascript
复制
$('main').css('display','block');

或用于褪色:

代码语言:javascript
复制
var $main = $('main');
$main.css('display','block').hide().show(600); //--not yet tested
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19013256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档