Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Textarea текст внутри


Автор: 31416 14.1.2009, 17:48
Можно как-нибудь внутри textarea выделить определенные фрагменты текста например с 5-го по 10-й по счету символ сделать подчеркнутым или цвет его фона текста определить?

Автор: bars80080 14.1.2009, 18:53
сам текстареа нет. делается это с помощью замены поля на плавающий фрэйм, процесс создания такой вещи довольно трудоёмкий, поэтому ищи лучше готовые варианты, их порядочно

один из самых известных и бесплатный: fckeditor . довольно простой в настройке и эффективный

Автор: 31416 15.1.2009, 03:10
Ну ладно а если не в текстарии а вообще в каком либо другом теге?  можно как нибудь сделать подсветку фрагментов не вмешиваясь в структуру документа, те через css например выделить определенные позиции?

Автор: bars80080 15.1.2009, 10:26
ну, вообще-то надо различать. textarea - это не один из ряда тэгов, это элемент ввода, как и input, содержимое в них вводится непосредственно пользователем, что налагает на браузер задачу постоянно отслеживать, что в нём находится, отсюда и простотота содеержимого - только голый текст.
в любых других элементах отметить какой-то текст не проблема, достаточно приложить услилия в javascript

Код

<html><body>
<script>
function zxc() {
    var sPos = prompt('введите начальную позицию', 5);
    var ePos = prompt('введите конечную позицию', 10);
    var el = document.getElementById('qw');
    var txt = el.innerHTML;
    var a1 = txt.split('>'); var ca1 = a1.length;
    var a2; var a3 = new Array();
    for(var i = 0; i < ca1; i++) {
        a2 = a1[i].split('<');
        a3[i] = a2[0];
    }
    txt = a3.join('');
    var txt1 = txt.slice(0, sPos); 
    var txt2 = txt.slice(sPos, ePos);
    var txt3 = txt.slice(ePos);
    txt = txt1 + '<span style="color: #ff0000;">' + txt2 + '</span>' + txt3;
    el.innerHTML = txt;    
}
</script>

<div id="qw">ну, вообще-то надо различать. textarea - это не один из ряда тэгов, это элемент ввода, как и input, содержимое в них вводится непосредственно пользователем, что налагает на браузер задачу постоянно отслеживать, что в нём находится, отсюда и простотота содеержимого - только голый текст.
в любых других элементах отметить какой-то текст не проблема, достаточно приложить услилия в javascript
</div>
<input type="button" value="select" onclick="zxc();" />
</body></html>

Автор: 31416 15.1.2009, 11:26
Ну вообще это и есть с изменением структуры документа
а мне бы хотелось что то типа:
<div class="marker_rules">фрагмент текста слово которое нужно подсветить</div>

далее идет фрагмент css

marker_rules
...

который описывает что например в этом диве нужно подсветить буквы с 20 по 30-ю.
вот что то типа такого ) чтобы сам хтмл фрагмент оставался 'чистым' без подмешивания span тегов.

можно как-нить такое сделать?

Автор: bars80080 15.1.2009, 11:39
нет, ибо всё оформление это и есть выделение нужного фрагмента тэгами с соответствующими свойствами.
между прочим, иного просто не существует. в том же самом ворде или ещё где-то

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)