去掉链接点击时虚线框的几个方法

本文介绍了四种有效去除网页中链接点击时产生的虚线框的方法,包括使用JavaScript、CSS样式、HTML标签属性及Web行为等手段,以提高网页的专业性和美观度。

    在常规情况下,该虚线框是作为一种提示让用户明确当前关注的东西,然而如果我们把链接的4种状态样式设置比较完整的话,就不是特别需要虚线框的存在,因为它很有可能影响页面的美观。尤其是在做应用系统界面的时候,总给人一种浏览网页的感觉,显得不够专业。

 

    当然,如果全盘否定掉链接虚线框,对使用键盘的用户体验可能又是个大弊端,但这是另外一个话题了。

 

    下面介绍几种去掉链接点击时虚线框的方法:

 

    方法一:利用javascript的onfocus事件,实现如下:

 

   

<a href="#" onfocus="this.blur();">链接</a>

 

    如果引入了jQuery框架则可以利用它的事件绑定机制:

 

$('a').bind('focus', function(){ 
    if(this.blur){ //如果支持 this.blur 
        this.blur(); 
    } 
});

 

    方法二:利用css样式,实现如下:

   

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

 

    方法三:利用标签属性,仅支持IE,实现如下:

 

   

<a href="#" hidefocus="true">链接</a>

 

    方法四:利用Web行为

   

    IE从5.5版本开始支持Web行为的概念。这些行为是由后缀名为.htc的脚本文件描述的,它们定义了一套方法和属性,程序员几乎可以把这些方法和属性应用到HTML页面上的任何元素上去。Web行为是非常伟大的因为它们允许程序员把自定义的功能“连接”到现有的元素和控件,而不是必须让用户下载二进制文件(例如ActiveX控件)来完成这个功能。Web行为还是推荐的扩展IE对象模型和控件集的方法。微软在它的开发者站点上的DHTML行为库栏目里提供了几个定制的Web行为:WebService行为。

 

    讲一下代码保存为.htc后缀的文件

 

   

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

 

    然后,在需要去除超链虚框的页面的<head>和</head>之间加入:

 

   

<style type="text/css"> 
    a {behavior:url("htc文件")} 
</style>

    

    如果页面已经有了style标签,只需要将 a {behavior:url("htc文件")} 一句插入里面即可。

<think>好的,我现在需要帮用户解决如何通过CSS或HTML去掉图片的边的问题。首先,我得回忆一下用户提供的参考引用内容,看看有没有相关的方法。 根据引用[2]提到的,他们初始化img标签,设置padding和border为0。这应该是一个基本的方法。用户可能是在图片被包裹在链接,浏览器自动添加了边,所以需要针对这种情况处理。 然后引用[1]提到了border-image-source和border-image-slice,但这里用户的问题是关于去除边,可能更直接的方法是使用border属性而不是图片边。所以可能不需要用到border-image相关的属性。 引用[3]是关于按钮去除边的例子,虽然对象不同,但方法类似,使用border: none;。不过图片的情况可能稍有不同,特别是当图片在链接。 接下来,我需要整理几种常见的情况和对应的解决方法。首先,直接设置img的border为0或者none。其次,当图片在a标签内,可能需要同去掉a标签的边。另外,可能需要考虑CSS重置的情况,确保没有其他样式覆盖。 另外,用户可能还遇到图片被DIV撑破的问题,但当前问题主要是边,所以先专注在边上。需要分步骤说明不同的方法,并且给出代码示例,比如内联样式、内部样式表、外部CSS文件,以及处理a标签的情况。 还要注意语法正确性,比如在CSS中,border: 0;和border: none;的区别,以及是否需要设置outline,因为有些浏览器可能在点击出现虚线,这候可能需要outline: none;。 最后,要确保回答结构清晰,步骤明确,让用户能一步步操作。同生成相关问题,比如其他边问题或者图片适应容器的技巧,帮助用户扩展知识。</think>### 如何通过CSS或HTML去除图片的边 #### 1. **使用CSS直接重置图片边** 图片(`<img>`标签)的边通常由以下两种情况产生: - 图片被包裹在超链接(`<a>`标签)内,浏览器可能默认添加蓝色边 - 外部CSS样式或架的全局设置影响了图片 **解决方法**: 在CSS中为`img`标签添加以下样式: ```css img { border: 0; /* 或 border: none; */ padding: 0; /* 可选:去除内边距 */ outline: none; /* 可选:去除点击虚线 */ } ``` #### 2. **针对超链接包裹图片的特殊处理** 若图片位于`<a>`标签内,需同清除父元素的边: ```css a img { border: none; } ``` #### 3. **通过HTML内联样式快速去除(临方案)** 直接在`<img>`标签中添加`style`属性: ```html <img src="image.jpg" alt="示例" style="border:0; outline:none;"> ``` #### 4. **防止CSS覆盖的优化写法** 在全局样式表中添加更严格的声明: ```css img[border], img[style*="border"] { border: 0 !important; } ``` ### 示例代码对比 | **无处理效果** | **处理后效果** | |----------------|----------------| | `<a href="#"><img src="image.jpg"></a>` | `<a href="#"><img src="image.jpg" style="border:none;"></a>` | ### 其他注意事项 - 若使用`border-image`属性(如引用[1]提到的切片功能),需额外设置`border-image: none`[^1] - 架(如Bootstrap)可能需覆盖`!important`样式 - 调试可通过浏览器开发者工具检查具体样式来源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值