`
alovejun14
  • 浏览: 77665 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

解决点击链接时网页出现虚线框方法

阅读更多

在IE下,需要在标签 a 的结构中加入 hidefocus="true" 属性。即:

<a href="http://www.yanzhaoit.com" hidefocus="true" title="做有用网站,找燕赵互联">燕赵互联</a>

input{blr:expression(this.hideFocus=this.blur()); }  
a:visited {blr:expression(this.hideFocus=this.blur());}

而在FF等浏览器中则相对比较容易,直接给标签 a 定义样式 outline:none; 就可以了,即:

a {
outline:none;
}

方法二:

        也可以仅用 CSS 来控制,即对 IE 的情形使用 expression 表达式,但不推荐使用,毕竟 expression 在性能上有问题。

.HideFocus {
hide-focus: expression(this.hideFocus=true); /* for ie 5+ */
outline: none; /* for firefox 1.5 + */
}

 

 

2.批量消除虚线框

如果你的网页上有几个甚至上百个链接,而你又想要去掉上面那些讨厌的虚线框,难道你还一个个去Ctrl+C、Ctrl+V,天哪!这对一个正常人来 说绝对是个恶梦。也许你会说,用DW或其它文本编辑器里的“查找/替换”功能就能解决,对!不可否认,这是一个好办法,但作为一个优秀的web developer,用尽可能少的代码实现一样的功能才是我们应当追求的目标,下面我们就用htc来解决这问题。至于htc是什么,全称就是Html Components,由微软在IE5.0后开始提供的一种新的指令组合,它可以把某种特定功能的代码封装在一个组件之中,从而实现了代码的重复使用。作 为一个组件,htc里包含了属性、方法、事件等等各种知识,在这里就不一一介绍了,具体内容各位可以参考微软的msdn主页。

回到开始处,Onfocus=this.blur()在这里很显然,onfocus是一个事件,this.blur()则是被事件所触发的对象,既然这点明确了,代码就知道该怎么写了。

折叠JavaScript Code复制内容到剪贴板
  1. <public:attach event=”onfocus” onevent=”example()” />   
  2. <script language=”javascript”>   
  3. function example(){   
  4. this.blur();   
  5. }   
  6. </script>  

将以上代码存为.htc为扩展名的文件,然后html网页的<head>。。。</head>之间加入下面的CSS代码

折叠CSS Code复制内容到剪贴板
  1. <style type="text/css">   
  2. <!--   
  3. a {behavior:url(htc文件所在路径地址)}   
  4. -->   
  5. </style>  
保存,预览,怎么样?效果出来了吧,再看看代码,的确精简了不少,而且在链接越多时体现得越发明显。

在网页设计时都会碰到一些问题,就是input点击时会出现虚线框哦,那我们有的朋友不喜欢所以就选择一个可以去除的办法了。

<style type="text/css">
<!--
.login_button {
background-image: url(/images/login_button.jpg);
background-repeat: no-repeat;
background-position: left top;
margin: 0px;
padding: 0px;
height: 46px;
width: 48px;
border: none;
background-color: #FFCC00;
}
-->
</style>
</head>
<body>
<input type="submit" class="login_button" tabindex="4" value=" 确定" width="48px" height="46px" border="0px" />
</body>

解决方法:

,< input > 内加 onFocus="this.blur()"就行了

那么下面502将会整理从google搜来的4种解决方案来想消除这不太受欢迎的虚线框。

非IE浏览器里一般用 a:focus { outline:0; }这句来搞定

1、首先有利用htc来解决的。htc 是什么呢?htc全称就是Html Components,由微软在IE5.0后开始提供的一种新的指令组合,它可以把某种特定功能的代码封装在一个组件之中,从而实现了代码的重复使用。作 为一个组件,htc里包含了属性、方法、事件等等各种知识,在这里就不一一介绍了,具体内容各位可以参考微软的msdn主页。现在言归正传,看看htc是 怎么批量消除链接虚线框的:
①首先将下面的代码保存为.htc扩展名的文件;

<public:attach event="onfocus" onevent="hscfsy()"/>
<script language="javascript">
function hscfsy(){
this.blur();
}
</script>

②然后在网页文件的<style>标签内或着外链的CSS文件里添加如下一行代码即可:

a {behavior:url(htc文件所在路径地址)}

2、使用CSS中Expression来解决。跟第一个方法相比,此方法要简单得多,不需要创建htc文件,只需在网页文件的<style>标签内或着外链的CSS文件里添加如下一行代码即可:

a{blr:expression(this.onFocus=this.close());} /* 只支持IE,过多使用效率低 */
a{blr:expression(this.onFocus=this.blur());} /* 只支持IE,过多使用效率低 */
a:focus { -moz-outline-style: none; } /* IE不支持 */

3、使用JS脚本来解决。代码如下,复制到网页文件的<head>标签内即可。

<script type="text/javascript">window.onload=function()
{
 for(var ii=0; ii<document.links.length; ii++)
 document.links$[$ii$]$.onfocus=function(){this.blur()}
}</script>

4、同样是使用JS脚本的方法。代码如下,复制到网页文件的<head>标签内即可。

<script type="text/javascript">function fHideFocus(tName){
aTag=document.getElementsByTagName(tName);
for(i=0;i<aTag.length;i++)aTag$[$i$]$.hideFocus=true;
for(i=0;i<aTag.length;i++)aTag$[$i$]$.onfocus=function(){this.blur();};
}</script>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics