2013-03-09 5 views
0

Итак, я работал над некоторыми упражнениями в книге PHP, которую я купил, и они предложили стилизовать заголовок и сохранить его как отдельный документ, а затем, когда вы хотите использовать его на своих страницах , вы просто использоватьКак указать несколько таблиц стилей

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

Хотя это экономит дерьмо нагрузки кода для изменения заголовка каждой отдельной страницы, я хочу использовать различные таблицы стилей для разных страниц .. но я не знаю, как, так когда заголовок .html, он автоматически загружает собственную таблицу стилей.

Есть ли выражение «IF», ​​которое я могу использовать, чтобы определить, какой из них я могу использовать? make stylesheet specificatuions должны быть в <head>?

+4

Может быть, вы должны держать на чтение этой книги ваш. Похоже, вы еще далеко не пришли. –

+0

Теперь я прошел мимо этой точки, и он ничего не сказал .. он вообще не входит в html, просто предложил использовать это – amartin94

+0

@ amartin94 Продолжайте читать. – Dan

ответ

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 массив значений (Юрис к таблицам стилей). Когда вы включаете файл head.php, переменная $stylesheets доступна ему, потому что она была объявлена ​​/ назначена перед включением.

head.php затем просто выполняет итерации над значениями и выводит их из строя. Изменив значение $stylesheets, вы можете добавить или удалить ссылки на стили из результирующей страницы.

Это чревато проблемами; отсутствие проверки ошибок и т. д., и вам понадобится намного больше работы, прежде чем вы сможете надежно использовать что-то подобное в производстве (или должно быть нужно много больше работы в любом случае)

+0

@ amartin94 - Возможно, возьмите разметку как строку или запишите 'include' с' ob_get_clean() 'и используйте' {{template_variable}} 'to $ header =' str_replace ('{{the_styles}}' , $ the_goods, $ the_header); Или шаблон в сочетании с тематическим тегом на основе body и только одним CSS. Или файл будет 'site.css.php' с' header ('Content-type: text/css'); 'и поместите' @import url ($ url) 'внутри, как то, что сделано выше. Существует много способов оформления декоратора. В конечном итоге шаблон маршрутизации должен быть наложен для обеспечения разумности. Взгляните на Slim Framework, это довольно кратким. Или Симфония. –

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'); ?> 

ВАШ САЙТ ЗДЕСЬ

Затем в header.html закончить свои метки от

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

Пожалуйста, включите надлежащий Doctype слишком, чтобы избежать призраков в режиме ад. BTW, тэг 'title' не закрыт должным образом. –

Смежные вопросы