2014-12-18 7 views
4

У меня есть родительский div и трое детей. я хочу, чтобы кто-то плавал слева от родителя, один был в точном центре родителя, а другой - плавать справа от родителя. но перемещенный правый элемент вышел за пределы родительского div. это не из-за нехватки места.float правый элемент вне родителя

fiddle

#boards { 
 
    width: 100%; 
 
    height: 500px; 
 
    background-color: white; 
 
    text-align: center; 
 
} 
 
#boards p { 
 
    font-family: 'bebas_neueregular'; 
 
    color: rgba(160, 224, 247, 1); 
 
    margin-top: 30px; 
 
    font-size: 50px; 
 
} 
 
.board_items { 
 
    width: 250px; 
 
    height: 300px; 
 
    background-color: gray; 
 
} 
 
#board_items_container { 
 
    width: 85%; 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    height: auto; 
 
    background-color: orange; 
 
    padding: relative; 
 
} 
 
#board1 { 
 
    float: left; 
 
    padding: relative; 
 
} 
 
#board2 { 
 
    margin-left: auto; 
 
    margin-right: auto; 
 
    padding: relative; 
 
} 
 
#board3 { 
 
    float: right; 
 
    padding: relative; 
 
}
<div id="boards"> 
 
    <p>TOP BOARDS</p> 
 
    <div id="board_items_container"> 
 
    <div id="board1" class="board_items"> 
 
    </div> 
 
    <div id="board2" class="board_items"> 
 
    </div> 
 
    <div id="board3" class="board_items"> 
 
    </div> 
 
    </div> 
 
</div>

+4

Что делает 'padding: relative;' do? Я никогда раньше не видел. Возможно, вы имели в виду 'position: relative;'? – Teemu

+0

padding: relative is not valid – atmd

+0

opps, мой плохой. auto complete в моем возвышенном сломе: P –

ответ

4

В вашем HTML, переместите правую всплывающий элемент перед элементом вы хотите, чтобы плавать вокруг:

<div id="boards"> 
    <p>TOP BOARDS</p> 
    <div id="board_items_container"> 
    <div id="board1" class="board_items"> <!-- float: left --> 
    </div> 
    <div id="board3" class="board_items"> <!-- float: right --> 
    </div> 
    <div id="board2" class="board_items"> <!-- not floated --> 
    </div> 
    </div> 
</div> 
+0

спасибо, человек, это сработало. –

+0

если вы могли бы дать объяснение, что пошло не так, почему это сработало, когда я переместил третий элемент выше ?? –

+0

Поскольку 'board2' является элементом уровня блока, он заполняет все доступное горизонтальное пространство. Если после него появится 'board3', он должен быть на следующей строке. Если он помещен раньше, он может находиться в одной строке, и это пространство больше не доступно для 'board2'. – Blazemonger

0

Попробуйте следующий код CSS:

#board1 { 
    display: inline-block; 
    float: left; 
    position: relative; 
} 
#board2 { 
    display: inline-block; 
    margin-left: auto; 
    margin-right: auto; 
    position: relative; 
} 
#board3 { 
    display: inline-block; 
    float: right; 
    position: relative; 
} 
Смежные вопросы