2015-07-22 85 views
2

美好的一天。是否可以在选择器之前/之后应用到属性选择器?

我想跨我的网站应用全球CSS规则,以便所有文件链接都将在新窗口中打开。目前的情况是,该网站有一个bajillion链接和文件到处都是,所以我试图用CSS规则来解决这个问题。

我想知道我是否能以某种方式使用属性选择:

a[href*="/files/"] 

然后使用:before或:after插入目标=“_空白”到链接代码。

可能吗?如果是这样,任何人都可以看到CSS来做到这一点吗?

谢谢。

+0

您是否要求使用:在/之后插入属性?然后这是不可能的,因为这些是伪元素*,而不是伪属性或伪DOM节点等等。此外,伪属性的概念在CSS中没有意义,因为属性涉及结构和意思,而不是演示。如果你想改变一个元素的属性,你可以使用DOM API来实现。 – BoltClock

回答

1

SOLUTION

你可以做到这一点使用jQuery来代替:

$(document).ready(function(){ 
    $('a[href*="/files/"]').attr('target', '_blank'); 
}); 

DEMO

this jsFiddle代码和演示。

1

不幸的是,之前和之后的斑点:将其限制在文本和css驱动的计数器之后。我建议使用JavaScript解决方案。如果你的页面是静态的,那么onload会做一些事情。对于更多动态页面,jquery或类似的将有所帮助。你在使用什么技术?

+0

这是在Drupal 7,我有非常有限的访问,即使我被要求解决问题。我可能有能力使用JQuery,还不确定。 – Somenoob

+0

叹息,这增加了一个额外的复杂程度。您不仅需要触发更改,但每次Drupal加载新页面时都必须执行此操作。我对Drupal并不知情,但似乎你需要使用行为(https://www.lullabot.com/articles/understanding-javascript-behaviors-in-drupal)。 –

+0

...和https://www.drupal.org/node/756722。如果你重新提出你想要做的事情而不是问题的方式,那么你会得到更好的帮助,并且为它标记Drupal。说你是否有权访问Drupal实例或者使用外部提供的安装,因为这会改变所需的方法。 –