Ich habe eine Schaltfläche, die eine maximale Breite mit Text innerhalb davon hat, die umhüllen kann. Wenn der Text umgebrochen wird, entspricht die Breite der Schaltfläche der maximalen Breite und lässt Leerraum auf der rechten Seite.Einfaches Umbrechen von Text in einer Schaltfläche, aber mit minimaler Breite ohne unnötigen Leerraum
Wie bekomme ich den Knopf, um seine Breite zu minimieren?
.button {
max-width: 120px;
border: 1px solid black;
display: inline-block;
word-wrap: break-word;
}
Hier ist ein einfaches Beispiel HTML (auch jsfiddle)
<div class="button">Account Navigation</div>
Diese Schaltfläche so aussieht endet (die rohe ascii Darstellung der Grenzen vergeben):
|----------------|
|Account |
|Navigation |
|----------------|
Aber Ich möchte, dass es so ist:
|----------|
|Account |
|Navigation|
|----------|
Aber wenn du einen Text geben, die aufgrund von längeren Wörtern mehr Platz braucht, dann sollte es die Taste weiter und brechen alle Worte machen, wenn sie zu lang sind wie diese:
|----------------|
|Supercalifragili|
|sticexpialidocio|
|us |
|----------------|
Dies ist für mich so grundlegend scheint - noch Ich konnte dieses genaue Problem nicht finden.
Bearbeiten: Die Schaltfläche ist eigentlich die Schaltfläche Kontonavigation, die auf diese Weise umschließt, aber der eigentliche Text in der Schaltfläche wird der Vor- und Nachname des Benutzers sein. Der Text in der Schaltfläche ist also dynamisch und kann in eine Zeile passen - oder in zwei oder drei Zeilen.
Auch ist es vorzuziehen, den gesamten Text zu zeigen, anstatt es mit einer Ellipse abzuschneiden. Ich hätte gerne eine CSS-Lösung, aber wenn sich herausstellen sollte, dass Javascript meine einzige Option ist, wäre es nicht das Ende der Welt - da ich bereits eine Logik verwende, um die Größe der Schriftart zu reduzieren, wenn die Schaltfläche zu groß wird .
Haben Sie Kontrolle über das HTML? Sie sollten wirklich einen Break-Tag zwischen den beiden Wörtern und dann mit "Word-Wrap: Break-Word": https://jsfiddle.net/ybm01nf8/ ** Bearbeiten: ** Ups. Ich denke, die richtige Regel ist "word-break: break-all;" Ich denke "word-wrap: break-word" funktioniert nur in Chrome oder so ähnlich. –
@JosephMarikle Der Text innerhalb der Schaltfläche ist benutzerdefiniert - in meinem Fall ist es tatsächlich der Name des Benutzers. Es könnte ein kurzer Name wie "Al Capone" sein, der innerhalb von 120px ohne Umbruch passt, in diesem Fall sollte der Text wegen eines Leerzeichens nicht immer umbrechen. – codefactor