2017-11-10 2 views
-2

Ich habe eine Liste von StringsVerwalten von Überläufen in divs

[ 'nicht bestanden', 'laufen', 'abgeschlossen' ........]

ich diese Listenelemente angezeigt werden sollen in ein div wie unten.

enter image description here

ich diese erfolgreich codiert, aber das Problem, das ich bin vor, wenn diese Liste div lasteten beginnt immer wächst. Was ich möchte, ist, wenn die erste Zeile im Div abgeschlossen ist und nicht mehr in der Lage ist, weitere Elemente aufzunehmen, dann sollte eine nächste Zeile mit einem richtigen Padding und Abstand in demselben Div gestartet werden.

So etwas wie unten (beachten Sie, dass andere Styling nicht in das Bild angewendet wird unten und Bild wird nur hinzugefügt zur Veranschaulichung, wie ich Linien wollen in einem div auf dem Bildschirm Resize gestapelt werden)

enter image description here

Beliebig Zeiger hier wird wirklich geschätzt.

Detaillierte Code kann Applying styles onHover and onClick

+1

Hinweis: 'Anzeige: Inline-Block' –

+0

Bitte fügen Sie den Code, den Sie haben und nicht funktioniert –

Antwort

1

Sie können versuchen, CSS Flexbox für diese mit flex-wrap: wrap Eigenschaft, wie:

ul { 
    display: flex; 
    flex-wrap: wrap; 
} 

Sehen Sie sich das folgende Snippet an:

ul { 
 
    list-style: none; 
 
    padding: 0; 
 
    margin: 0; 
 
    display: flex; 
 
    flex-wrap: wrap; 
 
} 
 

 
ul li { 
 
    border: 2px solid green; 
 
    margin: 10px 20px; 
 
}
<ul> 
 
    <li>Running</li> 
 
    <li>Completed</li> 
 
    <li>Failed</li> 
 
    <li>Failed on Dependency</li> 
 
    <li>In progress</li> 
 
    <li>Upcoming</li> 
 
    <li>Is Not Started</li> 
 
</ul>

hoffe, das hilft und das ist, was Sie brauchen.

+0

Wie unterscheidet es sich von der Antwort von brk gepostet? –

+0

@LokeshAgrawal Es wird 'flexbox' statt' inline-block' verwendet. Flex ist flexibler als Inline-Block. Sozusagen. –

+1

@LokeshAgrawal Erfahren Sie mehr über CSS Flexbox - https://css-tricks.com/snippets/css/a-guide-to-flexbox/ –

1

Sie benötigen einen Elternteil und ein Kind Container zu sehen. Jede dieser Text wird innerhalb eines span gewickelt, die im Inneren angeordnet sind, eine div

let listOfString = ['failed', 'running', 'completed', 'failed', 'running', 'completed', 'failed', 'running', 'completed', 'failed', 'running', 'completed'] 
 
let _string = ''; 
 
listOfString.forEach(function(item) { 
 
    _string += '<span class="itemText">' + item + '</span>' 
 
}) 
 
document.getElementById("textHolder").innerHTML = _string
#textHolder { 
 
    width: 200px; 
 
    height: auto; 
 
    border: 2px solid red; 
 
} 
 

 
.itemText { 
 
    width: auto; 
 
    padding: 10px; 
 
    display: inline-block; 
 
}
<div id='textHolder'></div>

+0

Sie stimmen mit Rastogi überein? –

+0

@LokeshAgrawal auf Browser-Unterstützung überprüfen – brk