![](/img/trans.png)
[英]How to calculate width of a string variable in pixels using Javascript/JQuery
[英]Truncating A php String for given Width in Pixels
我想通过PHP截断从MySQL数据库中取出的给定字符串,以适应给定的像素。 我发现的大多数解决方案都基于字符数。 但我根据像素长度特别想要它。(我不想使用等宽字体)
我发现$('#idName').width()
可以在JavaScript中用于拟合。 这对于用HTML编写的字符串很简单。 但这是交易。 我的字符串是存储在PHP中的变量,我需要JavaScript来获取像素的宽度,我需要在具有特定id名称的span(HTML)中包含该字符串。
因此,我尝试使用它们中的所有三个 - PHP,HTML和JavaScript。 以下是我的代码。
<?php
$len=100;
?>
<span id='d' style="display:none;"><?php echo substr($details,0,$len) ?></span>
<script>
var len=370;
while($('#d').width()>len){
<?php
$len=$len-1;
echo "<span id='d' style='display:none;'>" . substr($details,0,$len) . "</span>";
?>
}
<?php echo substr($details,0,$len); ?>
</script>
所以我把我的字符串的前100个字母放在一个id为d
。 然后在JavaScript中,我得到它的宽度并检查while循环。 我运行while循环(继续递减$len
),直到子串的像素长度在所需的宽度内,并保持在具有相同id的span中重新划分该子串。 然后我打印那个子串。
有人可以更改代码以使其工作或建议更好的方法吗? 我是新手,所以请尽量简单。
据我所知,你的问题是,当字符串长于给定的容器时,你试图隐藏溢出?
我宁愿建议使用overflow:hidden; 空白:NOWRAP; 也许是一些文本溢出:省略号; 在容器结束之前制作“...”效果。 但是你必须记住,大多数浏览器和操作系统的字体呈现方式不同,因此Windows上的用户体验可能与Mac上的不同。
那可能行不通。 JS和PHP不能像这样混合。 while循环没用。
我想到的一个解决方案是你可以先通过ajax获取PHP字符串,然后使用JS根据宽度显示它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.