Css IE7上使用精灵、内联块和文本缩进样式的按钮标记存在问题-9999px

Css IE7上使用精灵、内联块和文本缩进样式的按钮标记存在问题-9999px,css,Css,我有这样的按钮: <button type="button" class="img img_button_bla" onclick="...">Bla!</button> img_button_bla类只需设置宽度、高度和背景位置 我想做的是设计按钮的样式,使之成为Bla!不显示在按钮上。我尝试了文本缩进:-9999px;这主要起作用,但在IE7中不起作用。出于某种原因,在IE7中,只有一些以这种方式设计的按钮根本不显示,但按钮占用的空间是空白的 我也尝试过设置线条高度

我有这样的按钮:

<button type="button" class="img img_button_bla" onclick="...">Bla!</button>
img_button_bla类只需设置宽度、高度和背景位置

我想做的是设计按钮的样式,使之成为Bla!不显示在按钮上。我尝试了文本缩进:-9999px;这主要起作用,但在IE7中不起作用。出于某种原因,在IE7中,只有一些以这种方式设计的按钮根本不显示,但按钮占用的空间是空白的

我也尝试过设置线条高度:0;字体大小:0,除了显示的一条小黑线外,几乎可以正常工作

我还尝试将其更改为block:display,这修复了IE7中的问题,但由于需要是内联块,因此会弄乱布局

我试着四处搜索,但在使用按钮标签、内联块显示和精灵图像的地方找不到任何答案

有人知道我能做些什么来让它工作吗?我不想删除按钮标签中的文本,因为以前没有问题,因为出于可访问性的原因,按钮是空的,所以按钮仍然会显示在移动版的网站上,基本上没有css

编辑:

我能够制作一个示例文件来说明这个问题,尽管在这个示例中,它在IE8中也不起作用。下面是FF和Chrome的作品

<html>
    <head>
        <STYLE TYPE="text/css">
          #content {
              width: 980px;
              margin-left: auto;
              margin-right: auto;
              padding: .5em;
              background-color: #fff;
              text-size: 1.1em;
          }
          .left {
              float: left;
          }
          .right {
              float: right;
          }

          .img {
              display:inline-block;
              border:0 none; 
              background-color:red; /*using color instead of sprite image for easyer testing */
              text-indent:-9999px;
          }
          .img_button {
              width:50px;
              height:25px;
          }
        </STYLE>
    </head>
    <body>
        <div id="content">
            <div class="left">
                <button class="img img_button">Hi!</button>
            </div>
            <div class="right">
                <a href="" class="img img_button"> There</a>
            </div>
        </div>
    </body>
</html>
仅供参考,您可以使用style input type=submit,而不必依赖buggy button元素,这是不推荐的,因为在某些情况下,它传递错误的信息

我有一个片段@,你可以根据它来判断

<input type="submit" id="submit" value="Get rid of me please">

<style>
input#submit {
border:0;
background:url(sprite.gif) no-repeat 0 200px;
text-indent:-999em;
line-height:3000;
width:200px;
height:200px;
}
</style> 

行高用于IE,文本缩进用于现代浏览器。您可能需要为IE指定文本缩进0,因为它不应用文本缩进偏移。

button元素如何传递错误信息?而且,大多数情况下,该按钮只调用javascript函数。已尝试但不起作用。请参阅我发布的示例。如果删除内容div,效果很好,但不在内部。@meder我尝试了线条高度,但仍然无法解决问题。只要文本缩进行存在,它们就不会在IE中显示任何按钮。仅使用行高确实可以在IE中工作,但我尝试设置样式的链接最终非常长。您是否尝试仅为IE指定0的文本缩进?@meder如何仅为IE将文本缩进设置为0?此外,我刚刚注意到linkI需要为该站点添加书签,但您将其更改为块显示而不是内联块。这对我的网站不起作用。
<input type="submit" id="submit" value="Get rid of me please">

<style>
input#submit {
border:0;
background:url(sprite.gif) no-repeat 0 200px;
text-indent:-999em;
line-height:3000;
width:200px;
height:200px;
}
</style>