2012-02-21 5 views
0

Если ему заданы div и последовательность вложенных div с свойствами float: left, как вы делаете правый край последнего div в последовательности «stick» на правый край родительского элемента div всякий раз, когда правый край родительского div перемещается и таким образом, что два края перемещаются вместе, даже если содержимое последнего div превышает доступную комнату?Выравнивание плавающего div с родительским div

 
+----------------------------------------+ 
| parent div        | 
| +-------------+ +---------------------+| 
| |    | |      || 
| | div 1  | | div 2    >>||<< the right edge of div 2 
| | float: left | | float: left   || aligns with the right edge 
| |    | |      || of the parent div 
| +-------------+ +---------------------+| 
+----------------------------------------+ 

EDIT: Условия Я хотел бы упомянуть, является то, что дивы до последнего разрешено иметь фиксированную ширину, но ширина последнего DIV должна зависеть от его содержимого, а положение правого края родительского div. Кроме того, последний div должен быть размещен слева.

+0

Возможный дубликат http://stackoverflow.com/questions/623325/how-to-get-a-floating-div-to-fill-available-space-within-its-parent-div ? –

ответ

1

Если вы должны поплавать: оставил последний div, тогда только способ правильно его выровнять - установить ширину обоих элементов. OTHERWISE не возможно. ИЛИ вы должны удалить float: left on second div.

http://jsfiddle.net/K9a8p/

-2

ваш лучший способ получить через эту петлю, чтобы дать в последний Div класс - LastChild и добавить border-right:0 к этому классу .. еще, вот еще быстро исправить

Ваш CSS

.container{ 
border:2px solid black; 
height:40px; 
width:auto; 
overflow:hidden; 
} 
.ele{ 
float:left; 
height:20px; 
width:30%; 
overflow:hidden; 
border:3px solid red; 
} 
.container div:last-child{ 
border-right:0; 
} 

Ваш HTML

<div class="container"> 
<div class="ele" > </div> 
<div class="ele" > </div> 
<div class="ele" > </div> 
</div> 

вот скрипка объясняя тот же ..

DEMO

Следует отметить совместимость браузера для: последний-ребенка -

вот еще один ответ - Using the last-child selector

Internet Explorer 6 не имеет никакой поддержки ни.

IE7 и IE8 поддерживают: first-child и not: last-child, но a необходимо указать.

Оба работают во всех версиях Firefox. Я тестировал Chrome для Windows, Opera 9.64 и Safari 3 и 4 для Windows, и все они работают в этих версиях.

+0

плохой ответ http://jsfiddle.net/QXDBW/ –

+0

@TimBjames обновил ответ скрипкой .. :) –

+0

Разве не все, что 'border-right: 0' делает, скрывает правую границу div если у div были границы, которые должны быть нарисованы в соответствии с его стилем, который имеет мало, если не имеет ничего общего с вопросом? –

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