JavaScript (html) Element zentrieren?
Hallo ich habe in JavaScript ein Element erstellen lassen und die Größe perfekt angepasst, nun muss es nur noch zentriert werden aber irgendwie funktioniert nichts, egal was ich versuche bleibt es immer in der linken oberen Ecke!
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
var canvas = document.createElement("canvas");
canvas.width = map.clientWidth;
canvas.height = map.clientHeight;
2 Antworten
Im Hinblick auf die von dir geteilten Informationen ist map undefiniert und das canvas-Element wird dem Dokument nicht zugefügt.
Wenn man map als eigene existierende Box versteht, könnte eine Lösung folgendermaßen aussehen:
<!doctype html>
<head>
<title>Example</title>
<style>
body {
align-items: center;
display: flex;
height: 100vh;
justify-content: center;
margin: 0;
}
canvas {
border: 1px solid; /* only for demo */
}
#map {
height: 200px;
width: 200px;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
const map = document.getElementById("map");
const canvas = document.createElement("canvas");
canvas.width = map.clientWidth;
canvas.height = map.clientHeight;
map.appendChild(canvas);
</script>
</body>
Die Flexbox zentriert das div-Element. Letzterem wird auch via appendChild-Methode das canvas-Element angehängt. Wichtig ist außerdem, dass das div-Element via CSS eine spezifische Höhe und Breite zugeordnet wird, andernfalls würden die Properties clientWidth und clientHeight nur 0 zurückgeben.
Hey,
du hast vergessen die CSS-Eigenschaft 'width' anzugeben.