如何在标签内使用PHP添加css文件?

时间:2014-02-12 17:17:45

标签: php html css

好的,让我解释一下:

我有一些文件,基本的东西是这样的:

的index.php

<html>
      <head>

            <title>Simple page</title>

      </head>

      <body>

            <?php include 'home.php'; ?>

      </body>
</html>

home.php

<div class="thisWillBeBlue">Still not blue</div>

的style.css

.thisWillBeBlue {background: blue}

现在问题:使用php我想在head标签中插入style.css,从文件 home.php 中调用它。好吧,我提出了一个解决方案,但效果不是很好:

的index.php

<?php $css = array(); 
      $css[] = 'linktothecss.css'

?>

<html>
      <head>

            <title>Simple page</title>

            <?php

                foreach($css as $item){

                    echo "<link rel='stylesheet' href='".$item."' />";

                }

            ?>

      </head>

      <body>

            <?php include 'home.php'; ?>

      </body>
</html>

但问题是,如果我从 home.php 调用css,它将在稍后添加到数组中,因此它不会在head标记内回显。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以使用ob_start()ob_end_flush()函数执行此操作 e.g。

<强>的index.php

<?php

$csspage = "default.css";
function loadCSS($buffer) {
  global $csspage;  
  return (str_replace('{{ css }}', $csspage, $buffer));
}

ob_start("loadCSS"); ?>

<html>
   <head>
      <!-- the string {{ css }} is just a placeholder that will be replaced 
           with the new value of $csspage defined later in the code, otherwise
           it will replaced with its initial value (default.css)
      -->
      <link href="{{ css }}" /> 
   </head>

<body>
     <?php include 'home.php'; ?>
</body>

</html>

<?php ob_end_flush(); ?>

<强> home.php

 <?php $csspage = "custom_style.css";  ?> 
 <div class="thisWillBeBlue">blue</div>

进一步参考:http://it1.php.net/ob_start

答案 1 :(得分:0)

我认为你正在寻找类似的东西......(在其头文件中包含一段代码,以便它可以添加更多样式表)

这将允许您在每个页面上添加更多样式表。 (将其添加到<head>

<?php
if (!empty($styles) && is_array($styles)) {
    foreach ($styles AS $style) {
        echo '<link rel="stylesheet" href="/assets/css/'. $style .'">';
    }
}
?>

如果需要特定的样式表,可以将变量放在单个脚本的顶部:

<?php
$styles = array('custom_style.css');
?>

答案 2 :(得分:0)

如果需要,可以将CSS文件引用放在代码正文中。

<body>
  <link href="linktothecss.css" rel="stylesheet" type="text/css" />
  <div class="thisWillBeBlue">
    I'll be blue as soon as linktothecss.css finishes loading!
  </div>
</body>

唯一的区别是,在HEAD中,保证在呈现页面之前加载它们。当他们在BODY中时,可能会有一瞬间仍在加载它们并且样式尚未应用。

如果您肯定希望它们在HEAD中,您可以在具有相同文件名的单独文件夹中定义css要求,如下所示:

<强>的index.php:

<html>
  <head>
    <?php
    include('css-requirements/home.php');
    ?>
  </head>

  <body>
    <?php include('home.php'); ?>
  </body>
</html>

<强> CSS-要求/ home.php:

<link href="mycss.css" rel="stylesheet" type="text/css" />
<link href="myothercss.css" rel="stylesheet" type="text/css" />