2012-01-03 2 views
0
<div id="home"> 
    <div id="fix">aaa<br />fff</div> 
    <div id="text">bvvvbbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb </div> 
</div> 
#fix { 
    width: 500px; 
    position: fixed; 
    background-color: blue; 
    top:0; 
    left:0; 
} 
#text { 
    background-color: green; 
    margin-top:auto; 
    width: 500px; 
    height: 700px; 
} 

Почему не margin-top работа в этом примере?"маржа-топ: Авто" не работает

div#fix, данные автоматически генерируется с PHP.)

Демо: http://jsfiddle.net/uK2RK/9/

EDIT: Теперь ДИВ # затруднительное крышку Div # текст. Я могу установить margin-top, но я не знаю, сколько строк у него есть, но это автоматически генерируется с помощью PHP.

+2

Можете ли вы объяснить, чего вы на самом деле пытаетесь достичь? –

+0

Что вы ожидаете? Margin-top: auto; 'to really * do *? Вы пытаетесь [по вертикали] (http://stackoverflow.com/search?q= [css] + вертикально + выровнять) [align] (http://stackoverflow.com/search?q= [css] + vertical + align & submit = поиск) div? –

+0

Автоматические вертикальные поля - странный зверь. – BoltClock

ответ

3

Он работает так, как предполагается (вы не сказали, как вы, думаете, предполагается работать).

В соответствии с разделом 10.6.3 части CSS 2.1 specification в margin-top со значением auto на незамещаемые блочного элемента (например, DIV), в нормальном потоке (который является #text) с overflow: visible (по умолчанию) обрабатывается как margin-top: 0.

Элемент поэтому расположен в 0 пикселах (если в игре нет других полей/прокладок, которых нет) от нижней части предыдущего элемента в нормальном потоке. Поскольку единственный предыдущий элемент (#fix) равен position: fixed и, следовательно, не в нормальном потоке, не существует такого элемента, поэтому #text будет размещен на расстоянии 0 пикселей от вершины его контейнера (#home). Эта позиция находится под #fix.

+0

и как я могу сделать margin-top из div # id? i edit ma answer –

+0

@RonCorazon - Вы не можете. Поскольку это «позиция: фиксированная», она вынимается из нормального потока, поэтому поля других элементов не касаются его. Вы могли бы подделать его, если бы знали его высоту. – Quentin

+0

здесь, на stackoverflow это возможно - оранжевое меню сверху. –

Смежные вопросы