2014-06-23 34 views
0

我如何創建一個像這個頁面一樣的直播風格和腳本切換器? http://www.momizat.com/theme/goodnews/帶有PHP和Cookie的CSS切換器?

他們提供了一個面板,使訪問者可以很容易地改變頁面(css)的外觀和菜單欄(jQuery)的效果。再加上一個cookie,當訪問者移動到另一個頁面時,定製將保持加載到目標頁面上。

我想將這些功能應用到我的網站,所以我的訪問者不會厭倦只有一種風格,但可以根據他們的口味而變化。

每個答案都將非常讚賞。謝謝...

+0

編寫代碼將是一個好的開始:提供可用樣式列表,提示選擇,將選項設置爲cookie。 –

+0

我們不是在這裏教你編程。你必須編寫代碼,我們會盡力幫助解決它。 –

+0

謝謝,你是聰明的男孩 – bl4ckbox

回答

3

我沒有看過你的示例頁面的執行,但大多數網站會使用這種方法:當用戶點擊主題切換按鈕

    • 集在cookie
    • 新值添加特定的類名的body標籤(即類=「THEME1」)
  • 對於每一個主題,有你的CSS開始機智h該類名稱(即body.theme1 p { color: red; }
  • 當用戶加載頁面時,請閱讀cookie並相應地設置類名稱。
+0

或者你把這個主題放在另一個樣式表中,而不是你的default.css – colburton

+0

@colburton - 真的......我想這取決於主題的不同。如果他們只是將背景和文字的顏色切換出來,那麼最好是基於課程。如果他們差異很大,你的方法可能會好得多。 – Steve

+0

沒有打算成爲你的答案任何批評。 OP是另一種選擇,但本身並不值得另一個答案;-) – colburton

0

好吧,如果你想用PHP來做到這一點:

0)首先,會議必須在每一頁上開始或者這不會起作用,因爲必須對會話開始或者啓動餅乾或在下一頁上訪問它。

<?php session_start(); ?> 

1)你必須編寫開始在HEAD標籤的PHP腳本:

<?php 
if (isset($_REQUEST['theme'])) { $_REQUEST['theme'] = $css1; echo "<link rel='text/stylesheet' href='path/to/{$css1}.css'>"; 
    else echo "<link rel='text/stylesheet' href='path/to/default.css'>"; 
?> 

所以現在如果有一個叫「主題」設置參數,值一個cookie好了該參數將作爲一個css文件而不是default.css。

2)現在,您需要爲用戶提供一個切換主題的選項,可能通過下拉式表單。

<?php 
echo "<form name='myForm'><select onchange='this.form.submit()' name='theme'>"; 
echo "<option value='theme1'>Theme 1</option>"; 
echo "<option value='theme2'>Theme 2</option>"; 
echo "</select></form>"; 
?> 

注意:我沒有真正運行這段代碼,我確信有錯誤,但這只是我如何做的一般性概述。

要排除故障:確保表單正在提交。您可以使用print_r($_REQUEST);轉儲出來的cookie的內容進行故障排除。然後確保CSS文件的路徑是正確的。最後,一旦你完成了所有的工作,確保你沒有從被緩存的CSS文件中得到錯誤的結果。例如,在Chrome中,您可以打開「Inspect Element」開發人員工具,每次完全刷新頁面。