正如标题所说,我正在尝试使用php来获得<的高度。 DIV>然后使用该值,应用于图像。这实际上会缩小图像或拉伸图像。由于我还是新编码,我在网上搜索,我发现的只是在javascript中做这个的解决方案,这是这样的
DivHeight = document.getElementById("TheDiv").offsetHeight
但我找不到任何使用php的方法。
答案 0 :(得分:3)
php是一种服务器端语言,你无法获得div的高度。
您可以通过添加属性
来指定图像大小答案 1 :(得分:1)
您希望在渲染div对象之后设置图像大小以填充所述div对象(或某种效果),但div对象的大小是可变的。在这种情况下,您不能使用height: 100%
,因为父对象(在这种情况下为div对象)必须具有CSS代码中定义的明确值。 Javascript是这个问题的唯一答案。
这样做:
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#theImagesId').css({"height":$(".theDivsId").height(), "width": $(".theDivsId").width()});
});
</script>
</head>
你还需要下载从jquery引用的这个文件(缩小版本就足够了): http://docs.jquery.com/Downloading_jQuery#Download_jQuery
答案 2 :(得分:0)
你无法在PHP中获得div的高度,因为当呈现页面并显示div时,PHP已经消失了。唯一的方法是使用javascript获取高度,然后通过AJAX获取图像。
你知道,你可以通过改变图像的宽度和高度来缩小图像。结果并不是最优的,但它可能适用于您的目的。
答案 3 :(得分:0)
正如其他人所说,你不能用PHP做到这一点。但为什么不使用CSS?
如果包含DIV的高度和宽度,您可以设置图像样式以填充该空间(在此过程中拉伸或收缩):
.imgclass {
height: 100%
width: 100%
}
但是,如果您想在服务器上实际调整图像大小,那么您必须使用AJAX并通过Javascript请求新图像(这可能很慢,具体取决于服务器生成它们需要多长时间)。
我建议不要使用后者,除非你预先构建一堆大小并使用匹配最接近的大小,然后在浏览器中使用CSS调整大小。
答案 4 :(得分:0)
如上所述,'客户端'代码必须这样做,因为HTML(div,图像等 - 你试图操纵的东西)在客户端呈现。这意味着javascript。我建议使用jquery库 - 以下行应该这样做:
$('#theImagesId').css({width: $('#theDivsId').height()+"px"});
然而,你想要做的事听起来有点奇怪?还要记住,如果已经有一个图像或div中加载的东西,返回的高度可能会小于它应该的值。这是因为一旦DOM加载(因此,所有实际的html代码),javascript将执行,但不一定是其中的图像。