Как уже упоминали другие, плавучие элементы - путь сюда.
Это было бы моим решением:
<p class="details">
<span class="label">Street:</span>
Some Street or other.
<br />
<span class="label">City:</span>
A City.
<br />
</p>
С CSS, который выглядит следующим образом:
p.details {
padding-left: 200px;
}
p.details span.label {
float: left;
clear: left;
width: 200px;
margin-left: -200px;
}
Поскольку основной текст не является плавающим, это позволяет избежать любых проблем, когда этот текст длинный и должен быть перенесен; он останавливает плавающий элемент, становящийся широким и затем плавающий ниже метки. Это означает, что не требуется никаких особых случаев, когда этот текст является многострочным, например, если вы хотите иметь многострочный адрес.
Аналогичным образом, этот метод также работает, если данные метки нужно переносить на несколько строк, поскольку следующая метка очищает предыдущее значение с плавающей запятой.
Наличие разрыва строки означает, что оно также хорошо ухудшается и выглядит так, как вы ожидаете, если не используете CSS.
Этот метод очень хорошо работает для разметки форм, где вместо пролетов используются элементы <label>
, а абзацы можно выбрать в CSS как любой абзац, который является потомком <form>
.