我是一个新手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)
我尝试了它并且它有效,但我想知道这是正确的方法吗?
您的代码将起作用,它将生成一个有效的页面,并且它对用户来说看起来非常好.但你不应该这样做.
那么,你为什么不这样做呢?
可维护性是您不应该以这种方式处理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个月后改变网站时,你会感谢你自己.
归档时间: |
|
查看次数: |
2968 次 |
最近记录: |