2015-05-08 3 views
2

Простая проблема сегодня, но не может найти решение. У меня есть четыре divs - я бы хотел, чтобы #down был помещен прямо под #up, но в течение моей жизни я не могу понять это. Вот мой CSS и HTML.Позиция div под плавающим div

enter image description here

#up { 
 
    width: 33.3%; 
 
    height: 100px; 
 
    background: #CCCCCC; 
 
    float: left; 
 
} 
 
#down { 
 
    width: 33.3%; 
 
    height: 100px; 
 
    background: #999999; 
 
    float: left; 
 
} 
 
#mid { 
 
    width: 33.3%; 
 
    height: 200px; 
 
    background: #999999; 
 
    float: left; 
 
} 
 
#right { 
 
    width: 33.3%; 
 
    height: 200px; 
 
    background: #CCCCCC; 
 
    float: left; 
 
}
<div id="up"></div> 
 
<div id="mid"></div> 
 
<div id="right"></div> 
 
<div id="down"></div>

элементы должны оставаться поплыл влево.

+0

не случится с вашей текущей структурой разметки. Вам понадобится более сложная сетка с вложенной колонкой. – isherwood

+1

Просто используйте http://masonry.desandro.com/ – vittore

+1

, как насчет сохранения первого div с одинаковой высотой и выделения его в 2 вертикальных divs? – Rayon

ответ

1

может быть, попробовать с дополнительным DIV, чтобы получить вверх и вниз вместе?

<div id="up_down"> 
<div id="up"></div> 
<div id="down"></div></div> 
<div id="mid"></div> 
<div id="right"></div> 

И вы изменили CSS для:

up_down{ 
width: 33.3%; 
height: 200px; 
} 

#up { 
width: 100%; 
height: 50%; 
background: #CCCCCC; 
float: left; 
} 
#down { 
width: 100%; 
height: 50%; 
background: #999999; 
float: left; 
} 
+0

Большое спасибо, а также всем, кто предложил то же самое :) – ChrisWness

1

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

1

Как @isherwoord говорит в первом комментарии, завернуть Div # вверх и вниз Div # вместе в другой DIV, Forexample сНу # колонке

(я надеюсь, вы не возражаете путь Haml написания HTML.)

div#column 
    div#up 
    div#down 

div#middle 
div#right 
0

Если вы знаете высоты/ширину вы можете просто установить верхнюю позицию #down с position:relative;top:-100px;, чтобы вытащить его обратно.

Пример:

#up { 
 
    width: 33.3%; 
 
    height: 100px; 
 
    background: #CCCCCC; 
 
    float: left; 
 
} 
 
#down { 
 
    width: 33.3%; 
 
    height: 100px; 
 
    background: #999999; 
 
    float: left; 
 
    position:relative; 
 
    top:-100px; 
 
} 
 
#mid { 
 
    width: 33.3%; 
 
    height: 200px; 
 
    background: #999999; 
 
    float: left; 
 
} 
 
#right { 
 
    width: 33.3%; 
 
    height: 200px; 
 
    background: #CCCCCC; 
 
    float: left; 
 
}
<div id="up"></div> 
 
<div id="mid"></div> 
 
<div id="right"></div> 
 
<div id="down"></div>

+0

здесь не работает – vittore

+0

@ vittore - Как это работает? – j08691

+0

Я думаю, что что-то было с моим браузером, сейчас это работает, и я не вижу никаких изменений. – vittore

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