2017-02-27 5 views
-1

Ich habe eine Zeichenfolge, die x lang ist (lassen Sie sagen, 10.000 für Argument willen). Ich kann dann diese Zeichenfolge innerhalb einer <div> anzeigen. Bisher kann ich die ganze Saite in einem Div anzeigen, was gut funktioniert.Ist es möglich, eine Zeichenkette über mehrere divs anzuzeigen?

So folgende ich habe die Unter der Annahme:

String - "Diese Saite ist 10000 Zeichen lang"

divs - [div1] [div2] [div3]

Ich möchte um die Zeichenfolge aufzuteilen und über mehrere <div> Elemente basierend auf der Breite/Höhe des <div> anzuzeigen.

Ergebnis - [Diese Zeichenfolge] [10000] [Zeichen]

Bisher kann ich den String in Teilstrings und Anzeigeteil des Strings mit einer maxCharPerDiv Variable

meine JS brechen

var contents; //this is my endless string 
    var content; 
    var maxCharPerDiv = 1000; 
    var currentDiv = ""; 
    var divsArray = []; 

    function contentBreak(str, len) { 
    if (str.length < len) { 
     return divsArray.push(str); 
    } else { 
     divsArray.push(str.substring(0, len)); 
    } 
    contentBreak(str.substring(len), len); 
    } 

    for (var i = 0; i < contents.length; i++) { 
    content = contents[i].content; 
    contentBreak(content, maxCharPerDiv); 
    } 

    for (var k = 0; k < divsArray.length; k++) { 
    console.log(divsArray[k] + "\n"); 
    } 

css

div { 
    width: 380px; 
    height: 582px; 
    background: white; 
    color: #ccc; 
} 

Das obige funktioniert und gibt die Teilstrings im Terminal zurück, aber ich bekomme nur 1 auf meinem Div angezeigt, da der Rest über die eingestellte Höhe/Breite hinausfließt.

Fragen:

  1. Ist es möglich, eine solche Anzeige
  2. zu erreichen
  3. Ist es möglich, auf die Breite/Höhe eines div so basiert zu tun?

Sehr schätzen Sie einen Anstupser in die richtige Richtung.

Danke.

+0

_Ist es möglich, die Breite/Höhe eines div so basiert sie _ Definitiv nein, es sei denn, Sie Monospace-Schrift haben (und sogar in diesem Fall können Dinge wie das Umbrechen von Wörtern die Logik durchbrechen). – hindmost

+1

Ich habe keine Ahnung, warum versuchen Sie das zu tun, aber wenn es nur für die Anzeige Zwecke ist, möchten Sie vielleicht CSS mehrspaltigen Layouts überprüfen: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Columns/Using_multi-column_layouts – helb

+0

@hindmost oh ... Ich verstehe. Hier hatte ich gehofft, es war lol! Danke, dass du mich informiert hast, ich muss einen Weg finden, die Saite in ein separates Element zu zerlegen und sie dann wieder in ihre jeweiligen Divs zu bringen, vielleicht? Oder versuchen Sie das von @helb vorgeschlagene 'CSS multi-column'-Layout. Und es dient nur zur Anzeige. Ich habe 2 separate divs (könnte mehr verwenden) und nur eine Zeichenfolge. Und danke für den Vorschlag, ich werde einen Grund dafür haben. – Ange

Antwort

0

erstellen ein div class dann CSS-Code hinzufügen zu den Z-Index

zum Beispiel der div ändern

CSS:

#always-on-top {z-index: 9999999;} 

den Trick tun sollten ;-)

+0

Danke für die Antwort.Obwohl dies getan wird, wird nur die Stapelreihenfolge meiner divs gesetzt, wie in [w3schools] (https://www.w3schools.com/cssref/playit.asp?filename=playcss_z-index&preval=2) erwähnt. Dadurch kann meine Zeichenfolge nicht auf mehreren Divs angezeigt werden :( – Ange

Verwandte Themen