Я бы хотел убедиться, что между переключателем и началом смежного ярлыка никогда не бывает разрыва строки. Однако я хочу, чтобы текст внутри метки был разрешен для переноса. Это возможно? Вы можете увидеть мои неудачные попытки, выполнив следующий HTML-код:
<html>
<head>
<style type="text/css">
.box {
border: solid gray 2px;
width: 200px;
margin: 5px;
}
.chopped {
overflow: hidden;
}
</style>
</head>
<body>
Ящики должны быть фиксированной ширины, поэтому необходимо обернуть длинный контент, как показано в первом окне ниже. И если кто-то пытается опубликовать смехотворно длинную строку без пробелов, нам нужно ее обрезать, а не расширять за пределы поля - проблема видна во втором окне:
<div class="box">
<input type="radio"/>
<label>This is a really long string with no spaces</label>
</div>
<div class="box">
<input type="radio"/>
<label>This_is_a_really_long_string_with_no_spaces</label>
</div>
<hr/>
Поэтому я добавляю «переполнение: скрытый», и дела обстоят несколько лучше, но мне все еще не нравится, как во втором поле есть разрыв строки между переключателем и его меткой:
<div class="chopped box">
<input type="radio"/>
<label>This is a really long string with no spaces</label>
</div>
<div class="chopped box">
<input type="radio"/>
<label>This_is_a_really_long_string_with_no_spaces</label>
</div>
<hr/>
Если я добавлю , переключатели будут рядом с их метками, и поэтому строка без пробелов теперь выглядит идеально. Однако это разрывает первую строку (строку с пробелами), поскольку она больше не переносится:
<div class="chopped box">
<nobr>
<input type="radio"/>
<label>This is a really long string with no spaces</label>
</nobr>
</div>
<div class="chopped box">
<nobr>
<input type="radio"/>
<label>This_is_a_really_long_string_with_no_spaces</label>
</nobr>
</div>
</body>
</html>