2017-01-17 3 views
0

Я новичок в CSS. Я пытаюсь расположить div (#inner) в нижнем правом углу другого div (#container). Я написал float: right;, но при запуске Html я вижу внутренний div в нижней части слева угол контейнера. Почему это? Что не так с кодом?Почему float: правый, делающий div float влево?

#container { 
 
    position: relative; 
 
    border: solid; 
 
    width: 70%; 
 
    height: 40%; 
 
} 
 
#inner { 
 
    position: absolute; 
 
    border: solid; 
 
    bottom: 0; 
 
    float: right; 
 
    width: 30%; 
 
    height: 30%; 
 
}
<div id="container"> 
 
    <div id="inner"> 
 
    ABC 
 
    </div> 
 
</div>

ответ

6

Использование float с абсолютным позиционированием на самом деле не имеет смысла. Я думаю, что вы хотите right:0 вместо float:right

#container { 
 
    position: relative; 
 
    border: solid; 
 
    width: 70%; 
 
    height: 40%; 
 
    overflow: auto; 
 
} 
 
#inner { 
 
    position: absolute; 
 
    border: solid; 
 
    bottom: 0; 
 
    right:0; 
 
    width: 30%; 
 
    height: 30%; 
 
} 
 
body, 
 
html { 
 
    height: 100%; 
 
}
<div id="container"> 
 
    <div id="inner"> 
 
    ABC 
 
    </div> 
 
</div>

+1

Здесь это полезная документация о позиционировании, вы должны взглянуть. http://www.barelyfitz.com/screencast/html-training/css/positioning/ –

+0

Это работает. Но можете ли вы объяснить, почему использование float не имеет смысла при использовании позиции: абсолютное? – cookya

+1

Второй ответ на http://stackoverflow.com/questions/11333624/float-right-and-position-absolute-doesnt-work-together проливает свет на то, почему – j08691

1

Просто удалите абсолютное положение. Кроме того, если вы хотите, чтобы контейнер, чтобы обернуть поплавка/с, добавьте «переполнения: авто» для элемента контейнера:

#container { 
 
    position: relative; 
 
    border: solid; 
 
    width: 70%; 
 
    height: 40%; 
 
    overflow: auto; 
 
} 
 
#inner { 
 
    border: solid; 
 
    bottom: 0; 
 
    float: right; 
 
    width: 30%; 
 
    height: 30%; 
 
}
<div id="container"> 
 
    <div id="inner"> 
 
    ABC 
 
    </div> 
 
</div>

+1

К сожалению, с этим решением внутренний div находится в правом верхнем углу а не в правом нижнем углу – cookya

+1

в этом случае вообще не использовать float, а только абсолютное положение. – Johannes

1

вы должны удалить «позицию: абсолютная»

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