2016-03-21 3 views
0

Ich habe ein Problem mit Z-Index-Stacking. Das untere div erscheint über dem oberen Teil des oberen div, selbst wenn der z-index und der positionszustand das darunterliegende div unter dem div darüber liegen sollte.Z-Index funktioniert nicht, wenn negative Ränder verwendet werden

Ich habe eine JSFiddle eines Beispiels mit dem Code, den ich verwende.

https://jsfiddle.net/6hewonhb/

.above-box { 
 
    padding-left: 50px; 
 
    padding-right: 50px; 
 
    padding-top: 20px; 
 
    padding-bottom: 20px; 
 
    background: rgba(251, 47, 111, 0.2); 
 
    color: #fff; 
 
    z-index: 10 !important; 
 
    position: relative !important; 
 
    margin-top: 0px !important; 
 
    margin-right: 0px !important; 
 
    margin-left: 0px !important; 
 
    height: 100px; 
 
    width: 100px; 
 
} 
 

 
.below-box { 
 
    margin-top: -20px !important; 
 
    margin-left: 70px !important; 
 
    position: relative !important; 
 
    z-index: 5 !important; 
 
    background-color: #f00; 
 
    height: 100px; 
 
    width: 100px; 
 
}
<div class="above-box"> 
 
    TEST 
 
</div> 
 

 
<div class="below-box"> 
 
    TEST 
 
</div>

+0

Ihre Codes funktionieren einwandfrei ... weil Ihre Opazität niedrig ist, zeigt das so –

+0

Vielen Dank für die Hilfe. Es funktioniert tatsächlich in der Geige, aber nicht auf meiner Website. '.below-box' ist eigentlich ein Bild auf meiner Website und '.above-box' hat etwas Text mit einem Link darin, den dieses Bild abdeckt. Selbst wenn ich rgba auf 1 ändere, überdeckt das Bild in der unteren Box immer noch die Verbindung. Wenn es hilft, verwende ich WordPress mit Visual Composer und '.below-box' ist in der Reihe unter '.above-box' – ALN90

+0

Hallo ALN90, leider müssen Sie eine Minimal erstellen, ** Complete **, überprüfbar Beispiel. Ihr Beispiel ist keine vollständige Reproduktion Ihres Problems. Bitte kopieren Sie genügend Code von Ihrer Site in das JSFiddle, um das tatsächliche Problem zu reproduzieren, oder wir können diese Frage nicht beantworten. – TylerH

Antwort

1

es tatsächlich funktioniert. Seien Sie vorsichtig mit Ihren RGBA-Werten der .above-box Div.

Der vierte Wert der Opazität Parameter, hier Opazität auf 1 gesetzt ist:

background:rgba(251,47,111,1); 

See this fiddle

Außerdem ist es nicht fast überall in dem CSS-Code hinzufügen !important; benötigt.

BEARBEITEN: Überprüfen Sie für Ihr Problem bitte die Positionen jedes dieser Elemente im DOM, bevor Sie die z-index-Eigenschaft hinzufügen. Z-Index-Eigenschaft funktioniert gut mit Elementen, die in DOM-Dokument auf der gleichen Ebene sind.

Like this example

Auch können Sie diese sehr gute Erklärung von z-index auf diesen Beitrag lesen: Z-Index Relative or Absolute?

Hoffnung, das hilft.

+0

Danke für die Hilfe. Es funktioniert tatsächlich in der Geige, aber nicht auf meiner Website. '.below-box' ist eigentlich ein Bild auf meiner Website und '.above-box' hat etwas Text mit einem Link darin, den dieses Bild abdeckt. Selbst wenn ich rgba auf 1 ändere, überdeckt das Bild in der unteren Box immer noch die Verbindung. Wenn es hilft, verwende ich WordPress mit Visual Composer und '.below-box' ist in der Zeile unter '.above-box' – ALN90

+0

Vielleicht aktualisieren Sie die Geige mit einem mehr Look-a-Like-Code Ihres Problems und ich werde versuchen, es zu beheben und es Ihnen zu erklären :) Sie können auch einen Screenshot des Problems machen. –

+0

Die Geige wird wegen der Zeilen, Spalten, Klassen usw. zu schwierig sein. Der Screenshot der Ausgabe: http://thenewsomeway.co.uk/zindex-problems.jpg das Textfeld css ist: {padding-left: 50px; Auffüllrecht: 50px; padding-top: 20px; padding-bottom: 20px; Hintergrund: rgba (251,47,111,0,2); Farbe: #fff; Z-Index: 10! wichtig; Position: relativ!wichtig; Rand oben: -200px! wichtig; Rand rechts: 500px! wichtig; Rand links: -260px! wichtig; } Das Bild css ist: {margin-top: -350px! Wichtig; Rand links: 70px! wichtig; Position: relativ! wichtig; Z-Index: 5! wichtig; } – ALN90

Verwandte Themen