我有以下HTML + CSS,可以在IE 6作为Web浏览器的少数旧版Windows XP上显示。在较新的浏览器上,它应如下所示:
但IE 6看起来像这样:
所以我很好奇是否可以尝试为IE 6修复此问题?
Here's a fiddle显示代码。
HTML:
<span id="lbl01">User Commands:</span>
<div class="divSmBtns">
<a href="#" id="idBtn" draggable="false" class="smtbBtnCopy smtbBtn" title="whatever"></a>
</div>
的CSS:
.divSmBtns{
margin: -10px 10px 0px 8px;
padding: 0px;
display: inline-table;
}
.smtbBtnCopy{
background-image: url(copy.gif);
}
.smtbBtn{
width: 12px;
height: 10px;
margin: 0px;
padding: 1px;
background-size: 6px;
background-repeat: no-repeat;
background-color: transparent;
border: 1px solid transparent;
display: inline-block;
background-position: center center;
cursor: pointer;
box-sizing: border-box;
outline: none;
}
.smtbBtn:hover{
border: 1px solid #ccc;
}
.smtbBtn:active{
background-size: 5px;
}
答案 0 :(得分:3)
为了支持IE6,您需要对标记做出一些妥协,并保持简单。
正如我在评论中所说,有两个问题。display: inline-table
。使用display: inline;
background-size
。使用img
代替背景图片。一个非常简单的解决方案是删除div
包裹a
,然后使用a
打包img
。像这样:
<span id="...">User Commands:</span>
<a href="#" id="..." class="smtbBtn " title="...">
<img src='...' alt='...' />
</a>
然后,将该图片用于您的悬停互动:
.smtbBtn { vertical-align: middle; }
.smtbBtn img { height: 14px; border: 1px solid transparent; }
.smtbBtn:hover img, .smtbBtn:active img {
border: 1px solid #f00;
}
这将适用于所有浏览器,包括现代浏览器以及IE返回IE5。
演示小提琴:https://jsfiddle.net/abhitalks/mcgLkdc9/6/embedded/result/
<强>段:强>
.smtbBtn { vertical-align: middle; }
.smtbBtn img { height: 14px; border: 1px solid transparent; }
.smtbBtn:hover img, .smtbBtn:active img {
border: 1px solid #f00;
}
&#13;
<span id="lbl01">User Commands:</span>
<a href="#" id="idBtn" draggable="false" class="smtbBtnCopy smtbBtn" title="Copy">
<img src='http://i.stack.imgur.com/6cALN.gif' alt='' />
</a>
&#13;
正如所指出的那样IE6不支持transparent
的{{1}},您将不得不求助于黑客攻击或条件评论(,如其他答案所示)
border-color
(下划线)为属性添加前缀,该内容仅由IE6识别并被其他浏览器忽略。类似地,前缀为_
(星号)只能由IE7识别。CSS:
*
小提琴2:https://jsfiddle.net/abhitalks/mcgLkdc9/8/embedded/result/
.smtbBtn img { height: 14px; border: 1px solid transparent; }
.smtbBtn img { _border-color: pink; _filter: chroma(color=pink); }
标记带有针对这些样式的特定类。请记住条件注释用于HTML而不是CSS。标记:
img
CSS:
<a href="#" id="idBtn" draggable="false" class="smtbBtnCopy smtbBtn" title="Copy">
<!--[if IE 6]>
<img src='http://i.stack.imgur.com/6cALN.gif' class='ie6img' alt='' />
<![endif]-->
<!--[if gte IE 7]>
<img src='http://i.stack.imgur.com/6cALN.gif' alt='' />
<![endif]-->
<!--[if !(IE)]><!-->
<img src='http://i.stack.imgur.com/6cALN.gif' alt='' />
<!--<![endif]-->
</a>
小提琴3:https://jsfiddle.net/abhitalks/a9f80cqf/4/embedded/result/
注意:我没有在IE6中测试过上述两种方法。我在IE11中使用开发人员工具模拟。这意味着,您必须根据自己的经验进行调整。