Абсолютное положение и переполнение: скрытые
<div id="parent" style="overflow:hidden; position:relative;">
<div id="child" style="position:absolute;">
</div>
</div>
Мне нужно показать дочерний элемент, который больше, чем его родительский элемент, но без удаления переполнения: hidden; Это возможно?
родительский элемент имеет position:relative;
дочерний элемент лишается, как только он выходит из него, границы родителей.
(элементы имеют дополнительный css-определитель, я просто добавляю атрибуты стиля для ясности)
Ответы
Ответ 1
Полностью невозможно сделать то, что вы хотите, с 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
}
Ответ 2
Код ниже работает как шарм.
<div id="grandparent" style="position:relative;">
<div id="parent" style="overflow:hidden;">
<div id="child" style="position:absolute;">
</div>
</div>
</div>
Ответ 3
Я обычно использую overflow: hidden как clearfix. В этом случае я сдаюсь и просто добавляю дополнительный div.
<div id="parent" style="position:relative;">
<!-- floating divs here -->
<div id="child" style="position:absolute;"></div>
<div style="clear:both"></div>
</div>
Ответ 4
Используйте css...
* {margin: 0; padding: 0;}
#parent {width: auto; overflow: hidden;}
#child {position: absolute; width: auto;}
С шириной auto она всегда будет добавляться к минимально возможному размеру; и с помощью reset это поможет поддерживать естественный поток.
Но если ребенок больше, чем родитель, то это будет невозможно. Но с этим CSS я думаю, что вы достигнете того, чего хотите до максимума того, что возможно.
Ответ 5
Решение тридцать на самом деле является хорошей идеей.
Здесь более ясный пример: 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;
}