Ваша математика не совсем верна.
Давайте начнем с глазных яблок ...
Коробки Simple Message
имеют ширину:
2% + 46% + 2% + (1 px BORDER on each side) + (10px PADDING on each side)
Это больше, чем на 50%!
Блочная модель CSS говорит, что ширина отступов, границы и поля добавляются за пределы ширины, определенной CSS.элемент (теоретически, на практике старые версии IE не следуют этому правилу , более новые версии делают).
Таким образом, определения border
и padding
для .message
откармливайте свои Simple Message
ящики.
Если вы уменьшите ширину ваших Simple Message
ящиков до 41%, они окажутся в одном ряду.
Давайте рассмотрим особенности, чтобы понять, почему....
Разбивка
ОК, вот ваши коробки:
class box
500px wide with a 1px border all around
Pixels left to play with ==> 500
class content
15px padding on the OUTSIDE of .content on all side.
content is INSIDE .box, the maximum width of .content is 500px
but the padding is taking up some of this space (15*2 = 30px)
Pixels left to play with ==> 470
class message info
The maximum width of anything inside .content is 470px
There are two _50% boxes, so each can have a max total width
(including all the padding, border, margin) of 470/2 = 235px
Width of
+ 46% of 470px = 216.2 = 216px
+ 2*10px padding = 20px
+ 2*1px border = 2px
+ 2*(2% of 470px) = 2*9.4 = 2*9 = 18px
---------------------------------------
256px! ==> 2*256 > 470
Теперь, почему ширина 41% работает?
class box
Pixels left to play with ==> 500
class content
Pixels left to play with ==> 470
class message info
Width of
+ 41% of 470px = 192.7 = 193px
+ 2*10px padding = 20px
+ 2*1px border = 2px
+ 2*(2% of 470px) = 2*9.4 = 2*9 = 18px
---------------------------------------
233px ==> 2*233 < 470
Наконец-то 42% не работает, потому что
42% of 470 = 197.4 = 197.
197 + 20 + 2 + 18 = 237
237 * 2 = 474........ and 474 > 470
В общем
Предлагаю взглянуть на вещииспользуя Firebug .Убедитесь, что вы переключаетесь между вкладкой Layout
, которая показывает вам модель блока, и вкладкой Style
, где вы можете временно протестировать изменение вашего CSS!
Для решения проблемы сворачивающейся коробки я предлагаю:
.box .content {
/* This lets .content expand in height with the floating divs inside it */
overflow: auto;
}