Ich habe dieses Beispiel bei stackoverflow gefunden:
Zeichnen Sie den Kreis nur mit CSS
Was toll ist. Aber ich möchte wissen, wie ich dieses Beispiel so ändern kann, dass ich Text in die Mitte des Kreises einfügen kann?
Ich fand auch folgendes: Vertikales und horizontales Zentrieren von Text im Kreis in CSS (wie iPhone-Benachrichtigungsabzeichen)
aber aus irgendeinem Grund funktioniert es nicht für mich. Wenn ich folgenden Testcode erstelle:
<div class="badge">1</div>
Anstelle eines Kreises bekomme ich eine ovale Form. Ich versuche, mit dem Code herumzuspielen, um zu sehen, wie ich ihn zum Laufen bringen kann.
css
css-shapes
Punkt
quelle
quelle
border-radius:50%;
, wird IhrWenn Ihr Inhalt verpackt wird und eine unbekannte Höhe hat, ist dies die beste Wahl:
http://cssdeck.com/labs/aplvrmue
Code-Snippet anzeigen
quelle
display: absolute
das die Alingment bricht - aber einfache Lösung ist es, es in ein anderes div zu wickeln.Sie können CSS3 verwenden
flexbox
.HTML:
CSS:
Auf diese Weise können Sie vertikal und horizontal mittig ausgerichteten einzeiligen und mehrzeiligen Text erstellen.
Code-Snippet anzeigen
quelle
Ich denke, Sie möchten Text in einem Oval oder Kreis schreiben? warum nicht dieser?
quelle
Für ein Webdesign, das mir kürzlich gegeben wurde, musste ich die zentrierte und unbekannte Textmenge in einem Problem mit festen Kreisen lösen, und ich dachte, ich würde die Lösung hier für andere Personen teilen, die sich mit Kreis / Text-Kombinationen befassen.
Das Hauptproblem, das ich hatte, war, dass Text oft die Grenzen des Kreises sprengte. Um dies zu lösen, habe ich 4 Divs verwendet. Ein rechteckiger Container, der die maximalen (festen) Grenzen des Kreises angibt. Darin befindet sich das Div, das den Kreis mit einer Breite und Höhe von 100% zeichnet. Wenn Sie also die Größe des übergeordneten Elements ändern, ändert sich auch die Größe des tatsächlichen Kreises. Darin befindet sich ein weiteres rechteckiges Div, das mit% einen Textgrenzbereich erstellt, der verhindert, dass Text (größtenteils) den Kreis verlässt. Dann schließlich das eigentliche Div für den Text und die vertikale Zentrierung.
Als Code macht es mehr Sinn:
Sie können die Rahmenfarben in den Container-Divs auskommentieren, um zu sehen, wie sie eingeschränkt werden.
Dinge, die Sie beachten sollten: Sie können immer noch die Grenzen des Kreises überschreiten, wenn Sie zu viel Text einfügen oder zu lange Wörter / ungebrochenen Text verwenden. Es passt immer noch nicht zu völlig unbekanntem Text (z. B. Benutzereingaben), funktioniert jedoch am besten, wenn Sie vage wissen, wie viel Text Sie am meisten speichern müssen, und Ihre Kreisgröße und Schriftgröße entsprechend einstellen. Sie können den Textcontainer div so einstellen, dass ein Überlauf natürlich ausgeblendet wird, aber das sieht möglicherweise nur "kaputt" aus und ist kein Ersatz für die tatsächliche Berücksichtigung der maximalen Größe in Ihrem Design.
Hoffe das ist nützlich für jemanden! HTML / CSS ist nicht meine Hauptdisziplin, daher bin ich sicher, dass es verbessert werden kann!
quelle
Zeichnen Sie einen Kreis mit Text in der Mitte mit HTML-Tag und ohne CSS
quelle
font-size
,font-family
,x
, undy
in einer Reihe aufstellen. Für jeden, der Verdana nicht installiert hat, wird es nicht zentriert. Die Verwendungx="50%" y="50%" dominant-baseline="middle" text-anchor="middle"
löst das Problem ebenfalls nicht.Wenn es sich nur um eine Textzeile handelt, können Sie die Eigenschaft Zeilenhöhe mit demselben Wert wie die Elementhöhe verwenden:
Wenn der Text mehrere Zeilen enthält oder der Inhalt variabel ist, können Sie das Padding-Top verwenden:
Beispiel: http://jsfiddle.net/2GUFL/
quelle
Natürlich müssen Sie dazu Tags verwenden. Eine zum Erstellen des Kreises und eine für den Text.
Hier kann Ihnen ein Code helfen
Live Beispiel hier http://jsbin.com/apumik/1/edit
Aktualisieren
Hier mit ein paar Änderungen weniger kleiner
http://jsbin.com/apumik/3/edit
quelle
Für mich funktionierte nur diese Lösung für mehrzeiligen Text:
quelle
Wenn Sie Foundation 5 und Compass Framework verwenden, können Sie dies versuchen.
.sass Eingabe
.css Ausgabe
quelle
Ich habe dies von der YouTube-Seite erhalten, die wirklich einfach eingerichtet ist. Absolut wartbar und wiederverwendbar.
quelle
Einige der Lösungen hier haben in kleinen Kreisen für mich nicht gut funktioniert. Also habe ich diese Lösung unter Verwendung der absoluten Position gemacht.
Die Verwendung von SASS sieht folgendermaßen aus:
Und kann wie verwendet werden
Siehe Demo auf https://codepen.io/matheusrufca/project/editor/DnYPMK
Informationen zum Anzeigen von Ausgabe-CSS finden Sie im Snippet
Code-Snippet anzeigen
quelle
Eine Möglichkeit besteht darin, die Flexbox zu verwenden, um den Text in der Mitte auszurichten. Ich habe folgende Vorgehensweise gefunden:
HTML:
CSS:
Hier die plnkr: https://plnkr.co/edit/EvWYLNfTb1B7igoc3TZx?p=preview
quelle
Mit diesem Code reagiert es auch.
quelle
quelle
Ich habe einige Antworten von anderen Leuten und mit
float
und kombiniertrelative
es gab mir das Ergebnis, das ich brauchte.In HTML benutze ich ein div. Ich benutze es in a
li
für eine Navigationsleiste.quelle