[英]Applying a Variable to a DIV CLASS In PHP
我正在嘗試使該DIV類變量的TOP和LEFT參數。 這是我的代碼片段
首先在style.php文件中:-
<?php
header("Content-type:text/css");
$top='100';
$left='200';
?>
.testbox {
float:left;
position:absolute;
top:<?php echo $top; ?>px;
left:<?php echo $left; ?>px;
background-size:2000px 2000px;
background-repeat:no-repeat;
background-color:#FFFFFF;
width:50px;
height:100px;
border:1px solid #b3bdc2;
z-index:1;
}
在我的主腳本(gettrains.php)中
$top='100';
$left='500';
echo "<div style='top:$top;left:$left' class='testbox'>
<p>$answer</p>
</div>";
我也將以下行放入我的gettrains.php腳本中
<link href="style.php" type="text/css" rel="stylesheet" />
我基本上有兩個問題:
1)根據style.php,盒子位於100,200而不是100,500 .........我的新變量
2)由於在gettrains.php文件的頂部包含了“ link href =” style.php ............. etc“,因此它在以前沒有加載時會一直重新加載(它是AJAX的一部分)調用(GET)效果很好,然后再包含LINK到style.php的鏈接
任何幫助表示贊賞。 謝謝
這是一件奇怪的事情,因為PHP只能生成瀏覽器收到的初始HTML源。 您基本上是說“我需要100/200 和 100/500的盒子”。 在CSS規則之間的較量中,最具體的規則獲勝。 通常,這將是style="..."
但在這種情況下,您沒有將px
單元添加到嵌入式樣式中,因此瀏覽器將其視為無意義。
這里的“快速修復”只是為了解決該問題: echo "<div style='top:${top}px;left:${left}px' class='testbox'>
但是真正的問題是您“同時指定兩個位置互斥的位置,但沒有明確說明為什么要進行覆蓋。它需要哪個位置?PHP在服務器端運行,因此實際上不知道為什么100/500是優於100/200(這些數字是基於什么?與頁面上的JavaScript不同,PHP無法檢查什么是良好的定位,因此這些只是魔術數字)。
作為特定元素的簡單定位信息,最好將這些位置生成為它們自己的命名CSS類,例如:
.initial {
top: <?php echo $top_override; ?>px;
left: <?php echo $left_override; ?>px;
}
然后在生成的HTML中使用<div class="initial">...
以便應用主CSS,但.initial
類獲勝,請設置正確的左側值(因為頂部的值相同)。 然后,瀏覽器呈現頁面后,您將必須使用JavaScript進行任何進一步的動態位置更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.