# jQuery: CSS-Wert löschen



## DeluXe (5. Juni 2009)

Tag zusammen,

ich suche gerade eine Möglichkeit, mit der man einen CSS-Wert aus dem style-Attribut eines Elements löschen kann.
Weil mein Problem ist, das ich ein absolut positioniertes Element erst left, später jedoch right positioniere.
Da jedoch schon ein Wert für left gesetzt ist, wird die spätere Definition für right einfach ignoriert.

Hat jemand eine Idee wie man das Umsetzen könnte?
Ich finde dazu leider nichts brauchbares...

Danke euch. 

*edit*
Eine dreckige Variante ist mir eben noch eingefallen, jedoch muss ich da noch schauen ob das auch alle Browser so verstehen.

```
$( this ).css( 'right', '0px' ).css( 'left', '0px !important' );
```
Sprich den neuen Wert einfach !important setzen, aber toll ist was anderes..


----------



## Sven Mintel (5. Juni 2009)

Moin,

probiers mal so:

```
$('#elementId').css({'left':null,'right':'100px'});
```


----------



## Jan-Frederik Stieler (6. April 2011)

Hi,
stehe vor dem selben Problem.
Habe die Elemente einer Slideshow für deaktiviertes JS relativ positioniert und eine Top-Position vergeben. Für die Slideshow wird das Element mit einer absoluten Position und Bottom per jQuery neupositioniert. Leider funkt mir die Top-Position dazwischen.
Wie bekomme ich das Top da nun raus?
Deine Varianze, Sven funtzt bei mir irgendwie nicht.

Viele Grüß


----------



## DeluXe (6. April 2011)

Hey,

richtig, die Variante von Sven funktioniert leider nicht.
Ich habe das Problem nie gelöst bekommen, im Endeffekt habe ich alles so umgeschrieben, dass von Anfang an die korrekten Werte gesetzt werden. Das ist zwar aus Sicht der Performance alles andere als toll, aber was will man machen..

Ich hab mir mal eben den jQuery-Source angesehen, darüber ist es - wenn ich das richtig sehe - nahezu unmöglich den Wert zurückzusetzen.

Vielleicht hilft ja auch einfach folgendes

```
delete elem.style.top
```
oder

```
elem.style.top = undefined
```

Über jQuery sehe ich zumindest nach wie vor keinen Weg, leider. 

*edit*
Der Vollständigkeit zu Liebe:
- "null" wird von jQuery einfach verworden und der .css()-Aufruf im Endeffekt ignoriert
- "undefined" wird logischer Weise so interpretiert, als würde kein Wert übergen und der aktuelle Wert der Eigenschaft wird zurückgegeben
- "0" oder jeder anderen Zahl wird schlicht "px" angehangen und der Wert zugewiesen

Ich weiss nicht was passiert, wenn man "false" übergibt - darauf wird nicht geprüft, wenn ich das im Browser gerade alles richtig sehe.


----------



## CPoly (6. April 2011)

Wie wäre es mit dem Wert "auto", welcher auch den default Wert darstellt?


```
elem.style.top = 'auto';
```


----------



## Jan-Frederik Stieler (7. April 2011)

Hi,
der Tipp mit auto hat funktioniert!

Viele Grüße


----------

