2016-03-21 6 views
-2

Ich habe einige Elemente wie:Wie erzwinge HTML-Elemente in eine Zeile?

Texttttttttttttttttttttttttttttttttttttttttttt... 
             Float text 

aber ich will es sein wie:

Texttttttttttttttttttttttttttttttttttt...Float text 

Ich versuche zu verwenden, um die absolute Position

<div> 
    <div style="overflow: hidden; white-space: nowrap; text-overflow:ellipsis"> 
Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 
    <div style="float: right">Float text</div> 
    </div> 

Das ist etwas wie angezeigt wird Methode, aber auf diese Weise werden die Ellipsen nicht angezeigt.

Gibt es eine Möglichkeit, das kann ich tun?

HINWEIS:

Nicht sicher, was falsch ist, aber viele Leute vorschlagen, mit der Inline-Block oder Spanne Weise muss beide nicht funktionieren. Während man den Fließtext vor 'Textttt' setzt, funktioniert es.

Antwort

2

Setzen Sie den rechten schwebten Block vor dem Text, den Sie es mit in Linie sein wollen.

<div style="overflow: hidden; white-space: nowrap; text-overflow:ellipsis"> 
    <div style="float: right">Float text</div> 
    Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 
</div> 

https://jsfiddle.net/pkfwnan7/

+0

Das ist erstaunlich, es funktioniert wirklich, obwohl ich nicht weiß warum. – dspjm

1

Verwenden display: inline-block zu machen, die div Inline

<div> 
    <div style="overflow: hidden; white-space: nowrap; text-overflow:ellipsis"> 
Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 
    <div style="display:inline-block">Float text</div> 
    </div> 
0

Versuchen Sie, alles in einer span class Einwickeln

<span> 
<div style="overflow: hidden; white-space: nowrap; text-overflow:ellipsis> 
</div> 
</span> 
<span> 
<div style="float: right>Float text</div> 
</div> 
</span> 
2

aktualisieren

Für eine der folgenden Lösung haben Sie Ellipsen auf dem linken Text, es braucht eine Breite festgelegt, entweder explizit oder durch den nicht genügend Platz und overflow: hidden/haben.

Sie mögen dies zu tun, wo die äußere div (wrap) hat white-space: nowrap und die inneren Displays wie Inline-Block

.wrap { 
 
    white-space: nowrap; 
 
    max-width: 400px; 
 
} 
 
.wrap > * { 
 
    display: inline-block; 
 
    vertical-align: top; 
 
} 
 

 
.wrap > div:first-child { 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    max-width: 100%; 
 
}
<div class="wrap"> 
 
    <div> 
 
    Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 
 
    text text text text text text text text text text text text 
 
    </div> 
 
    <div>Float text</div> 
 
</div>

Oder mit display: table

.wrap { 
 
    display: table; 
 
    table-layout: fixed; 
 
    width: 500px; 
 
} 
 
.wrap > * { 
 
    display: table-cell; 
 
} 
 

 
.wrap > div:first-child div { 
 
    overflow: hidden; 
 
    text-overflow: ellipsis; 
 
    white-space: nowrap; 
 
}
<div class="wrap"> 
 
    <div> 
 
    <div>Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt</div> 
 
    </div> 
 
    <div>Float text</div> 
 
</div>

1

Verwendung Spanne statt

<span>Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt</span> 
<span>Float text</span> 

Oder setzen display: inline-block; auf die div-Elemente

Auch die Mutterelementbreite haben nicht fixiert sicher. Aber das wird kein Problem sein, da Sie white-space: nowrap;

1

Setzen Sie den Text in eine Spanne. Keine Notwendigkeit, zu CSS hinzuzufügen.

<span>Text Here</span> 
0

die gebuchten Antworten sind etwas richtig, aber Sie können sogar Ihre Markup vereinfachen:

<div style="white-space: nowrap;"> 
    Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt Float text 
</div> 

Fiddle

Die Leerzeichen Eigenschaft verwendet wird, zu beschreiben, wie Leerzeichen innerhalb des Elements ist abgewickelt.

nowrap Collapses Leerzeichen wie für normale, sondern unterdrückt Zeilenumbrüche (Textumbruch) innerhalb Text.

MDN on white-space

+0

das geht nicht, was OP will, wie die 'Texttttt ...' kann nicht mit drei Punkten verkürzt werden, während 'Beibehaltung dieses Float Text' Weg. – DarkDust

+0

Ah, scheint, ich habe nicht sorgfältig genug gelesen. Mein Fehler! – Lukas

0

beide Elemente Geben Sie eine Anzeige: inline-block-Eigenschaft. Sie hatten mehrere Anführungszeichen und ein schließendes div-Tag fehlte. All dies wurde behoben und kann in diesem JSFiddle gesehen werden.

Die aktualisierte html unter:

<div> 
    <div style="overflow: hidden; white-space: nowrap; text-overflow:ellipsis;display:inline-block"> 
     Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt 
    </div> 
    <div style="float: right;display:inline-block"> 
     Float text 
    </div> 
</div> 
-2

versuchen Bootstrap

<div class="row"> 
    <div class="col-md-8">Texttttttttttttttttttttttttttttttttttttttttttttttttttttttttt</div> 
    <div class="col-md-4">Float text</div> 
    </div> 
+1

Hinzufügen schwerer Bibliotheken, um ein einfaches Problem wie dieses zu lösen, ist ein No-No. – DarkDust

Verwandte Themen