Я создаю форму в HTML, которая будет напечатана, с полями, которые должен быть записан получателем. В основном мне нужна одна строка, которая тянется от конца метки поля до края страницы. Вот как я сейчас это делаю:
<table width = "100%">
<tr>
<td width = "1%">
Label:
</td>
<td style = "border-bottom-style:solid; border-bottom-width:1px;">
</td>
</tr>
</table>
Это работает, но должен быть более простой способ сделать это, не требуя целого элемента таблицы. Есть идеи?






Как насчет использования тега span?
<span style = "border-bottom....">Text</span>
Вот мой CSS:
span.print_underline
{
display: inline-block;
height: 1em;
border-bottom: 1px solid #000;
}
Итак, ваш HTML будет выглядеть так:
<span class = "print_underline" style = "width: 200px"> </span>
Я оставил ширину, чтобы можно было использовать ее столько раз, сколько захочу, но вы можете указать ширину.
В качестве примечания я протестировал ту же концепцию с тегом div вместо тега span, и в некоторых ситуациях это не сработало. Вероятно, это связано с тем, что семантически неправильно помещать div в тег абзаца (вот почему я использовал диапазон), и я обычно использую теги абзаца вместо использования строк таблицы, как вы использовали.
просто имейте div с соответствующим полем слева. Блок-элементы по умолчанию всегда расширяются на всю ширину.
Смысл:
label {
float: left;
}
div {
margin-left: 10em;
border-bottom: 1px solid black;
height: 1em;
}
<label>label:</label>
<div></div>
он не будет растягивать всю ширину между меткой и правой стороной, но вы можете сделать так, чтобы метка скрывала нижнюю границу (используя цвет фона или что-то в этом роде), а div также расширялся полностью вправо (без допуск).
Если вам нужна правильная семантика, вы даже можете использовать ввод вместо div, установить для него отображение «блокировать» и исправить границы и фон.
Я думаю, что ваше решение лучше, чем ответы на данный момент. Единственное, что я бы изменил в вашем решении, это то, что я бы использовал класс css вместо встроенного.
У вашего решения будет лучшее выравнивание, чем при использовании пролетов. Ваш код будет выглядеть чище с элементами таблицы, чем с промежутками.
Кроме того, вы можете рассмотреть возможность размещения текстового поля в своей ячейке, чтобы ваши пользователи могли вводить информацию прямо на странице перед печатью.
На самом деле это генерирует письма для рассылки, поэтому взаимодействия с пользователем нет. Интервалы проще, но вы правы - метод таблицы дает мне лучший контроль выравнивания.