2013-03-09 57 views
0

因此,我一直在通過我購買的PHP書中的一些練習,並且他們建議設計一個標題樣式並將其另存爲單獨的文檔,然後當您想在頁面中使用它時,你只需要使用如何指定多個樣式表

<?php 
    require('header.html'); 
?> 

雖然這樣可以節省代碼廢話負載改變每一個人網頁的標題,我希望用不同的樣式表對不同的頁面..但我不知道怎麼樣了,因爲當標題.html被調用,它會自動加載它自己的樣式表。

是否有像我可以用來確定哪一個我可以使用的「IF」語句?樣式表特性必須在<head>

+4

也許你應該繼續讀那本書你的。看起來你還沒有走得很遠。 – 2013-03-09 17:06:31

+0

現在,我走過那一點,它沒有說任何東西..它並沒有真的進入HTML,只是建議使用 – amartin94 2013-03-09 17:08:23

+0

@ amartin94繼續閱讀。 – Dan 2013-03-09 17:09:11

回答

3

好的,這裏有一個例子。

index.php將訪問文件)

<?php 
    $stylesheets = [ 
     '/stylesheets/common.css', 
     '/stylesheets/themes.css', 
    ]; 
?> 
<html> 
    <head> 
     <?php include("head.php"); ?> 
    </head> 
</html> 

而且在head.php

<?php foreach ($stylesheets as $stylesheet): ?> 
    <link rel="stylesheet" type="text/css" href="<?= $stylesheet ?>" /> 
<?php endforeach; ?> 

輸出應該是這樣的:

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="/stylesheets/common.css" /> 
     <link rel="stylesheet" type="text/css" href="/stylesheets/themes.css" /> 
    </head> 
</html> 

爲什麼?

因爲您爲$stylesheets分配了一個值數組(到樣式表的URI)。當包含文件head.php時,變量$stylesheets可用,因爲它在包含之前已被聲明/分配。

head.php然後簡單地迭代這些值並將它們輸出。通過更改$stylesheets的值,可以從結果頁面添加或刪除樣式表引用。

儘管存在一些問題,沒有錯誤檢查等,並且需要更多的工作,然後才能在生產中可靠地使用類似的東西(或無論如何應該需要更多的工作

+0

@ amartin94 - 也許把標記作爲字符串或者用'ob_get_clean()'捕獲'include',並使用'{{template_variable}}'到$ he​​ader ='str_replace('{{the_styles}}' ,$ the_goods,$ the_header);'或者與'body'類的主題一起使用的模板,並且只包含一個CSS。或者用'header('Content-type:text/css');'將'@import url($ url)'放入'site.css.php'中,像上面所做的那樣。裝飾模式有很多種方法。從長遠來看,路由模式應該被覆蓋以加強理智。看看Slim Framework,它非常簡潔。或者Symfony。 – 2013-03-09 17:39:46

0

請勿將您的部分頭。這種方式,您也可以適當的標題和關鍵字每一頁即

<html> 
<head> 
<title Yada yada</title> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<meta name="description" content=""> 
<meta name="keywords" content=""> 
<meta name="author" content=""> 
<link href="style/customstyle.css" rel="stylesheet"> 
<?php require_once('header.html'); ?> 

您的網站HERE

然後在你的header.html中完成你的標籤功能

<link href="style/style.css" rel="stylesheet"> 
.... 
</head> 
<body> 
<div class....> 
Your Header (topbar /menu etc.. 
+0

請包含適當的Doctype,避免怪癖模式地獄。順便說一句,你的'title'標籤沒有正確關閉。 – 2013-03-09 17:23:08