поместите div поверх div - PullRequest
       0

поместите div поверх div

0 голосов
/ 07 февраля 2020

У меня есть следующие 3 дел. наполнитель находится сверху lo go. Все 3 div'а выстраиваются правильно, когда у lo go есть margin-left: 100px. Но когда я изменяю margin-left: margin-left: 200px, фон переносится на следующую строку. Почему наполнитель перекрывается lo go, но я не могу получить наполнитель и lo go перекрывать bg?

var logo = document.querySelector( "#logo" );
  var bg = document.querySelector( "#bg" );



  var rect_logo = logo.getBoundingClientRect();
  var rect_bg =   bg.getBoundingClientRect();
  
  
  
  
  
  var filler = document.getElementById('filler');
  filler.style.height=logo.offsetHeight + "px";
  
  
#container{

height:100vw;}

#logo{
display:inline-block;
color:white;
background-color:lightblue;
position:relative;
width:20%;
height:5%;
text-align:center;
vertical-align:top;
z-index:10;
margin-left:100px;
overflow:visible;


}

#filler{
display:inline-block;
position:relative;
width:50px;
background-color:green;
vertical-align:top;
z-index:15;
margin-left:-75px;
overflow:visible;

}
#bg{
display:inline-block;
color:white;
background-color:blue;
width:500px;
height:90vw;
overflow:visible;
position:relative;
z-index:25;

}
<div id='container'>
   <div id='logo'>LOGO</div>
   <div id='filler'></div>
   <div id='bg'>BackGround</div>
</div>

1 Ответ

1 голос
/ 07 февраля 2020

Не уверен, отвечал ли я на это раньше, но вы достигаете этого, задавая позицию: абсолютную по отношению к фону. если вы хотите, чтобы фон появился за двумя div, уменьшите z-index. Кроме того, я думаю, что вы видите два других div друг над другом из-за отрицательного поля.

var logo = document.querySelector( "#logo" );
  var bg = document.querySelector( "#bg" );



  var rect_logo = logo.getBoundingClientRect();
  var rect_bg =   bg.getBoundingClientRect();
  
  
  
  
  
  var filler = document.getElementById('filler');
  filler.style.height=logo.offsetHeight + "px";
#container{

height:100vw;}

#logo{
display:inline-block;
color:white;
background-color:lightblue;
position:relative;
width:20%;
height:5%;
text-align:center;
vertical-align:top;
z-index:10;
margin-left:100px;
overflow:visible;


}

#filler{
display:inline-block;
position:relative;
width:50px;
background-color:green;
vertical-align:top;
z-index:15;
margin-left:-75px;
overflow:visible;

}
#bg{
display:inline-block;
color:white;
background-color:blue;
width:100%;
height:90vw;
overflow:visible;
position:absolute;
z-index:5;

}
<div id="container">
   <div id="logo">LOGO</div>
   <div id="filler"></div>
   <div id="bg">BackGround</div>
</div>

Лучшим подходом будет добавить два других div в фоновом div

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...