将CSS存储在PHP变量中?

Vin*_*hua 2 css php dynamic

我是一个新手php学习者,我正在试验如何动态链接不同的php文件.在试验时,我意识到我可以在我的php文件中创建变量并使我的模板文件回应我需要的html,而无需编辑我的模板文件......

例如:在about-me.php页面中,我使用了header.php和footer.php

 <?php include ('includes/header.html'); ?>
 <?php include ('includes/footer.html'); ?>
Run Code Online (Sandbox Code Playgroud)

然后我创建一个变量

  $page_title = 'CompanyABC';
Run Code Online (Sandbox Code Playgroud)

并在header.php中回显

  $page_title = 'South Asia Exact'; 
Run Code Online (Sandbox Code Playgroud)

现在我的问题是我可以对我的内联css这样做吗?例如,我创建了一个变量,它存储了我的所有内联css:

 $page_inlinecss = "#SAEcontentR div#certification_certificate {
    margin:0 auto 0 auto;
    width:580px; 
    height:464px;
     }\n";
Run Code Online (Sandbox Code Playgroud)

然后我在我的header.php中回声如下:

<style type="text/css">
<?php echo $page_inlinecss; ?>
</style>
Run Code Online (Sandbox Code Playgroud)

我尝试了它并且它有效,但我想知道这是正确的方法吗?

Gli*_*ire 7

没有正确的方法来进行内联CSS

您的代码将起作用,它将生成一个有效的页面,并且它对用户来说看起来非常好.但你不应该这样做.

那么,你为什么不这样做呢?

可维护性是您不应该以这种方式处理CSS的主要原因.管理单独的CSS文件要比通过PHP代码选择要更改的CSS规则容易得多.

看起来您存储的数据是静态的,变量的关键点是存储可以更改的数据.Company ABC在执行脚本期间,网站名称()的名称不太可能发生变化,因此您应将它们包含在静态HTML模板中.

除此之外还有缓存(大多数浏览器缓存.css文件,节省带宽)和可访问性等问题(屏幕阅读器可能不知道如何处理内联样式和js).

你应该如何处理动态风格?

使用PHP和CSS组合处理动态样式(即基于不同页面加载的信息的样式)的一种方法是在外部文档中定义类样式,然后使用PHP来应用它们.

例如,把它放在styles.css:

span.greentext { color: #0f0; }
Run Code Online (Sandbox Code Playgroud)

这在你的PHP文件中:

<span class='<?php echo ($someCondition) ? "greentext" : null; ?>'>Some text</span>
Run Code Online (Sandbox Code Playgroud)

或者,如果您有更多样式要处理:

或者,您可以在条件下加载特定的样式表:

<?php if($someCondition): ?>
    <link rel="stylesheet" href="styles/conditional.css" type="text/css" media="screen">
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助,除非必要,否则请不要使用内联CSS或变量.当你需要在5个月后改变网站时,你会感谢你自己.