CSS: как сделать блок div * не * занять место в Родительском контейнере
если у меня есть 2 div теги:
<div id="parentDiv">
<div id="childDiv"><!-- other html --></div>
<!-- parent div html -->
</div>
Я хочу содержание <div id="childDiv">
для перекрытия содержимого <!-- parent div html -->
.
причина (в случае, если это выглядит как плохой дизайн кода никому): Мне нужно взломать обходной путь на сайтах google, я не могу добавить пользовательский код на боковой панели nav, только в основном пространстве html, я хочу плавать div, который не занимает места и относительно позиционировать его над боковой панелью, чтобы обойти принудительное ограничение.
Я могу сделать все, кроме остановки childDiv
от занимая место в нем бастардизированный контейнер главной страницы.
4 ответов
вы можете дать ему абсолютную позицию и перемещаться по ней с полями.
#childDiv { position: absolute; margin-top: -100px; margin-left: -100px; }
Как насчет простого
#childDiv {height:0; overflow:visible;}
но вы, вероятно, хотите, чтобы он имел цвет фона, хм? Хм.
вы должны взять childblock из потока. Лучший способ сделать это position: absolute
на ребенка div
и position: relative
на родительском div
.
#parentDiv {
position: relative;
}
#childDiv {
position:absolute;
top:0;
left:0;
width:100%;
}
Если вам нужно поднять содержимое вокруг или перекрыть материал, который находится " вне " боковой панели, вы можете использовать отрицательные поля для увеличения ширины childDiv или переместить его вверх (чтобы покрыть отступы или поля, которые вы не можете переопределить).
Если вам нужно, чтобы #childDiv покрывал весь #parentDiv, вы можете использовать немного JavaScript, чтобы установить минимальную высоту на childDiv, а затем добавить цветной фон или что-то для покрытия любого контента.
var parentHeight = jQuery('#parentDiv').height();
jQuery('#childDiv').css('min-height',parentHeight + 'px');