Festlegen der oberen und linken CSS-Attribute


74

Aus irgendeinem Grund kann ich die CSS-Attribute "top" und "left" mit dem folgenden JavaScript nicht festlegen.

var div = document.createElement('div');
div.style.position = 'absolute';
div.style.top = 200;
div.style.left = 200;
document.body.appendChild(div);

Mit Firebug kann ich sehen , dass das divdie bekommt positionSatz "absolute"aber die topund leftAttribute nicht gesetzt ist !

Dies ist für Firefox 3.6.

Antworten:


121

Ihr Problem ist, dass die Eigenschaften topund lefteine Maßeinheit erfordern, nicht nur eine bloße Zahl:

div.style.top = "200px";
div.style.left = "200px";

11

Sie können auch die setProperty-Methode wie unten verwenden

document.getElementById('divName').style.setProperty("top", "100px");

2

div.styleergibt ein Objekt ( CSSStyleDeclaration ). Da es sich um ein Objekt handelt, können Sie alternativ Folgendes verwenden:

div.style["top"] = "200px";
div.style["left"] = "200px";

Dies ist beispielsweise nützlich, wenn Sie auf eine "variable" Eigenschaft zugreifen müssen:

div.style[prop] = "200px";

0

Wir können eine neue CSS-Klasse für div erstellen.

 .div {
      position: absolute;
      left: 150px;
      width: 200px;
      height: 120px;
    }

1
Bitte fügen Sie Ihrem Code einige Erklärungen hinzu, damit andere daraus lernen können
Nico Haase
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.