В тех случаях, когда я использую плавающие элементы, подобные этим, я обычно должен быть уверен, что контейнерный элемент всегда будет достаточно большим для ширины обоих плавающих элементов плюс желаемое поле, чтобы все поместилось внутри него.Самый простой способ сделать это, очевидно, это дать обоим внутренним элементам фиксированную ширину, которая будет правильно помещаться внутри внешнего элемента, например:
#container {width: 960px;}
#element1 {float:left; width:745px; margin-right:15px;}
#element2 {float:right; width:200px;}
Если вы не можете сделать это, потому что это макет ширины масштабированиядругой вариант - каждый набор измерений должен быть в процентах, например:
#element1 {float:left; width:70%; margin-right:10%}
#element2 {float:right; width:20%;}
Это сложно, когда вам нужно что-то вроде этого:
#element1 {float:left; width:70%; margin-right:10%}
#element2 {float:right; width:200px;}
В подобных случаях я нахожу, чтоиногда лучшим вариантом является не использовать плавающие и использовать относительное / абсолютное позиционирование, чтобы получить такой же эффект, как этот:
#container {position:relative;} /* So IE won't bork the absolute positioning of #element2 */
#element1 {margin-right:215px;}
#element2 {display: block; position:absolute; top:0; right:0; height:100%; width:200px;}
Хотя это не плавающее решение, оно приводит к появлению рядом столбцовгде они имеют одинаковую высоту, и один может оставаться текучим, в то время как другой имеет статическую ширину.