Подтвердить что ты не робот

Абсолютное положение и переполнение: скрытые

<div id="parent" style="overflow:hidden; position:relative;">
  <div id="child" style="position:absolute;">
  </div>
</div>

Мне нужно показать дочерний элемент, который больше, чем его родительский элемент, но без удаления переполнения: hidden; Это возможно? родительский элемент имеет position:relative; дочерний элемент лишается, как только он выходит из него, границы родителей.

(элементы имеют дополнительный css-определитель, я просто добавляю атрибуты стиля для ясности)

4b9b3361

Ответ 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;
}