Angular-material ng-click 奇怪的边框高亮

Posted

技术标签:

【中文标题】Angular-material ng-click 奇怪的边框高亮【英文标题】:Angular-material ng-click strange border highlight 【发布时间】:2015-09-07 23:48:16 【问题描述】:

我在使用 AngularJS 和 Angular-Material 时遇到问题。

看看下面的代码:

<div flex="100">
   <ul class="list-group">
       <li class="list-group-item cursorPointer" 
        ng-repeat="item in array" ng-click="selectItem(item)">
          item.name
       </li>
    </ul>
</div>

li 标签附加了一个 ng-click 函数,其中包含一些业务逻辑。问题是当你点击它时会出现一个奇怪的边框(类似于用户选择突出显示),我似乎无法弄清楚它来自哪里。

这似乎只在我在元素上有 ng-click 指令时出现(在 span 元素上的行为相同)

使用的版本:

AngularJS - 1.4.1

角材料 - 0.9.4

Angular-Aria - 1.4.0

Angular-Animate - 1.4.1

Angular-UI-Boostrap - 0.9.0

引导程序 - 3.2.0

JQuery - 2.1.4

有什么想法吗?例如,请参阅此 plnkr:http://plnkr.co/edit/60u8Ur?p=preview

【问题讨论】:

Bootstrap 将它用于链接项目组项目,我想知道 angular-bootstrap 是否不会将 CSS 应用于可点击和列表组项目的元素。只是猜测。 @gillesc 问题是,如果我删除所有的角度材料脚本,高亮就会消失。所以它必须来自有角材料,但我无法弄清楚它到底是从哪里来的。 【参考方案1】:

你的问题是:focus,你可以通过做这样的事情来解决

 span:focus 
    outline: none;
    border: 0;
 

所以这只是为了您的跨度,如果您想在其他地方删除它,您可以更具体地了解其他项目。

【讨论】:

不是重点。检查我在问题中提供的 plnkr 并尝试一下。 @RusPaul 它是焦点,你只需要将它从你想要的任何元素中删除,我只是有一个例子。如果您使用的是 chrome,请打开开发工具,转到元素标签并检查您的 li(或您有 ng-click 的任何一个),然后右键单击并强制元素状态为 :focus。 @RusPaul 你指的是哪一部分不工作? 那个奇怪的蓝色边框仍然没有消失。见截图:i.imgur.com/6hR3hbA.png @RusPaul 更新了 css,使用 outline: none;和边框:0;见这里 -plnkr.co/edit/V9n42JiMWmWrvvpHqdrO?p=preview 。瞄准你想要的任何东西,如果你愿意,你可能会做一个 *:focus,但不建议使用 *.【参考方案2】:

我在大多数元素上都遇到了同样的问题。

在我的例子中,以下 CSS 代码有效:

*:focus 
    outline: none !important;
    border: 0 !important;

【讨论】:

【参考方案3】:

这可能很容易: 将nofocus 类添加到该元素,

并将 css 添加到 :focus 上的该类

.nofocus:focus 
    outline: none;

【讨论】:

以上是关于Angular-material ng-click 奇怪的边框高亮的主要内容,如果未能解决你的问题,请参考以下文章

如何创建响应式(可变列数)Angular-Material 卡片网格

如何使用 Angular-Material 获得全高侧导航

如何从 angular-material2 对话框与其父级进行通信

未捕获的错误:模块“MyMaterialModule”导入的意外指令“angular-material”。请添加 @NgModule 注释。角 5

包装或扩展 angular-material 组件,允许将未知属性传递给子组件

Angular-Material 、 AngularJS 、 TypeScript 、 Javascript 、 ng-controller 在我的 md-dialog 中无法访问