问候。我遇到了以下遗留代码的麻烦。除IE7之外的所有内容都很好,其中提交按钮消失了。页面上仍然留有空间,但没有显示。我尝试了各种强制hasLayout的方法,但没有成功。有什么建议吗?
XHTML(XHTML 1.0 Strict DOCTYPE):
<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>
CSS:
#headerFunctionality {
float: right;
display: inline;
margin: 24px 14px 25px 0;
}
#headerSearch{
float: left;
margin-left: 20px;
width: auto;
}
#headerSearch label{
position: absolute;
top: -5em;
color: #FFF;
}
#headerSearch input.text{
width: 133px;
height: 18px;
border: 1px solid #999;
font-size: 0.69em;
padding: 2px 3px 0;
margin: 0 6px 0 0;
float: left;
}
/* Replace search button with image*/
input#btn_search {
width: 65px;
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;
overflow: hidden;
cursor: pointer; /* hand-shaped cursor */
cursor: hand; /* for IE 5.x */
}
form>input#btn_search { /* For non-IE browsers*/
height: 0px;
}
input#btn_search:focus, input#btn_search:hover {
background: transparent url(../images/btn.search.over.gif) no-repeat center top;
}
答案 0 :(得分:4)
您确定已将display:block
添加到输入的css中吗?那就是诀窍。
答案 1 :(得分:3)
这听起来像是IE6.0和7.0中的文本缩进/图像替换按钮问题。这个解决方案对我有用了几次。
为这些浏览器版本创建单独的样式表,并将此代码放在标题中:
<!--[if lt IE 8]>
<link rel="stylesheet" type="text/css" href="ie7-and-down.css" />
<![endif]-->
在CSS文件中,尝试这样的事情(您可以将其更改为输入#btn_search或任何您专门针对的目标)
#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;
}
“颜色”应与背景颜色相同。
“width”应该比图像的宽度大20-30像素。
可在此处找到更多信息和帮助:http://mydrupalblog.lhmdesign.com/theming-search-submit-button-css-cross-browser-compatible-solution
答案 2 :(得分:1)
我可以从代码中看到两件可能导致这种情况的事情:
1 - 图像btn.search.gif要么完全透明,要么找不到背景的颜色。该按钮没有背景颜色且没有边框,因此如果没有图像/文本
则不会出现2 - 按钮可见性设置为none,这会在页面上留下空间但不会呈现按钮。你能看看萤火虫的风格吗?
答案 3 :(得分:1)
我最后通过删除:
对此进行了排序form>input#btn_search { /* For non-IE browsers*/
height: 0px;
}
在很久以前的某个地方阅读之后,我总是将它与CSS图像替换包括在一起,但是将其删除似乎并没有影响任何其他浏览器并修复了IE7中的问题。
答案 4 :(得分:0)
如果您添加名称属性,它是否有效?
答案 5 :(得分:0)
问题可能来自Guillotine Bug。这是IE6和IE7中的一个错误,当出现以下特定混合时出现:悬停,浮动和布局(详见链接)。我相信插入这个:
<div class="clear"><!-- --></div>
在</form>
之前,然后将以下CSS应用于它:
.clear {clear:both;}
会解决它。