【问题标题】:target selector not working目标选择器不起作用
【发布时间】:2019-03-21 02:43:17
【问题描述】:

我不知道问题是与 Angular 有关还是我犯了一个错误。
我有一个<article id="about">,一个链接<a href="#about">,我正在尝试为目标元素设置样式

:target{
    border: solid 1px red;
}

当我点击链接时,文章应该有一个红色边框,不是吗?当我单击链接时,URL 偏离路线从 /company 更改为 /company#about 但没有任何反应,我还使用 JQuery $(':target') 在控制台中检查并返回 null
我认为这可能与 Angular 相关,其中路由机制会干扰某些默认行为。我正在使用$locationProvider.html5Mode(true)、Angular 1.1.4 和 Chrome26。
编辑: 最后得到了一个无效的示例 here,它可以工作,直到我在 app.run() 中注入 $location。

【问题讨论】:

  • 你能提供一个它不工作的演示吗?它看起来对我有用:tinker.io/e74a5

标签: css angularjs


【解决方案1】:

这是由于浏览器错误:https://bugs.webkit.org/show_bug.cgi?id=83490

另请参阅http://css-tricks.com/on-target/的最后一部分

【讨论】:

    【解决方案2】:

    只是猜测,但是:

    我认为点击事件可能返回“false”。 也就是部分代码运行,默认链接点击行为被覆盖。

    尝试将页面网址(末尾带有哈希)输入到一个空选项卡中。如果你的 :target css 在这种情况下工作,你就会知道这是一个 javascript 的东西。

    也许框架添加了一个类或其他标识符,您可以轻松地设置它们的样式?或者,如果您检查 DOM,对它的引用存储在某个对象中,您可以使用 jQuery 设置样式?

    【讨论】:

    • angular 内的路由必须覆盖链接的默认行为,但我认为我无法控制它。
    【解决方案3】:

    如果您将 target="_self" 放在 a 标签中,只要启用 HTML5 模式,它将解决角度路由的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 2015-09-30
      相关资源
      最近更新 更多