Text-overflow-ellipsis nicht mit einige benutzerdefinierte schriftart
Ich versuche momentan, um ein Textfeld zu verstecken, überfüllt von text. Es funktioniert gut, aber für einen Teil. Ich bin mit
text-overflow: ellipsis;
Diese sollten drei Punkte ("..."
) an der Stelle, wo mein text ist abgeschnitten, aber es nicht legen drei Punkte, sondern Sie stellen das Zeichen, welches aussieht wie drei Punkte (so genannte 'Ellipse').
Die schriftart, die ich derzeit benutze nicht dieses Zeichen, so zeigt es einige andere zufällige Zeichen anstelle von drei Punkten.
Hat jemand eine einfache Lösung (ohne javascript eingebunden bitte nur in CSS), während meine schriftart für den text ?
- nur zur info... der name des Charakters ist kein Zufall, 'Ellipse'. Ich bin gespannt zu hören, Antworten auf diese Frage, wie auch-ich hatte zu greifen, um die änderung der schriftart für die Browser, die dieses problem hatte (Husten Husten IE).
- Sie könnte verwenden Sie einen unicode-Bereich in einer @font-face-Deklaration, aber die Unterstützung ist sehr beschränkt.
- Ja, danke, es funktioniert auf Chrome. Ich bin noch auf der Suche nach einer besseren Lösung, aber zumindest ist es ein Anfang, vielen Dank.
- Können Sie ein Beispiel für uns zu sehen? Schön zu sehen, welche schriftart, die Sie verwenden usw.
- das hilft mir wirklich so gut 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vollständig imitieren die Funktionalität von
text-overflow: ellipsis
ohne JavaScript zu verwenden, während immer noch die vollständige browser-Unterstützung (text-overflow: "..."
funktioniert nur in Firefox 9 in der Zeit von diesem post, und ist vollständig nicht verfügbar auf jedem anderen browser) ist extrem schwierig (wenn nicht unmöglich).Die einzige Lösung, die ich denken kann, ohne irgendwelche "hacks" ist zu Bearbeiten Sie Ihre font-Datei, erstellen einer unicode-Zeichen für die
...
Auslassungszeichen-Charakter. Ich habe neben keine Erfahrung in diesem Bereich, aber hier ist ein link, der scheint ziemlich gut: http://sourceforge.net/projects/ttfedit/Hier ist etwas HTML-code, den ich habe:
Und einige CSS:
Dadurch wird ein pseudo-element auf der Oberseite des
#wrapoff
div, an der rechten oberen Ecke, so dass der Inhalt wietext-overflow: ellipsis
. Der Nachteil dabei ist, dass die "Ellipse" zeigen immer da, unabhängig davon, ob die Inhalte tatsächlich reicht aus und überläuft. Dies kann nicht behoben werden, da es keine Möglichkeit gibt, die Verwendung von CSS, um herauszufinden, ob der text überläuft, von der Seite.Hier ein JSFiddle:
http://jsfiddle.net/ysoxyuje/
Ist die Grenze, um zeigen Sie die Größe des Elements selbst.
http://jsfiddle.net/cbppL/707/
HTML
CSS
Nicht eine sehr gute Lösung. Es wird davon abhängen, welche Art von hintergrund Sie haben. Hoffe, Dass Hilft!
Statt "Ellipse", Sie können tatsächlich geben Sie Ihren eigenen Satz von Zeichen zu bedeuten, dass der text überlaufen.
Wenn Sie Ihre eigene schriftart hat, die den Zeitraum definiert, Sie sollten in der Lage sein, um Sie nur drei Zeiten, wie diesen:
Hier ein JSFiddle es in Aktion: http://jsfiddle.net/x5e6yv21/
Stellen Sie sicher, Sie haben
mit Ihrem
Aus, was ich verstehe Ihr problem ist, dass die schriftart, die Sie verwenden, Sie fehlt der Auslassungszeichen-Charakter.
Schnell dieses Problem beheben könnten Sie diesen letzten Brief mit der
::last-letter
pseudo-element-Selektorund ändern Sie die
font-family
- Eigenschaft auf eine andere schriftart, unterstützt Auslassungszeichen _So, ich weiß, das ist nicht ideal, aber es ist ein work-around. Die CSS3-Spezifikation sagt, dass die Auslassungspunkte, müssen Ihre Stil aus dem container, die Sie sind in. Dieser funktioniert einwandfrei in allen Browsern außer dem IE8/9 was braucht es Auslassungszeichen Stil aus dem ersten Brief des Containers. Der work-around ist, schlage ich vor, um wickeln Sie den text in Ihre "übergelaufen" - Elemente mit inline-element, geben den äußeren container eine schriftart wo die Auslassungszeichen Zeichen ist definiert und geben die inline-element innerhalb Ihrer benutzerdefinierten schriftart. Es würde in etwa so Aussehen fiddle: http://jsfiddle.net/u9dudost/2/
Wenn Sie brauchen, um hinzuzufügen, IE8/9-Unterstützung, fügen Sie den folgenden:
Müssen Sie mit dem folgenden zusammen: