2016-04-08 15 views
0

Çocuğun ve torununun arasına nasıl bir eleman yerleştirebilirim? Böyle bir biçimlendirme var:DOM çocuğu ile DOM alt yapısı arasında bir öğeyi istifleme bağlamına yerleştirin

<div id="main"> 
    <div id="img-container"> 
     <img id="img"> 
    </div> 
</div> 

Ve stilleri şunlardır:

#main { 
    margin-top: 300px; 
    position: relative; 
    z-index: 1; 
} 
#img-container { 
    margin-top: -150px; 
    position: relative; 
    z-index: 0; 
} 
#img { 
    display: block; 
    position: relative; 
    z-index: 2; 
} 

Şimdi sırası olmalıdır

  1. img-konteyner
  2. ana
  3. img
İşe beklenen nasıl Wrong

: şimdi nasıl çalışır

, Right

(teşekkürler @ ralph.m için görüntüler için)

+0

'z-index' özellik bu hakkı için Javascript kullanmak istiyorum –

+0

DOM ağacının aynı seviyede elemanları ile verimli çalışır: Ya da bunun gibi daha basit bir şey yapabilir? – Phiter

+1

Bunu neden veya neden yapmaya çalıştığınızın bazı gerekçelerini veya kapsamını ekleyin. – theblindprophet

cevap

2

Gerçekten sadece sen stilleri tersine çevirebilir vb katmanları yeniden sıralamak zorunda kalmadan bunu görsel efekti elde edebilirsiniz Bu görünümü almak için bu elemanlar üzerinde.

#main { 
 
    position: relative; 
 
    background: #e7e7e7; 
 
    width: 600px; 
 
    padding: 0 50px; 
 
    margin: 50px; 
 
} 
 

 
#main::after { 
 
    content: ''; 
 
    width: 500px; 
 
    height: 200px; 
 
    position: absolute; 
 
    z-index: -1; 
 
    left:50%; 
 
    margin-left: -250px; 
 
    top: -50px; 
 
    background: #30353b; 
 
} 
 

 
#img-container { 
 
    position: relative; 
 
    width: 400px; 
 
    top: -20px; 
 
    margin: 0 auto; 
 
}
<div id="main"> 
 
     <div id="img-container"> 
 
      <img src="https://unsplash.it/400/200"> 
 
     </div> 
 
    </div>

+0

Teşekkürler. Ancak z-endeksi kullanmak bana daha mantıklı bir yaklaşım gibi geliyor, değil mi? – Zhigalin

+0

Diğer yorumlarda da belirtildiği gibi, bu zor olabilir. Beklediğiniz gibi oynamamanız gereken çeşitli faktörlere bağlıdır. Bu öğelerle çok fazla uğraşmayacağınız sürece, onları, * görünmediklerinde bile, ters sırayla görünecek şekilde şekillendirecek kadar kolay. –

1

Soru net değil ama sen sadece böyle bir şey mi arıyorsun? (Temelde img-kap üzerinde top ile margin-top değiştirmeniz yeterlidir.)

#main { 
 
    margin-top: 100px; 
 
    position: relative; 
 
    z-index: 1; 
 
    background: #e7e7e7; 
 
    width: 500px; 
 
    padding: 0 40px; 
 
} 
 
#img-container { 
 
    top: -50px; 
 
    position: relative; 
 
    z-index: 0; 
 
    background: #30373b; 
 
    width: 400px; 
 
    padding: 40px; 
 
} 
 
#img { 
 
    display: block; 
 
    position: relative; 
 
    z-index: 2; 
 
}
<div id="main"> 
 
    <div id="img-container"> 
 
     <img id="img" src="https://unsplash.it/400/200"> 
 
    </div> 
 
</div>

+0

Tam olarak yaptığım şey bu. – Zhigalin

+0

Ama ne yapmak istemedim. Sorudaki sipariş maddesine bakın. – Zhigalin

+0

Tüm bu soru, çalışmak zorunda olduğu için z-index'in çalışmasını sağlamaktır. – Zhigalin