2013-05-04 64 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