我有一个标题和一个链接,必须适合非常特定的宽度和高度。如果标题太长,我会用一个类调整上面的边距,以便它向上移动。我正在这样做
<h2 <? if(strlen($report['title']) > 26) echo 'class="longer"';?>>Title text</h2>
26 是我使用的适合大多数标题示例的值。然而,有一个流氓标题,虽然长度 > 26,但使用较小的词,如“in”和“the”,因此它不会像其他 >26chars 对应物那样分成 3 行。
在屏幕截图中,您看到 1.“长但不是 3 行”示例,2.正常长度,3.更长的调整长度。
您如何处理这种情况?(这些 div 是左对齐的,因此“查看完整报告”必须在所有示例中保持相同的垂直位置,然后才能有人建议让它在标题之后流动)。
我最后求助于使用 JS(jQuery)来计算行数,但是 Chrome 错误地将一些报告为 3 行,而实际上它只有 2 行,Firefox 按预期工作。Chrome 问题很奇怪,因为尽管高度完全相同,但 1 会报告为 2 行,而其他 3 会报告为 3。非常奇怪。
var divHeight = $(this).outerHeight();
var lineHeight = parseInt($(this).css('lineHeight'));
var lines = Math.round(divHeight / lineHeight);
if(lines > 2)
$(this).addClass('longer');
我也尝试过基于高度,但浏览器/平台的差异再次使这非常不可靠。