ОБНОВЛЕНИЕ: Даже document.getElementById("chatbox").style.maxHeight = "calc(100% - 54px);";
с JS не сработало, поэтому проблема в присвоении свойству CSS. Изменение значения вручную на вкладке Элементы инструментов разработчика Chrome работает должным образом.
Существует событие, когда я создаю p и вставляю его перед элементом . Затем мне нужно пересчитать максимальную высоту div , чтобы избежать появления ненужных полос прокрутки. Чтобы пересчитать максимальную высоту, я создаю строку в JS:
var mhstr = "calc(100% - 25px - "+pin.getBoundingClientRect().height.toString()+"px);"
, pin , являющуюся вновь созданным p элементом.
Строка возвращается, как предполагается: calc(100% - 25px - 29px);
, однако document.getElementById("chatbox").style["max-height"]
не принимает ее и остается неизменной.
Исходное значение по умолчанию для max-height - calc(100% - 25px);
, при этом 25px - фиксированная высота другого div, который имеет фиксированную позицию.
Я пытался добавить 25 к pin.getBoundingClientRect (). height, но он все равно не работал.
Изменение значения max-height чтобы строка mhstr в инструментах разработчика Chrome выполнила свою работу, но я хочу, чтобы она была изменена с помощью скрипта.
Вот объект div:
<div id="chatbox" style="overflow-y: auto; max-height: calc(100% - 25px);">
Вот код, который я использую, чтобы попытаться изменить значение максимальной высоты:
var mhstr = "calc(100% - 25px - "+pin.getBoundingClientRect().height.toString()+"px);"
console.log(mhstr);
document.getElementById("chatbox").style["max-height"] = mhstr;
Примечание: mhstr возвращает calc(100% - 25px - 29px);
, изменяя ["max-height"] или maxHeight до фиксированного значения, такого как 0, «2px» или «100%», работает нормально, но не меняется на mhstr.