【问题标题】:Why isn't my image clickable in IE?为什么我的图片在 IE 中无法点击?
【发布时间】:2012-07-27 18:44:37
【问题描述】:

希望有人可以帮助我解决我在使用 IE 时遇到的这个问题。所以我正在处理的页面有一张包含 Facebook、Twitter 和 Youtube 选项卡的图片。

除了 Internet Explorer (7/8) 之外,所有这些选项卡在大多数其他浏览器 (Chrome/Safari/Firefox/Opera) 中都是可点击的。我不确定我在这里做错了什么,有人可以帮助我吗?

HTML(已编辑):

<div id="head">
    .
    .
    .
    <div id="icons">
        <ul class="nav1">
            <li></li>
            <li><a id="facebook" rel="_blank" href="https://www.facebook.com">&nbsp;</a></li>
            <li><a id="twitter" rel="_blank" href="https://twitter.com">&nbsp;</a></li>
            <li><a id="youtube" rel="_blank" href="https://www.youtube.com">&nbsp;</a></li>
        </ul>
    </div>
    .
    .
    .
</div>

CSS(已编辑):

#icons {
    position:absolute;
    top:44px;
    right:200px;
    z-index:9;
    float:left;
    /*width:105px;*/
    height:35px;
    /*background:url(/images/sprite_header_icons.png) no-repeat -6px 0;*/
}
#icons ul.nav1{
    height: 35px; /*added*/
}
#icons ul.nav1 li {
    display: inline;
    padding-left: 1px;
height: 35px !important; /*added*/ 
}
#icons ul.nav1 li a {
    display: inline;
    /*width: 34px;
    height: 31px;*/
}
ul.nav1 li a:hover {

}
#icons ul.nav1 li a#facebook {
    padding-left: 20px;
    padding-right: 13px;
    padding-bottom: 28px;
    background:url(/images/sprite_header_icons.png) no-repeat -6px 0; /*added*/
    width: 20px; /*added*/
    height: 35px; /*added*/
}
#icons ul.nav1 li a#twitter {
    padding-left: 20px;
    padding-right: 13px;
    padding-bottom: 28px;   
    background:url(/images/sprite_header_icons.png) no-repeat -40px 0; /*added*/
    width: 20px; /*added*/
    height: 35px; /*added*/

}
#icons ul.nav1 li a#youtube {
    padding-left: 20px;
    padding-right: 13px;
    padding-bottom: 28px;
    background:url(/images/sprite_header_icons.png) no-repeat -74px 0; /*added*/
    width: 20px; /*added*/
    height: 35px; /*added*/
}

注意:

好的,所以我根据 Ryan BeaulieuAlex ReynoldsOhMrBigshot 的建议进行了一些更改。现在,选项卡在 IE (7/8) 中是可点击的……但是,这些选项卡是部分可见的(li 38px x 16px),如下所示:

宽度很好,但是如何将高度从 16px 增加到 35px? 谢谢!!

【问题讨论】:

  • 我可能是错的,但可能是因为锚标签之间没有任何内容
  • @Ryan,我希望不是这样,因为我不能在这些标签之间放置任何东西......它假设只需点击图像的不同部分即可工作
  • 您正在测试哪个版本的 IE?
  • @RyanBeaulieu:看起来你是对的......如果我在标签之间添加一些东西,我看到鼠标指针变为可点击的“手”......但是,这搞砸了一切: (但谢谢你的想法:)我会继续玩它

标签: css internet-explorer hyperlink image clickable


【解决方案1】:

尝试添加 display:block

#icons {
    position:absolute;
    top:44px;
    right:200px;
    z-index:9;
    float:left;
    width:210px;
    height:30px;
    background:url(/images/sprite_header_icons.png) no-repeat -6px 0;
}
#icons ul.nav1 li {
    display: inline;
    float:left;
    padding-left: 1px;
}
#icons ul.nav1 li a {
    float:left;
    display:block;
    width: 34px;
    height: 31px;
}

【讨论】:

  • 感谢您的回复。我尝试了你的建议,但是当链接变成块状时,链接更加混乱(链接垂直排列,它们需要水平)
  • 是的,我知道它会弄乱你的图标,如果你有麻烦,你只需要重新安排我可以帮助你,但我的问题是,通过使用 display:block 解决了你的问题吗?因为我喜欢在我的 html 中总是使用背景而不是图像并将它们作为锚点,我从来没有遇到过这种问题
  • 是的,它实际上解决了我的问题(垂直):) 但由于我不是这方面的专家,我不确定如何将块移动到内联位置。那么你能/愿意帮助我吗?
  • 请务必检查此示例jsfiddle.net/8qAhN 我使用与您相同的代码我只是更改了 css 并且显然使用 bgcolor 因为我没有指向您的图像的链接
【解决方案2】:

你在使用 rel="_blank" 吗?那是HTML5吗?你用的IE版本是9吗?难道你应该使用target="_blank"?

【讨论】:

  • 嗯...这是一个很好的观点。我还没有尝试过使用 target="_blank",因为 W3C 给了我使用 target="_blank" 的错误。让我试一试,如果是这样的话会告诉你
  • w3schools.com/tags/att_a_rel.asp 不确定这是否会导致您的问题。为什么不切掉你的图标精灵并将 a.facebook 背景位置设置为 0 0,然后将 a.twitter 背景位置设置为 40 0。这可能是更好的布局方式。相同的图像精灵,但您正在为每个锚点修剪它
  • 好的,所以我尝试了target="_blank",但不幸的是情况并非如此。我喜欢你的第二个想法,我今天早上正在考虑它。但是,我只是这里的开发人员,所有的图像都是由另一个部门提供给我的,我想改变他们中的任何一个:(我今天会继续尝试,最后如果我看到我找不到任何解决方案,然后我会请求我的经理允许裁剪图标。
  • 不,不要更改图像。将其用作精灵,但在 css 中的每个链接标记中,将宽度和背景设置为要显示的精灵中的图标。即css中的墨水1将获得背景:url(/images/sprite_header_icons.png)no-repeat -6px 0。链接2背景:url(/images/sprite_header_icons.png)no-repeat -6px 34px;放一个宽度属性,你的链接不再是空的。
  • 我做了一些更改,现在可以正常工作,但现在又遇到了另一个问题。你能看看我修改过的帖子吗?
【解决方案3】:

IE 有时会忽略“空”元素,即使您定义了大小。尝试在a 标签中添加&amp;nbsp;

【讨论】:

  • 似乎这可能是罪魁祸首:P Ryan Beaulieu 第一次提到它,即使它搞砸了链接(如果我点击 FB 图标然后 Twitter 页面打开起来,如果我点击 Twitter 选项卡,然后 YT 页面就会打开)....我想如果我玩一下填充/位置...它会解决我的问题。如果它解决了我的问题,我会告诉你的。非常感谢您的回复!
猜你喜欢
  • 2011-04-02
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2016-07-21
  • 2020-03-01
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
相关资源
最近更新 更多