Me gustaría asegurarme de que nunca haya un salto de línea entre un botón de radio y el comienzo de su etiqueta adyacente. Sin embargo, deseo el texto dentro de la etiqueta que se permitirá envolver. es posible? Se puede ver mis intentos fallidos por hacer que el código HTML siguiente:¿Cómo evito los saltos de línea entre un botón de opción y su etiqueta, al tiempo que dejo los saltos de línea dentro de la etiqueta?
<html>
<head>
<style type="text/css">
.box {
border: solid gray 2px;
width: 200px;
margin: 5px;
}
.chopped {
overflow: hidden;
}
</style>
</head>
<body>
Las cajas deben ser de ancho fijo, por lo que necesita mucho contenido para ser envuelto, como se ve en el primer cuadro de abajo. Y si alguien trata de colocar una cadena ridículamente largo, sin espacios, lo necesitamos para ser truncado, en lugar de extenderse más allá del borde de la caja - el problema es visible en la segunda casilla:
<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/>
Por lo tanto, añadir "overflow: hidden", y las cosas son un poco mejor, pero todavía no me gusta la forma en la segunda caja tiene un salto de línea entre el botón de radio y su etiqueta:
<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/>
Si añado <nobr>, los botones de opción están al lado de sus etiquetas, por lo que la cadena sin espaciado ahora se ve perfecta. Sin embargo, esto rompe la primera cadena (el uno con espacios), puesto que ya no envuelve:
<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>
Esto también podría cambiarse al revés: use div.radioinput donde está la etiqueta y use la etiqueta en lugar de span.wrappable. –
Oh, claro, y eso podría tener un sentido más semántico en términos de que la etiqueta es el envoltorio alrededor del texto, pero luego pierdes la característica "clic en el texto de la etiqueta para seleccionar el botón de radio" (puedes volver a obtener esa función dando al botón de radio una identificación y usando "para" en la etiqueta). –
Puede tener la función de seleccionar el botón radion haciendo clic en la etiqueta más fácilmente definiendo una etiqueta * para * una identificación, por ejemplo etiqueta para = "ID_de_radio_button" – 0x4a6f4672