我无法摆脱IE7 +中的虚线轮廓。我添加了outline:none; border:none
,但它仍然无法在任何版本的IE中使用。
我创建了小提琴,当我在IE中运行小提琴时代时它工作得很好但是当我在HTML页面中粘贴相同的代码时它就无法工作了。这是小提琴http://jsfiddle.net/6Ayek/4/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Photos Tab</title>
<style type="text/css">
/* Generated by F12 developer tools. This might not be an accurate representation of the original source file */
#contentContainer { BACKGROUND-IMAGE: url(/s/store/-1/common/gb/Media-Console/popup_bg.jpg); WIDTH: 636px; HEIGHT: 460px; OVERFLOW: auto}
#leftNavigation { PADDING-LEFT: 15px; WIDTH: 125px; PADDING-RIGHT: 10px; FONT-FAMILY: Arial, Helvetica, sans-serif; FLOAT: left; FONT-SIZE: 12px}
#leftNavigation ul {PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px}
#leftNavigation ul li { WIDTH: 125px; DISPLAY: block; outline:none !important;}
#leftNavigation ul li a {LINE-HEIGHT: 30px; DISPLAY: block; FONT-FAMILY: Arial, Helvetica, sans-serif; COLOR: #2c2f30; FONT-SIZE: 12px;; TEXT-DECORATION: none; outline:none !important;}
#leftNavigation ul li a:visited { COLOR: #2c2f30; outline:none !important; border:none}
#leftNavigation ul li a:hover { COLOR: #000000; outline:none !important; border:none}
.currentSelection { BORDER-BOTTOM: #0076a3 1px solid; BORDER-LEFT: #0076a3 1px solid; LINE-HEIGHT: 25px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 10px; OUTLINE-WIDTH: medium; DISPLAY: inline-block; BACKGROUND: #0095cd; BORDER-TOP: #0076a3 1px solid; FONT-WEIGHT: bold; BORDER-RIGHT: #0076a3 1px solid; TEXT-DECORATION: none; BEHAVIOR: url('/s/store/-1/common/gb/Media-Console/PIE.htc'); -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;
}
</style>
</head>
<body>
<div id="leftNavigation">
<ul>
<li><a href="#" style="color: white; " class="currentSelection">test</a></li>
<li><a href="#" style="color: black; ">test 2</a></li>
<li><a href="#" style="color: black; ">test 2</a></li>
<li><a href="#" style="color: black; ">test 2</a></li>
<li><a href="#" style="color: black; ">test 2</a></li>
</ul>
</div>
</body>
</html>
答案 0 :(得分:3)
您只需要一个简短的CSS规则:
a { outline: none }
为什么它在HTML页面中不起作用是不可能回答的,但这是用于删除轮廓的正确CSS代码。
我应该提一下,这种技术不是非常易于访问,因为虚线边框对于通过键盘或其他乐器导航的人很有帮助。一个更好的方法是这个jQuery片段:
(function($) {
$(document).on('mousedown mouseup', 'a', function(e) {
if ('hideFocus' in this) { // IE
this.hideFocus = e.type == 'mousedown';
}
this.blur();
});
}(jQuery));
<强>更新强>
我误读了您问题的IE7
部分...您可以尝试添加:
a:focus{
noFocusLine: expression(this.onFocus=this.blur());
}
但最好的解决方案仍然是jQuery / javascript方法。
答案 1 :(得分:1)
对outline
属性的支持是added in IE 8,因此该技术在IE 7上不起作用。在较新版本上,它确实有效;在IE 9上测试时,您的代码在IE 9模式和IE 8模式下均可使用。 (将“作品”定义为“产生所需的可用性问题”。)
要在IE 7上实现所需的效果,您可以使用专有的HTML属性hidefocus
,例如
<li><a href="#" style="color: black; " hidefocus>test 2</a></li>
或在JavaScript中设置相应的DOM属性hideFocus
。
答案 2 :(得分:0)
如果你可以在你的页面上使用javascript,试试这个,在IE9和FF15上为我工作:
<script type="text/javascript">
if (document.documentElement.attachEvent)
document.documentElement.attachEvent('onmousedown', function(){event.srcElement.hideFocus=true});
</script>