2010-12-01 21 views
9

Tengo un feed de Twitter en mi blog. Está funcionando muy bien, pero hay un problema con las URL largas en los tweets. Las URL largas rompen el diseño al extenderse más allá del ancho del contenedor.Forzar un salto de línea en una URL

Mi código es el siguiente:

<ul id="twitter_update_list"> 
    <!-- twitter feed --> 
</ul> 

<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script> 
<script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&amp;count=3"></script> 

El guión blogger.js contiene la función de devolución de llamada, que toma los datos de la solicitud Twitter y rellena <li> elementos a un predefinido <ul>.

estoy usando el siguiente CSS para romper automáticamente la línea (para los navegadores que soporta):

#twitter_update_list li span a { 
    word-wrap: break-word; 
} 

que sé sobre la etiqueta <wbr> y estaba tratando de usarlo con una función de jQuery que parecía esto:

$(document).ready(function(){ 
    $("#twitter_update_list li span a").each(function(){ 
     // a replaceAll string prototype was used here to replace "/" with "<wbr>/" 
    }); 
}); 

sin embargo cuando intenté usar ese fragmento, que causaría IE deje de responder y que no es bueno.

Estoy buscando un bloque de código que pueda agregar que solucionará el problema de salto de línea (agregando un salto de línea a URL largas). Firefox y Chrome funcionan correctamente, pero IE7 e IE8 necesitan algo más. (No me importa IE6.)

Respuesta

7

Pruebe jugar con la propiedad CSS white-space.

Comprobar este enlace para más información: http://perishablepress.com/press/2010/06/01/wrapping-content/

+2

En realidad, acabo de encontrar esta pregunta que es casi exactamente como la tuya: http://stackoverflow.com/questions/1470810/wrapping-long-text-in-css – Nacho

+0

El primer enlace fue genial, pero ninguno de esos propiedades trabajadas en IE8. Decidí usar el desbordamiento: oculto en el LI para solucionar el problema en IE8. – Jazzerus

+0

gracias por el enlace interesante, @ign – Matt

1

Sé que esto es antiguo puesto, pero desde que terminé aquí con una búsqueda en Google relacionados - Otra persona podría también.

que tenía que hacer una larga url rompible, y puesto que no era utilizable para mi sitio (es decir, no en los estándares HTML5, y IE8 parece ignorarlo)

<style>.wbr { display: inline-block; width: 0px;}</style> 

Dado que me genera la url que estaba capaz de insertar <span class="wbr">&nbsp;</span> antes de las barras diagonales.

así que terminé con:

www.example.com<span class="wbr">&nbsp;</span>/somepath<span class="wbr">&nbsp;</span>/blah.php 

que parece normal en el navegador, pero permite a wraping palabra a los/marcas

www.example.com/somepath/blah.php 

Esperanza que ayuda a la siguiente persona que visita

+0

Gracias Terre! Ayudó mi problema. Versión Yo uso ligeramente modificado: sustituyo y con y no pongo   porque yo no lo quiero en URL cuando el usuario copia la URL y la pega en donde quiera. –

2

Puede intentarlo usando: word-break: break-all;

div { 
 
    background: lightblue; 
 
    border: 1px solid #000; 
 
    width: 200px; 
 
    margin: 1em; 
 
    padding: 1em; 
 
} 
 
.break { 
 
    word-break: break-all; 
 
}
<div> 
 
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate vitae fugiat fuga fugit cum <a href="" class="break">http://www.ThisLongTextBreaksBecauseItHasWordBreak-BreakAll.com</a> facere mollitia repellat hic, officiis, consequatur quam ad cumque dolorem doloribus ex magni necessitatibus, nisi accusantium.</p> 
 
    
 
    <p>Voluptatibus atque inventore <a href="">http://www.looooooooooooooooooooooooooooongURL.com</a> veritatis exercitationem nihil minus omnis, quisquam earum ipsum magnam. Animi ad autem quos rem provident minus officia vel beatae fugiat quasi, dignissimos 
 
    sapiente sint quam voluptas repellat!</p> 
 
</div>

Sólo asegúrese de aplicar esto sólo para el enlace. De lo contrario, todas las demás palabras se romperán también.:)