2013-05-04 3 views
0

Можно ли применить CSS таким образом, чтобы он обнаруживал всякий раз, когда в элементе есть определенное слово, и каким-то образом отмечайте это слово? Я знаю, что я могу добавить <span style="...">word</span> или <span class="...">word</span> в строку с HTML, но это не будет автоматически определять слово. Есть ли способ сделать это полностью в CSS? Любая помощь приветствуется.Применить CSS к однословному слову

+0

Не совсем CSS не имеет реальной логики к нему, то, как вы заявили, это действительно единственный способ сделать это – aaronman

+0

Вы можете сделать это с помощью JavaScript, но нет возможности фактически распознавать слова, используя только CSS. CSS используется для стилей элементов, а не для чего-либо еще. Но почему вы хотите сделать это, используя CSS? – Loolooii

+0

Я хотел сделать что-то, что может автоматически обнаруживать определенные слова и выделять их, вроде как подсветка синтаксиса, и я хочу, чтобы сайт мог сделать это самостоятельно, чтобы пользователь мог вводить ввод, и он будет автоматически определять, какие слова Чтобы выделить. –

ответ

4

Theres нет способа сделать это только в css. Вы можете заменить все вхождения слова с упакованной версии и применить стиль, как в вашем примере http://jsfiddle.net/w9VbP/:

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

.theword 
{ 
    color:red; 
} 
0

Вы можете легко сделать это с помощью JQuery. Я сохраняю html-разметку тела в var text и заменяю sample на <span class="change">sample1</span> и вернув обновленную разметку html для тела. Очевидно, вам придется поместить этот jQuery в раздел заголовка html, как в противном случае строку sample в функции jQuery также будет заменен на <span class="change">sample1</span>.

Функция JQuery

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

устанавливаемыми сотовыми:

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

Working jsFiddle

+0

Зачем использовать jQuery для этого? Также .replace() заменит только первый экземпляр «sample»: http://jsfiddle.net/u96pU/2/ –

+0

@TomElmore исправил его. почему бы не использовать jQuery? – thunderbird

+0

, потому что единственным эффектом его использования является добавление зависимости к вашей странице и увеличение времени загрузки. jquery не проще и не более читабельна - Infact его почти идентичный, кроме добавления дополнительных 90k для загрузки и вызова еще 7 функций, чем прямой JS. –

Смежные вопросы