Абсолютное положение и переполнение: скрыто
<div id="parent" style="overflow:hidden; position:relative;">
<div id="child" style="position:absolute;">
</div>
</div>
мне нужно показать дочерний элемент, который больше, чем родительский элемент, но без удаления overflow:hidden; это возможно?
родительский элемент position:relative;
дочерний элемент удаляется, как только он выходит за пределы своих родителей.
(элементы имеют дополнительные css определены я просто поставил атрибуты стиля для ясности)
6 ответов:
совершенно невозможно делать то, что вы хотите с обоими
overflow: hiddenиposition: relativeна родительскомdiv.. вместо этого вы можете ввести дополнительный ребенокdivи движениеoverflow: hiddenк этому.см.:http://jsfiddle.net/thirtydot/TFTnU/
HTML:
<div id="parent"> <div id="hideOverflow"> <div style="width:1000px;background:#ccc">sdfsd</div> </div> <div id="child">overflow "visible"</div> </div>CSS:
#parent { position:relative; background:red; width:100px; height:100px } #child { position:absolute; background:#f0f; width:300px; bottom: 0; left: 0 } #hideOverflow { overflow: hidden }
приведенный ниже код работает как шарм.
<div id="grandparent" style="position:relative;"> <div id="parent" style="overflow:hidden;"> <div id="child" style="position:absolute;"> </div> </div> </div>
Я обычно использую overflow: hidden как clearfix. В этом случае я сдаюсь и просто добавить дополнительный див.
<div id="parent" style="position:relative;"> <!-- floating divs here --> <div id="child" style="position:absolute;"></div> <div style="clear:both"></div> </div>
использовать css...
* {margin: 0; padding: 0;} #parent {width: auto; overflow: hidden;} #child {position: absolute; width: auto;}С помощью width auto он всегда будет добавляться к наименьшему возможному размеру; и с помощью сброса он поможет поддерживать естественный поток.
но если ребенок больше в любом случае, чем родитель, то это не будет возможно. Но с этим CSS я думаю, что вы достигнете того, что вы хотите, до максимума того, что возможно.
решение thirtydot на самом деле хорошая идея.
вот более ясный пример:http://jsfiddle.net/y9dtL68d/
HTML
<div id="grandparent"> <div id="parent"> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> <p>this has a lot of content which ...</p> </div> <div id="child"> dudes </div> </div>CSS
#grandparent { position: relative; width: 150px; height: 150px; margin: 20px; background: #d0d0d0; } #parent { width: 150px; height: 150px; overflow:hidden; } #child { position: absolute; background: red; color: white; left: 100%; top: 0; }
Я считаю, что каждый разработчик front-end сталкивался с этой ситуацией, по крайней мере один раз. Допустим, вам нужно абсолютное положение чего-то... а затем вы пытаетесь переместить его в каком-то направлении, и бум он исчезает... вы забыли, что родитель был настроен на переполнение:скрытый и теперь ваш элемент теряется в скрытом бесконечном вакууме.Существует css трюк, чтобы сделать это.Пожалуйста, найдите ниже демонстрационный пример для него...
<br><br><br> <div class="grand-parent"> <div class="parent">P <div class="child">child</div> </div> </div> css code: .grand-parent { width:50px; height:50px; position:relative; background-color: grey; } .parent { width:10px; height:30px; overflow:hidden; background-color: blue; } .child { position:absolute; width:50px; height:20px; background-color: red; top:-10px; left:5px; }
Comments