2010-05-22 64 views
25

我在一个网站,并在顶部导航栏有一个搜索框上工作的工作,我申请上搜索下面的CSS提交按钮文本缩进不会在IE7

#submit { 
    background: url("img/new-search-icon.png") no-repeat scroll -1px 0 #FFFFFF; 
    border:0 none; 
    cursor:pointer; 
    display:block; 
    height:21px; 
    padding:0; 
    position:absolute; 
    right:0; 
    text-indent:-9999px; 
    top:0; 
    width:20px; 
    z-index:2; 
} 

我的问题是在IE7文本缩进不起作用请帮助我 如果你想看演示,你可以点击这里查看Click here。请帮帮我。

+0

是text-transform:capitalize;正在工作:) – 2010-11-11 09:50:19

回答

0

我不知道是不是你问题的原因,但我认为你的速记符号是错误的;颜色代码应该在开始处,而不是结束处。

2

.submit { 
    line-height: 0px; font-size: 0px; 
    /* restante do teu código */ 
    } 

埃斯特é嗯exemplo simse

69

添加这个CSS使IE7的行为:

text-transform: capitalize; 

疯了,但事实。

+5

什么在世界上。为什么这个工作。谢谢先生。 – Jason 2011-07-11 21:53:13

+4

不幸的是,我们没有IE7的源代码,我们可能永远不会知道。 – Caimen 2011-07-11 22:04:34

+0

Ahh geez。为什么我不感到惊讶 – 2011-12-23 01:09:07

20

在实现像上面这样的图像替换技术的同时,还有一些规则需要使用CSS来使其在IE浏览器上工作。

CSS声明:

text-indent:-9999px; 
text-transform:capitalize; 


font-size:0; 
display:block; 
line-height:0; 

字体大小:0用于减少字体大小和在IE7效果很好。但即使添加了这一行,您仍会注意到IE6中按钮中央的黑线(基本上是文本)。

display:block只有在添加了这个消息后,才会在IE中使用负文本缩进。

line-height:0 IE6的另一个修复程序。

text-transform:大写我不知道包含属性的确切原因,它以某种方式解决了问题。

希望这会有所帮助。

+0

谢谢!在Chrome浏览器中,单独使用文本缩进就足够了,但Firefox 16和IE7也需要使用display:block。不需要任何其他人。 – 2013-02-03 17:20:18

0

对不起,有点迟到的帖子,但正在寻找解决方案的IE7问题与消极的文字缩进。我开始尝试自己的随机方式,并偶然发现这一点。 JUST希望在Stack上发布它,以便可以帮助其他人。

尝试将图标添加到链接而不显示文本。

我对所有的浏览器

a.lnk_locked , a.lnk_notchecked, a.lnk_checked 
{ background: url(../images/icons/icon_sprites.png) no-repeat; padding: 0 2px 0 0; width:18px; height:18px; 
     vertical-align:middle; text-indent:-9009px; display:inline-block; overflow: hidden; zoom: 1; *display:inline;} 
    a.lnk_locked { background-position: -1px -217px; } 

我的CSS只是IE7

a.lnk_locked , a.lnk_notchecked, a.lnk_checked 
{ text-indent:20px; padding-left:-20px; width:18px;} 
+0

我只是试图将缩进负填充到我的主要样式表中,它似乎被ie8 ie9和ff接受。 – 2011-07-11 19:39:09

0

CSS我只是想补充的 “其他”(即使它不是严格有关话题,而不是操作问题)。

请确保您使用“px”作为您的价值。即-9999px而不是-9999。

我刚刚花了10分钟试图调试为什么这不起作用。盯着眼前的价值。

最近我一直在做很多Silverlight,所以我的思想没有快速转换到CSS标记要求。哎呀。

您必须包含一个度量单位 ....否则它只会默默地失败。

0

,我发现在IE7我TEXT-INDENT疾苦,东西,我觉得应该加入到这个线程解决方案如下:

不起作用:

text-indent: -900009px; 

不工作:

text-indent: -9999px; 

我不知道有一个限制?我猜是有的。

1

如果没有其他作品完全正确的,这并不:

color: transparent; 
text-indent: 0 !important; /* reset the old negative value */ 

所以正常的浏览器使用负文本缩进,IE7得到采用特殊处理conditional comments

+0

谢谢!这是为我工作的唯一解决方案。但是它的工作方式并没有添加“text-indent:0”。 – Hrushikesh 2012-12-05 19:05:03

0

下才会做的工作适合你: )

text-indent:-9999px !important; 
    line-height:0; 
1

在IE8中也有类似的问题。 消除了所有其他可能性之后,CSS中其他位置的行高宣告破坏了文本缩进。解决方法:明确设置行高为0.

0

请勿使用text-indent。试试这个:

display: block; 
height: 0; 
padding-top: 20px; //The height of your button 
overflow: hidden; 
background: url(image.png) no-repeat; // Image replacement 

适用于包括IE6在内的所有浏览器。

0

我尝试了以上所有都没有成功。在拾取文本缩进之前,我必须添加一个float:left。 IE7是疯狂的,疯狂的我的意思是可怕的。

0

下面是一些CSS我使用IE中对我的作品和不依赖于text-indent

.sprite { 
    width:100%; 
    height:0px; 
    padding-top:38px; 
    overflow:hidden; 
    background-repeat:no-repeat; 
    position:relative; 
    float:left; 
    display:block; 
    font-size:0px; 
    line-height:0px; 
} 
.sprite.twitter { 
    background-image:url(/images/social/twitter-sprite.png); 
    margin-top:8px; 
    background-position: 4px 0px; 
} 
#social-links a:hover .sprite.twitter { 
    background-position: 4px -38px; 
} 
1

文本转换:大写;实际上对我没有任何影响(它发生在标签上),但是这起作用

text-indent: -9999px 
float: left 
display: block 
font-size: 0 
line-height: 0 
overflow: hidden