Css 在IE7中消失提交按钮

Css 在IE7中消失提交按钮,css,button,internet-explorer-7,submit,Css,Button,Internet Explorer 7,Submit,你好。我对以下遗留代码有问题。除了IE7中的submit按钮不见外,其他一切都可以。页面上仍留有空间,但它不会显示。我尝试了各种方法来强制hasLayout,但没有成功。有什么建议吗 XHTML XHTML 1.0严格文档类型: <div id="headerFunctionality" class="clearfix"> <div id="headerSearch" class="clearfix"> <form action="http://foo.com" m

你好。我对以下遗留代码有问题。除了IE7中的submit按钮不见外,其他一切都可以。页面上仍留有空间,但它不会显示。我尝试了各种方法来强制hasLayout,但没有成功。有什么建议吗

XHTML XHTML 1.0严格文档类型:

<div id="headerFunctionality" class="clearfix">
<div id="headerSearch" class="clearfix">
<form action="http://foo.com" method="GET">
<label for="q">Search</label>
<input id="q" name="q" type="text" class="text" />
<input type="submit" id="btn_search" value="Search">
</form>
</div>
</div>

}

从代码中我可以看出两件事可能导致这种情况:

1-图像btn.search.gif要么是完全透明的,要么是背景颜色,要么是找不到。该按钮没有背景色和边框,因此如果没有图像/文本,则不会显示


2-按钮可见性设置为“无”,这会在页面上留下空间,但不会呈现按钮。你能看看firebug中的样式吗?

如果你添加了一个name属性,它能工作吗?

问题可能来自于。这是IE6和IE7中的一个错误,当出现某些混合:悬停、浮动和布局时会发生。有关详细信息,请参阅链接。我认为:

<div class="clear"><!-- --></div>

将修复它。

我最终通过删除以下内容对其进行了排序:

form>input#btn_search { /* For non-IE browsers*/
    height: 0px;
}

多年前,我在某个地方阅读了CSS图像替换后,总是将其包含在CSS图像替换中,但忽略它似乎不会影响任何其他浏览器,并且已经修复了IE7中的问题。

您是否确保已在输入端将display:block添加到CSS中?这应该可以解决问题。

这听起来像是一个文本缩进/图像,用来取代IE6.0和7.0中的按钮问题。这个解决方案对我有效过好几次

为这些浏览器版本制作一个单独的样式表,并将以下代码放在标题中:

<!--[if lt IE 8]>
        <link rel="stylesheet" type="text/css" href="ie7-and-down.css" />
<![endif]-->
颜色应与背景颜色相同

宽度应该比图像的宽度大20-30像素


更多信息和帮助可以在这里找到:

Hah,也是我的第一个想法,但不幸的是,这两个想法都没有。我甚至尝试过将可见性显式设置为visible。这个问题只出现在IE7中。感谢您的输入和链接,但这也没有起到作用。我终于修好了&我会把答案贴出来的。
form>input#btn_search { /* For non-IE browsers*/
    height: 0px;
}
<!--[if lt IE 8]>
        <link rel="stylesheet" type="text/css" href="ie7-and-down.css" />
<![endif]-->
#btn_search {
   width: 85px;
   height: 20px;
   padding: 20px 0 0 0;
   margin: 1px 0 0 0;
   border: 0;
   background: transparent url(../images/btn.search.gif) no-repeat center top;
   cursor: pointer; /* hand-shaped cursor */
   cursor: hand; /* for IE 5.x */
   font-size: 0;
   color: #fff;
   text-align: right;
   text-indent: 0;
}