我希望动态生成一些内联CSS,并想知道是否可以通过PHP实现。
基本上,我通过查询字符串传递多个变量,并对值进行一些运算,为CSS创建值。以下是我的页面:
<?php
$var1 = "var1";
$var2 = "var2";
$divided_amount = $var1/$var1;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Derp</title>
</head>
<div style="height: <?php echo $divided_amount ?>px;">
Dynamic height content here
</div>
</body>
</html>
这对我来说是行不通的,如果可能的话,我真的尽量避免使用外部样式表。
非常感谢任何帮助/见解!
您正在用相同的变量($var1
)划分$var1
。假设你实际使用的是数字而不是字符串,那么结果总是1。这意味着您的div元素将始终为1px高。
其次,您应该ceil()
或floor()
您的结果,只是为了确保您没有使用浮点设置像素高度。
记住要验证你的HTML——这会证明有些地方出了问题。
下面是一个工作示例:
<?php
$var1 = "111";
$var2 = "7";
$divided_amount = floor($var1/$var2);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Derp</title>
</head>
<body>
<div style="height: <?php echo $divided_amount ?>px; background-color: #F2F;">
Dynamic height content here
</div>
</body>
</html>
这应该不会有任何问题。
一些需要注意的事项:
- 你在划分字符串,而不是数字
- 您的html示例没有打开的
body
标记 - 您可以将结果强制转换为
int
,以确保它是一个有效的数字
我认为像素宽度不能有小数,如果你用小数(很可能)从除法中返回一个值,那么你应该四舍五入这个数字。那我看不出有什么理由不起作用。