好吧,我正在试着调试我的布局,看看为什么IE8和下面的布局都很时髦。。当我开始观察代码时,我意识到内部元素的所有包装元素都是自封闭的。

<section id="top-bar"/>
<div class="container">
  <div class="row">
    <div class="span12">
      <p>ELEMENTS</p>
    </div>
  </div>
</div>
<div class="rivets"/>
</section/>

嗯,我的CSS中的顶部栏应用了样式:
#top-bar {
  background: #146c7e url('../images/top-bar-bg.png') repeat top left;
  color: #fff;
}

所以在IE8及以下版本中,这种风格并不适用。这绝对令人沮丧。这只发生在我身上的马金托。。我自己做的所有其他布局,如果内容不是直接在其中的话,就不会自动关闭。
好吧,人们认为我是在自我添加那些结束标记,但这里是我的代码:
<section id="top-bar">
        <div class="container">
            <div class="row">
                <div class="span7">
                    <a href="#" class="tab">Shoppe</a>
                    <a href="#" class="tab">Local</a>
                    <a href="#" class="tab">Half Baked</a>
                </div>
                <div class="span5 mag-links">
                    <?php echo $this->getChildHtml('topLinks') ?>
                </div>
            </div>
        </div>
            <div class="rivets"></div>
    </section>

IE8正在自动添加这些标记。我不能删除它们。。因此,该代码在Chrome、Firefox、IE9和更高版本中工作得很好。。但是IE8和更低版本,它开始了自我封闭的过程。我以前从没遇到过这个问题。

最佳答案

我认为这是因为IE8不支持HTML5标签,比如section。如果要在IE8中使用此功能,请在文档头部调用以下命令:

<!--[if lt IE 9]>
  <script>
    document.createElement('header');
    document.createElement('nav');
    document.createElement('section');
    document.createElement('article');
    document.createElement('aside');
    document.createElement('footer');
    document.createElement('hgroup');
  </script>
<![endif]-->

这告诉IE8创建这些元素,之后它应该能够将它们识别为HTML元素。

关于html - IE8自动关闭标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18086885/

10-13 02:42