Ich habe schon eine Weile nach einer Lösung gesucht, aber nichts gefunden. Vielleicht sind es nur meine Suchbegriffe. Nun, ich versuche, das Canvas-Center entsprechend der Größe des Browserfensters zu gestalten. Die Leinwand ist 800x600. Und wenn das Fenster unter 800x600 fällt, sollte auch die Größe geändert werden (aber das ist im Moment nicht sehr wichtig).
105
Antworten:
Geben Sie der Zeichenfläche die folgenden CSS-Stileigenschaften:
Bearbeiten
Da diese Antwort sehr beliebt ist, möchte ich noch ein paar Details hinzufügen.
Die obigen Eigenschaften zentrieren die Zeichenfläche, div oder einen anderen Knoten, den Sie relativ zu seinem übergeordneten Knoten haben, horizontal . Die oberen oder unteren Ränder und Polster müssen nicht geändert werden. Sie geben eine Breite an und lassen den Browser den verbleibenden Bereich mit den automatischen Rändern füllen.
Wenn Sie jedoch weniger eingeben möchten, können Sie beliebige CSS-Kurzschrift-Eigenschaften verwenden, z
Das vertikale Zentrieren der Leinwand erfordert jedoch einen anderen Ansatz. Sie müssen die absolute Positionierung verwenden und sowohl die Breite als auch die Höhe angeben. Setzen Sie dann die Eigenschaften left, right, top und bottom auf 0 und lassen Sie den Browser den verbleibenden Bereich mit den automatischen Rändern füllen.
Die Zeichenfläche zentriert sich basierend auf dem ersten übergeordneten Element, das
position
aufrelative
oder gesetzt wurdeabsolute
, oder dem Körper, wenn keines gefunden wird.Ein anderer Ansatz wäre die Verwendung
display: flex
, die in IE11 verfügbar istStellen Sie außerdem sicher, dass Sie einen aktuellen Doctype wie xhtml oder html 5 verwenden.
quelle
Sie können Ihrer Zeichenfläche die ff CSS-Eigenschaften geben:
quelle
Zentrieren Sie das div einfach in HTML:
Ändern Sie einfach die Höhe und Breite auf was auch immer und Sie haben ein zentriertes Div
http://jsfiddle.net/BVghc/2/
quelle
Um das Canvas-Element horizontal zu zentrieren, müssen Sie es als Blockebene angeben und seine Eigenschaften für den linken und rechten Rand dem Browser überlassen:
Wenn Sie es vertikal zentrieren möchten, muss das Canvas-Element unbedingt positioniert sein:
Wenn Sie es horizontal und vertikal zentrieren möchten, gehen Sie wie folgt vor:
Weitere Informationen finden Sie unter: https://www.w3.org/Style/Examples/007/center.en.html
quelle
Die obigen Antworten funktionieren nur, wenn Ihre Leinwand dieselbe Breite wie der Container hat.
Dies funktioniert unabhängig davon:
quelle
Verwenden Sie diesen Code:
quelle
Ich hatte das gleiche Problem, da ich Bilder mit vielen verschiedenen Breiten habe, die ich nur mit Höheninformationen lade. Durch Einstellen einer Breite kann der Browser das Bild strecken und zusammendrücken. Ich löse das Problem, indem ich die Textzeile kurz vor der image_tag-Zeile zentriere (auch float: left loswerden;). Ich hätte mir gewünscht, dass der Text linksbündig ist, aber dies ist eine kleine Unannehmlichkeit, die ich tolerieren kann.
quelle
In
text-align: center;
auf den übergeordneten Tag von<canvas>
. Das ist es.Beispiel:
quelle