Без картинок это сложно.
Лучшая ставка: поместите вторую текстовую область с идентичными настройками (размер шрифта, высота строки, отступы ...), но с другим стилем (без цвета фона, без границ) слева от вашей исходной текстовой области. Сделайте его доступным только для чтения, вытащите его из поворота вкладок (tabindex=99999
может сделать трюк или просто отключите его ) и вставьте в него номера строк. Насколько я могу судить, это должно работать хорошо и правильно, оно должно даже пережить такие вещи, как клиент, изменяющий размер шрифта вручную в своем браузере.
Вы даже можете использовать position: relative
и большое значение padding-left:
в исходной текстовой области, чтобы переместить счетчик текстовой области в исходную.
Недостаток: счетчик строки не будет следовать за вертикальной прокруткой текстовой области. Смотрите комментарии ниже.