簡體   English   中英

在PHP中將變量應用於DIV CLASS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM