2013-05-04 46 views
0

是否可以将CSS应用于检测元素中某个单词并以某种方式标记该单词的方式?我知道我可以在HTML中添加<span style="...">word</span><span class="...">word</span>,但这不会自动检测到该单词。有什么办法可以完全在CSS中完成此操作吗?任何帮助表示赞赏。将CSS应用于一个单词

+0

不是真的CSS有没有真正的逻辑,你说的办法就是真正做到这一点的唯一方法 – aaronman 2013-05-04 23:55:48

+0

你可以用JavaScript做到这一点,但是没有办法通过仅使用CSS来检测单词。 CSS用于设置元素的样式,而不是别的。但为什么你想通过使用CSS来做到这一点? – Loolooii 2013-05-05 00:01:39

+0

我想制作一些能够自动检测特定单词并突出显示它们的内容,有点类似于语法高亮显示,我希望网站能够自行完成此操作,以便用户可以输入输入内容,并自动检测哪些单词为了突出。 – 2013-05-05 14:10:46

回答

4

Theres没有办法在CSS中做到这一点。你可以用一个包裹版本替换单词的所有实例和应用样式,按您的例子http://jsfiddle.net/w9VbP/

.theword 
{ 
    color:red; 
} 
0

你可以轻松地使用jQuery它

JS

var word = 'hello'; 
var replacement = '<span class="theword">' + word + '</span>'; 

var re = new RegExp(word, 'ig'); 

document.body.innerHTML = document.body.innerHTML.replace(re, replacement); 

CSS。我在var text中存储body的html标记,并用<span class="change">sample1</span>替换sample,并放回body的更新html标记。显然,您必须将此jQuery放在html的head部分,否则jQuery函数中的sample字符串也将被替换为<span class="change">sample1</span>

jQuery的功能

$('body').each(function() { 
    var text = $(this).html().replace(/sample/g,'<span class="change">sample1</span>'); 
    $(this).html(text); 
}); 

的CSS:

.change{ 
color:red; 
background:blue; 
} 

Working jsFiddle

+0

为什么使用jQuery?另外.replace()只会替换'sample'的第一个实例:http://jsfiddle.net/u96pU/2/ – 2013-05-05 11:18:26

+0

@TomElmore修复了它。为什么不使用jQuery? – thunderbird 2013-05-05 14:14:52

+0

,因为使用它的唯一效果是向页面添加依赖项并增加加载时间。 jquery并不简单,也不可读 - 事实上,除了增加一个额外的90k下载和调用比直JS更多的功能之外,它几乎相同。 – 2013-05-05 23:24:29

相关问题