IE8和IE9之间的布局差异

时间:2013-11-02 10:59:13

标签: html css internet-explorer-8 internet-explorer-9

我有一个网站(www.jamesalder.co.uk)在IE8及以下版本无法正常呈现。

这是在IE8中: in IE8

在IE9和其他一切: in IE9

如您所见,搜索框已从右上角移动到错误的位置。 搜索框的html是:

<div id="header">
    <img src="/media/header_images/ts-hutton_2.jpg" title="Victorian Paintings at James Alder Fine Art" alt="Victorian Paintings at James Alder Fine Art" "="">
    <form id="search-form" action="/search">
             <label id="search-label">Search the Site</label>
             <input type="image" src="/static/images/sign-up.gif" value="search" id="search-button">
             <input type="text" name="q" id="search-input">
    </form>

</div>

好像它完全错过了以下的CSS,因为如果我禁用这个CSS,它会产生同样的效果:

#search-form {
    position: absolute;
    right: 0;
    top: 0;
    background-color: rgba(255, 255, 255, 0.6);
    padding: 3px;
}

IE9在表单上是否存在CSS的某些问题?我应该把它放在div中吗?

至于下面已决定不再漂浮的图片,我不知道。

是否有任何关于让网站在旧版IE中运行的最佳做法或良好资源,还是应该使用条件?

3 个答案:

答案 0 :(得分:2)

它实际上是由格式错误的HTML引起的。我的标签看起来像这样:

<img src="/media/homepage_images/all-paintings-sale.jpg" 
     alt="All Victorian Paintings for Sale" 
     title="All Victorian Paintings for Sale" ">

注意“最后,导致其后的所有内容被视为文本。 奇怪的是,IE9和其他一切自动修复了错误,但IE8及以下版本没有。

答案 1 :(得分:-1)

可能由<form>引起。

将您的<form id="search-form" action="/search">元素放入div。

<div id="header">
    <img src="..."/>
    <div id="search-form">
        <form action="/search"></form>
    </div>
</div>

请试试。

答案 2 :(得分:-2)

将此Css应用于....

/* Css for ie 8 */

#search-form {
    position: absolute\0/;
    right: 0\0/;
    top: 0\0/;
    background-color: rgba(255, 255, 255, 0.6)\0/;
    padding: 3px\0/;
}

======================================================

/* Css for ie 9 */

:root #search-form {
    position: absolute\0/IE9;
    right: 0\0/IE9;
    top: 0\0/IE9;
    background-color: rgba(255, 255, 255, 0.6)\0/IE9;
    padding: 3px\0/IE9;
}
相关问题