簡體   English   中英

如何使用php / Mysql動態更改CSS樣式。我想創建每個用戶唯一的主題?

[英]how to change CSS styles dynamically using php/Mysql..i want to create themes that are unique to each user?

我想更改網頁的配色方案...所以我在我的網站中提供了顏色選擇器和其他工具,並將這些顏色值存儲在MySql數據庫中。

但是我不知道如何將這些樣式值從mysql數據庫應用到css或html文件。

例如:

用戶1存儲在數據庫中的顏色值是:#ffffff,用戶2存儲的其他值是:#000000

每當用戶登錄時,我如何才能將這些值應用到CSS中?即,當用戶1登錄時,我希望主體背景為#ffffff,對於iser-2,我希望其為#000000

有多種方法可以完成此操作。 1.將您的CSS轉換為PHP,即生成CSS,但是所有內容都是動態的-可能對幾種顏色有些過分了2.覆蓋樣式表中的樣式

最簡單的方法(也許不是最好的方法)是數字2,在樣式表之后用新顏色覆蓋樣式。

即(sudo代碼)

<html><head>
....
<style ... src="..." />
<style>
// from db
#custom { background: #<?php echo $colour; ?> }
</style>

等等

最好使用JavaScript更改PHP標記之間的樣式。

例如:

if($response){

    echo "<script>
        $('#matter_table').css('display', 'block');
    </script>";
}
else{

    echo "<script>
        $('#matter_table').css('display', 'none');
    </script>";
}

您可以通過執行以下步驟來實現:

  1. 如果用戶更改一種樣式,使其可以反映所有主題,則使您的網站模板靈活。

  2. 用戶登錄后,您可以從db獲取該用戶主題顏色,並且可以將其存儲在會話中或任何其他可能的方式。

     eg : $themecolor = '#000000'; 
  3. 將該主題顏色傳遞給主體背景內聯樣式

     eg : style = "background-color : <?php echo $themecolor; ?>" 

我用這個把戲:

我創建一個dynamicss.php文件,並在其中使用:

$color = '#6b82a2';
$css = <<<HERE

body{
    font-family:Arial, Helvetica, sans-serif;
    background-color : $color ;
    background-image: url("../img/texture.png");
}

HERE;

$bytes = file_put_contents('css/mainCss.css',$css);

您可以加載變量,然后在hereDoc中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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