去除虚线框[转]

今天用微软的Menu控件做了一个菜单,点击链接,光标离开后,UL标签上会出现虚线框,查到下面资料,利用方法四问题得到解决。在这里分享一下。

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

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

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

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

Html 代码   收藏代码spinner.gif
  1. <a href="#" onfocus="this.blur();">链 接</a>  
<a href="#" οnfοcus="this.blur();">链接</a>

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

Js 代码   收藏代码spinner.gif
  1. $('a').bind('focus'function(){   
  2.     if(this.blur){ //如果支持 this.blur   
  3.         this.blur();   
  4.     }   
  5. });  
$('a').bind('focus', function(){ 
    if(this.blur){ //如果支持 this.blur 
        this.blur(); 
    } 
});

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

Css 代码   收藏代码spinner.gif
  1. a{  
  2.     blr: expression(this.onFocus=this.close());  
  3. } /* 只 支持IE,过多使用效率低 */  
  4. a{  
  5.     blr: expression(this.onFocus=this.blur());  
  6. } /* 只 支持IE,过多使用效率低 */  
  7. a:focus {   
  8.     -moz-outline-style: none;   
  9. } /* IE 不支持 */  
  10. :focus {   
  11.     outline: none;   
  12. } /* for Firefox */   
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,实现如下:

Html 代码   收藏代码spinner.gif
  1. <a href="#" hidefocus="true">链 接</a>  
<a href="#" hidefocus="true">链接</a>

    方法四:利用Web行为

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

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

Js 代码   收藏代码spinner.gif
  1. <public:attach event="onfocus" onevent="quit()" />   
  2. <script language="javascript">   
  3.     function quit(){   
  4.         this.blur();   
  5.     }   
  6. </script>  
<public:attach event="onfocus" onevent="quit()" /> 
<script language="javascript"> 
    function quit(){ 
        this.blur(); 
    } 
</script>

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

Html 代码   收藏代码spinner.gif
  1. <style type="text/css">   
  2.     a {behavior:url("htc 文件")}   
  3. </style>  
<style type="text/css"> 
    a {behavior:url("htc文件")} 
</style>

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



转载于:https://www.cnblogs.com/cowman/archive/2011/03/23/1992544.html

`QTableView` 是 Qt 库中的一个用于显示表格数据的组件。默认情况下,当用户选择某个单元格时,会有一条虚线显示选中区域。若想移除这一效果,可以通过修改 `QTableView` 的样式表 (style sheet) 来达到目的。 以下是通过设置样式表来移除选中项虚线的步骤: ### 步骤 1: 获取 QTableView 实例 首先,你需要有一个 `QTableView` 实例。假设这个实例已经存在于你的界面中,并命名为 `tableView`。 ```cpp QTableView *tableView = // ... 初始化你的 QTableView 代码 ``` ### 步骤 2: 设置样式表 接着,你可以通过以下代码设置样式表来移除虚线: ```cpp QString styleSheet = "QTableView::item:selected { border: none; }"; tableView->setStyleSheet(styleSheet); ``` 在这个样式表中,我们使用了 CSS 类型的选择符 `QTableView::item:selected`。这里的 `::` 表示这是一个内部选择符,它指定的是特定元素的子元素。在此处,`::item` 指定了 `QTableView` 中的每个项目 (`QTableWidget::item`) 被选择时的行为。然后我们设置了边属性 `border` 为空字符串 `""`,以此来移除被选择项的边。 ### 步骤 3: 确保样式有效应用 为了确保你的样式改变能立即生效并应用到所有后续的操作上,你可以在应用或者重绘视图的时候直接设置样式表。如果需要在运行时动态更新,可以考虑在信号槽连接中完成此操作,例如 `tableView->selectionChanged()` 信号。 ### 相关问题: 1. **如何自定义 QTableView 的行高和列宽?** - 可以通过设置 `horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch)` 和 `verticalHeader()->setDefaultSectionSize(高度值)` 来调整宽度和行高。 2. **QTableView 如何添加垂直滚动条?** - 默认情况下,`QTableView` 就有垂直滚动条。若未自动出现,可以检查控件布局是否限制其可见性,或者代码中是否存在错误导致其未正常加载。 3. **如何禁用 QTableView 的编辑功能?** - 通过设置 `tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);` 来关闭编辑触发机制即可。 通过上述方法,你可以有效地控制 `QTableView` 的外观,包括移除选中项的虚线
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值