Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/09/2013, 15:29
Avatar de jonni09lo
jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 3 meses
Puntos: 397
Respuesta: Poesía y responsive

Hola, siguiendo el siguiente link y usando el código allí propuesto, he hecho lo que le faltaba: agregar el corchete.

Este seria el código:

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2.     <head>
  3.         <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4.         <title>Document...</title>
  5.         <style type="text/css">
  6.         body {
  7.             color: white;
  8.             background-color: black;
  9.         }
  10.         #estrofa {
  11.             color: black;
  12.             background-color: white;
  13.             width: 19em;
  14.             font-size: 16px;
  15.         }
  16.         #estrofa div {
  17.             text-align: right;
  18.             line-height:20px;
  19.             min-height:20px;
  20.         }
  21.         </style>
  22.         <script type="text/javascript">
  23.         var estrofa;
  24.         var versos;
  25.         var totVersos = [];
  26.         var contEstrofa = "";
  27.  
  28.         function versea(){
  29.             estrofa = document.getElementById("estrofa");
  30.             var versos = estrofa.innerHTML.replace(/<BR>/gi, "</span><br>\r\n<span>");
  31.             estrofa.innerHTML = "<span>" +versos+ "</span>";
  32.             versea2();
  33.         }
  34.  
  35.         function versea2(){
  36.             for(i=0; i<estrofa.getElementsByTagName("span").length; i++){
  37.                 totVersos[i] = estrofa.getElementsByTagName("span")[i].offsetWidth;
  38.             }
  39.  
  40.             for(i=0; i<totVersos.length; i++){
  41.                 estrofa.getElementsByTagName("span")[i].style.width = totVersos[i] + "px";
  42.             }
  43.  
  44.             contEstrofa = estrofa.innerHTML;
  45.             contEstrofa = contEstrofa.replace(/span/gi,"div").replace(/<br>/gi,"");
  46.             estrofa.innerHTML = contEstrofa;
  47.            
  48.             for(i=0; i<estrofa.getElementsByTagName("div").length; i++){
  49.                 var versoHeight = estrofa.getElementsByTagName("div")[i].offsetHeight;
  50.                 //alert(versoHeight);
  51.                 if(versoHeight > 20){
  52.                     estrofa.getElementsByTagName("div")[i].innerHTML += ']';
  53.                 }
  54.             }
  55.         }
  56.         </script>
  57.     </head>
  58.     <body>
  59.         <h2>Simula un formato de poesía.</h2>
  60.         <div id="estrofa">
  61.             Existe un recurso usado para escribir poesía<br>
  62.             que corta el ancho de una línea si no cabe el verso.<br>
  63.             Pregunté en el Foro porque de veras no sabía<br>
  64.             si en CSS hay alguna forma para hacerlo.<br>
  65.         </div>
  66.         <input type="button" value="formato verso" onclick="versea(); this.disabled='disabled';" />
  67.     </body>
  68. </html>

El demo esta en el siguiente link.

Esta podría ser una base para lograr lo que deseas. A mi punto de vista el cabo suelto que quedaría por resolver es el asunto de el alto del div que contiene el verso, considerando de que tiene un min-height y un line-height de 20px dos lineas podrían ser 40px. pero como algunos navegadores el alto puede variar (el de una sola linea) habría que hacer mejores pruebas (poniendo un alto maximo de 25 30 pixeles)

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.