div 内容的自动高度太小
div automatic height is too small for content
我遇到的情况是,我有一个通常显示在 jsp 中的报告,现在我有一个打印件,其中需要多次包含所述页面的多个实例,所以这是一个合并报告之类的。为了避免使用相同的键向模型添加值会出现的问题,我们想出了这种方法来包含 jsp.
<c:forEach var="prodTest" items="${listProductionTest}">
<div style="display:block" id="chargeReport${prodTest.report.recId}">
</div>
<script type="text/javascript">
$.get("ChargeReportContent?recId=${prodTest.report.recId}", function( data ) {
$("#chargeReport${prodTest.report.recId}").html(data);
});
</script>
ChargeReportContent 是 returns jsp 具有值的端点。它可以正确检索数据,但是 div 高度完全错误,导致两个报告重叠。 auto height 似乎给了自己足够的高度来只包含报告的第一部分。
显示块似乎不起作用。这些报告的大小应该都在 1500 像素左右,但将高度设置为固定值并不是一个真正的选择,因为大小可能会根据报告或更新而改变。
请帮忙!
div中元素的位置是什么?
确保它们不是固定的、绝对的或浮动设置的。
默认情况下,div 设置为显示块,您可以尝试将其设置为 flex
同事建议这是因为html是程序化填充的,大小不准确。我们从来没有想出一个干净的方法来解决这个问题,但我们想出的最好办法是自己计算所需的高度,然后进行设置。例如
标题始终为 92px,配方始终为 256px,Reportlines 大小 = 42+(21(materials+1)),注释部分如果没有注释则为 23px,如果有注释则为 42,等等。
如果在 JSP 中我们无法轻易检索到一些警报,我们会创建一个不可见的输入来存储值,并由模型添加,例如
<input id="alarmCounter${report.recId}" style="display: none" value="${alarmCount}"></input>
然后我们检索 val 以在计算中使用它。
找到总和后我们只是在获取包含页面的get中设置它
$.get("ChargeReport?recId=${prodTest.report.recId}", function(数据){
$("#chargeReport${prodTest.report.recId}").html(data);
let alarmCount = 0;
alarmCount =parseInt($('#alarmCounter${prodTest.report.recId}').val());
var chartsize = 400*($('#chartExists${prodTest.report.recId}').val() == 'true' ? 1 : 0)
var pixelsNeeded= 92 + 256 + 205
+ 42+ 21*(${fn:length(prodTest.report.reportLines)}+1)
+ 21*(alarmCount+2)
+19+24*${!empty prodTest.report.comment}
+ chartsize + 51
+50;
$('#chargeReport${prodTest.report.recId}').css("height",pixelsNeeded+"px");
我遇到的情况是,我有一个通常显示在 jsp 中的报告,现在我有一个打印件,其中需要多次包含所述页面的多个实例,所以这是一个合并报告之类的。为了避免使用相同的键向模型添加值会出现的问题,我们想出了这种方法来包含 jsp.
<c:forEach var="prodTest" items="${listProductionTest}">
<div style="display:block" id="chargeReport${prodTest.report.recId}">
</div>
<script type="text/javascript">
$.get("ChargeReportContent?recId=${prodTest.report.recId}", function( data ) {
$("#chargeReport${prodTest.report.recId}").html(data);
});
</script>
ChargeReportContent 是 returns jsp 具有值的端点。它可以正确检索数据,但是 div 高度完全错误,导致两个报告重叠。 auto height 似乎给了自己足够的高度来只包含报告的第一部分。
显示块似乎不起作用。这些报告的大小应该都在 1500 像素左右,但将高度设置为固定值并不是一个真正的选择,因为大小可能会根据报告或更新而改变。
请帮忙!
div中元素的位置是什么? 确保它们不是固定的、绝对的或浮动设置的。 默认情况下,div 设置为显示块,您可以尝试将其设置为 flex
同事建议这是因为html是程序化填充的,大小不准确。我们从来没有想出一个干净的方法来解决这个问题,但我们想出的最好办法是自己计算所需的高度,然后进行设置。例如 标题始终为 92px,配方始终为 256px,Reportlines 大小 = 42+(21(materials+1)),注释部分如果没有注释则为 23px,如果有注释则为 42,等等。 如果在 JSP 中我们无法轻易检索到一些警报,我们会创建一个不可见的输入来存储值,并由模型添加,例如
<input id="alarmCounter${report.recId}" style="display: none" value="${alarmCount}"></input>
然后我们检索 val 以在计算中使用它。 找到总和后我们只是在获取包含页面的get中设置它 $.get("ChargeReport?recId=${prodTest.report.recId}", function(数据){
$("#chargeReport${prodTest.report.recId}").html(data);
let alarmCount = 0;
alarmCount =parseInt($('#alarmCounter${prodTest.report.recId}').val());
var chartsize = 400*($('#chartExists${prodTest.report.recId}').val() == 'true' ? 1 : 0)
var pixelsNeeded= 92 + 256 + 205
+ 42+ 21*(${fn:length(prodTest.report.reportLines)}+1)
+ 21*(alarmCount+2)
+19+24*${!empty prodTest.report.comment}
+ chartsize + 51
+50;
$('#chargeReport${prodTest.report.recId}').css("height",pixelsNeeded+"px");