Я хочу создать многострочное поле для формы, подобной опросу, подобной той, что вы видите в интерактивных документах PDF.
Поле ввода должно охватывать всю ширину и обернуть в конце строки или, по крайней мере, после фиксированного количества символов. Подпись не обязательно должна находиться в одной строке:
Please introduce yourself: _____________________________ ________________________________________________________
Есть несколько вещей, которые я пытался достичь:
<p contentEditable="true">
или <textarea>
не работал у меня, потому что border-bottom:
работает только для последней строки, а text-decoration: underline;
не охватывает пустое пространство.<input type="text">
ниже друг друга и обернул текст, используя события javascript. Это работает для простого ввода текста, но не позволяет выбрать текст, вставлять текст где-то между ними. Это просто становится слишком сложным, и поскольку это должно поддерживать как можно больше устройств ebook, это, вероятно, не сохранится на этапе тестирования.Я хочу использовать это в ePUB-книге, но не стесняйтесь публиковать ответы о поведении веб-браузера. Однако я не хочу использовать JQuery.
Чтобы покрыть неизвестную высоту линии, вы можете использовать JavaScript для определения высоты строки путем добавления строки текста и измерения разности высот.
На втором этапе, когда height
содержит высоту строки внутри редактируемой области, вы можете динамически генерировать фоновое изображение:
var svg = "<svg xmlns='http://www.w3.org/2000/svg' width='1' height='" + height + "'><line x1='0' y1='" + height + "' x2='1' y2='" + height + "' stroke='black' stroke-width='1px'/></svg>";
your_element.setAttribute('style','background-image: url("data:image/svg+xml;utf8,' + svg + '")}');
Это создает svg-образ, который может быть проблемой совместимости. Если вам нужна широкая поддержка кросс-браузера, вы также можете:
В моем случае он должен был работать в iPad-приложении iBook для чтения *.ePUB-Books.