2016-04-19 11 views
0

Ich versuche, Zeilen zu erstellen, in denen Ellipsen vom Ende der linken Zelle bis zum Anfang des Textes der rechten Zelle vorhanden sind. Das Problem ist, dass die Länge der linken Zelle variiert und die Länge der rechten Zelle ebenfalls variiert. Ich habe versucht, indem Sie 2 divs ausrichten und dann das rechte div mit Überlauf beenden: Ellipse und dann das rechte div mit Ellipse beginnend, aber ich weiß nicht, wie man vor dem Anfang des richtigen Textes wie viele Punkte addiert werden sollte.Ellipsen überspannende Zeilen

Zum Beispiel:

Eigenschaft 1 ..................................... .Wert 1

Einige 2 Immobilien ................. Einige Wert 2

+0

Does Mutterelementbreite festgelegt hat, auch Sie können Ihre HTML posten? –

+0

Der Elternteil kann eine feste Breite haben. Es gibt viel HTML, das funktioniert, aber es wird eine Geige hinzufügen. – Avitus

+0

Eine nicht sehr korrekte, aber praktikable Lösung ist das Hinzufügen eines mittleren div mit 'border-bottom: 1px dotted # 000000;' – cdm

Antwort

3

können Sie verwenden flex, order und ein Pseudo die Punkte zu zeichnen

.ellipsis { 
 
    display:flex; 
 
} 
 
.ellipsis span { 
 
    order:2; 
 
} 
 
.ellipsis span:first-of-type { 
 
    order:0; 
 
} 
 
.ellipsis:before { 
 
    content:''; 
 
    display:inline-block;/* optionnal*/ 
 
    border-bottom:dotted 1px; 
 
    flex:1; 
 
    order:1; 
 
    margin:0 0.2em 0.25em;/* you may tune this */ 
 
} 
 
body { 
 
    padding-top:50px; /* demo snippet in the way */ 
 
    }
<p class="ellipsis"><!-- any other tag as li or div does too, CSS does the styling --> 
 
    <span>ellipsis in</span> 
 
    <span>between</span> 
 
    </p>

2

Sie können dies mit einem Pseudo-Element und einem Hinweis auf flexbox tun.

ul { 
 
    list-style-type: none; 
 
    width: 80%; 
 
    margin: auto; 
 
    padding: 0; 
 
} 
 
.list { 
 
    display: flex; 
 
} 
 
.first { 
 
    margin-right: 0.5em; 
 
    flex: 1; 
 
    display: flex; 
 
} 
 
.price { 
 
    text-align: right; 
 
    flex: 0 0 4em; 
 
} 
 
.first:after { 
 
    content: ''; 
 
    border-bottom: dotted 1px black; 
 
    flex: 1; 
 
}
<ul> 
 
    <li class="list"> 
 
    <i class='first'>Co-Pay:</i> 
 
    <i class="price">$150.00</i> 
 
    </li> 
 
    <li class="list"> 
 
    <i class='first'>Pay:</i> 
 
    <i class="price"> $5.00</i> 
 
    </li> 
 
    <li class="list"> 
 
    <i class='first'>Co-Pay: item</i> 
 
    <i class="price"> $15.00</i> 
 
    </li> 
 
    <li class="list"> 
 
    <i class='first'>Co-Pay: great deal</i> 
 
    <i class="price"> $1.00</i> 
 
    </li> 
 
</ul>

+0

Diese Antwort sieht einfacher zu verstehen als http://stackoverflow.com/a/36726483/227299, da es nicht Ordnung macht –

Verwandte Themen