Ошибка с вычисленным размером HTML-элементов относительного размера в javascript

Мой объект окна имеет ширину 1361px.

Ширина контейнера div установлена ​​на 90%, что теоретически составляет 1224,9 пикселя.

Однако вычисленный его размер ( $("#mycontainer").width() ) возвращает 1225 пикселей. К вашему сведению, вычисленное число, похоже, исходит от самого браузера, а не от jQuery.

Теперь проблема в том, что если я помещу в него два плавающих элемента div, соответственно, 1000 пикселей и 225 пикселей, они НЕ поместятся на одной строке, якобы потому, что 1225 пикселей > 1224,9 пикселей. По крайней мере, в FF и Chrome, нигде не проверял.

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

Я хотел знать, знает ли кто-нибудь, как это решить. Я даже не уверен, как получить процентный размер контейнера, чтобы сделать математику самостоятельно следующим образом:

var width = Math.floor($(window).width * $("#mycontainer").percentageWidth() / 100)

person Louis Ameline    schedule 09.05.2013    source источник
comment
Если у вас нет причин не делать этого, имеет смысл преобразовать значения пикселей элементов div внутри контейнера в процентные значения.   -  person thesonglessbird    schedule 09.05.2013
comment
На самом деле есть причина, на самом деле у меня внутри более двух div, и некоторые из них имеют фиксированную ширину, а не относительную.   -  person Louis Ameline    schedule 09.05.2013


Ответы (1)


CSS display: flex; — хороший способ исправить эти причуды в наши дни.

person Louis Ameline    schedule 12.03.2017