Каков наилучший способ включить таблицу стилей для определенной страницы?

спасибо за просмотр.

Мой сайт включает в себя один и тот же заголовок и нижний колонтитул для каждой страницы с использованием PHP.

Мне нужна таблица стилей, которая применяется только для определенной страницы, поэтому добавьте стиль в соответствующий тег.

...<body><style type="text/css"> /* what ever */ </style></body>... 

Таблица стилей обрабатывается правильно во всех проверенных вами браузерах, однако W3C не проверена правильно, потому что она находится внутри тега тела вместо головы.

Мой вопрос:
Если я не могу поместить таблицу стилей в тег тела, что это лучший способ ее включить? Я могу ссылаться на таблицу стилей в заголовке PHP, но я бы предпочел не иметь другого HTTP-запроса для такого маленького файла. Как бы вы это сделали? Какой наименее небрежный способ сделать это? Хотя тег стиля не должен находиться в <body>, он все равно обрабатывается браузерами.

Лучшим способом было бы использовать структуру MVC, которая буферизует ваш файл представлений, и позволяет тегу динамически добавлять в голову перед выходом.

Вот очень простой способ сделать это:

index.php:

 <?php class Page { private static $head = array(); private static $content = ''; static function add_head($tag) { self::$head[] = $tag; } static function render_head() { foreach (self::$head as $tag) echo $tag; } static function render_content() { echo self::$content; } static function read_content($file) { ob_start(); require $file; self::$content = ob_get_clean(); } static function render_layout($file) { require $file; } } Page::read_content('view.php'); Page::render_layout('layout.php'); ?> 

layout.php:

 <html> <head><?php Page::render_head(); ?></head> <body> <div id="header"></div> <div id="content"><?php Page::render_content(); ?></div> <div id="footer"></div> </body> </html> 

view.php:

 <?php Page::add_head('<title>Hello World!</title>'); ?> <h1>Hello</h1> <p>World</p> 

Как насчет того, чтобы предоставить телу идентификатор, а затем просто включить файлы с конкретными страницами в общий CSS, но со стилями, префиксными с помощью селектора id? Что-то вроде этого:

На странице

 <body id="pageSpecificId">......</body> 

В файле CSS:

 #pageSpecificId p { ... paragraph specific styles ... } #pageSpecificId li { ... list item specific styles ... }