Heim >Backend-Entwicklung >PHP-Tutorial >怎么解决统一header,引用不同css问题?

怎么解决统一header,引用不同css问题?

WBOY
WBOYOriginal
2016-06-06 20:48:04919Durchsuche

做网站页面时,总是会把header部分做成一个统一的,然后在不同的页面引入。但是,不同的页面可能会有自己不同的样式,不同的js,当然还有不同的

等信息。<br> 这些本来该通用的部分,因为这些而变的不同,大家是怎么解决的呢?<br> 我能想到的是两种解决方案<br> + 在header中做判断<br> + 把header在做细,只做通用的一部分,剩下的部分,还是让各个页面,自己来写。 <h2>回复内容:</h2> <p>做网站页面时,总是会把header部分做成一个统一的,然后在不同的页面引入。但是,不同的页面可能会有自己不同的样式,不同的js,当然还有不同的</p> <title>等信息。<br> 这些本来该通用的部分,因为这些而变的不同,大家是怎么解决的呢?<br> 我能想到的是两种解决方案<br> + 在header中做判断<br> + 把header在做细,只做通用的一部分,剩下的部分,还是让各个页面,自己来写。 <p class="answer fmt" data-id="1020000000354342"> </p> <p>在需要引用header的页面:</p> <pre class="brush:php;toolbar:false"><code class="lang-php"><?php $page_title = 'default page name'; $page_css = ''; $page_script = ''; require_once('header.php'); ?> </code></pre> <p>header.php:</p> <pre class="brush:php;toolbar:false"><code class="lang-php"><header> <title>=$page_title?></title> <link rel="stylesheet" href="global.css"> =$page_css?> <script src="jquery.js"></script> =$page_script?> </header> </code></pre> <p class="answer fmt" data-id="1020000000354346"> </p> <p>感觉这道题是在论模板存在的重要性啊。一般来说<code>title</code>往往就是显示文章名(变量)和网站标题(变量)这种,所以用<code>if</code>判断是比较方便的,各种博客主题(我接触这个比较多就单说这个了)也基本都是这样做的,类似于:</p> <pre class="brush:php;toolbar:false"><code><title> <?php if(isset($post['title'])) echo $post['title'].' - '; ?><?php echo $sitename; ?> </title> </code></pre> <p>至于CSS的话一般来说基本都是各个页面变化不大的,在这种情况下可以试着用条件判断为不同的页面增加一些不一样的<code>id</code>或者<code>class</code>属性,同时在<code>style.css</code>文件中分别描述修饰内容就好了,类似于下面这种:</p> <pre class="brush:php;toolbar:false"><code><div id="column" class="<?php echo odd($post['id']) ? 'odd' : 'even' ?>"> </div> </code></pre> <p>当然你也可以考虑在不公用的部分单独加上不同的样式的代码,正如你第二种方法所说。如果说是页面的样式区别太大的话,建议还是重新用一个模板页面(例如<code>head.index.html</code>和<code>head.page.html</code>诸如此类的)吧,因为模板本身就是布局样式差不多的放一个模板里头,如果是两个样子不一样的页面引用的而是同一个模板文件,到后面你自己也会搞晕的是么。</p> <p class="answer fmt" data-id="1020000000354360"> </p> <p>这个问题,可以简单的回答一下,参考Zend Framework的Layout的实现方式,简单而言就是:</p> <p>1、将Header这样的东西模板化;<br> 2、最终页面通过拼装生成;<br> 3、使用多种Helper来控制需要参数化的部分的内容。</p> <p>很多PHP框架都有类似的组件了,去选择一个参考一下具体的实现吧。</p> <p class="answer fmt" data-id="1020000000359206"> </p> <p>saejs好像可以就是为这类问题而生的吧??</p> <p class="answer fmt" data-id="1020000000360852"> </p> <p>在控制器层把css的文件名以数组的形式赋值到模板,在header文件通过foreach加载css</p> <p class="answer fmt" data-id="1020000000360867"> </p> <p>用模板用模板用模板</p> <p class="answer fmt" data-id="1020000000361352"> </p> <p>模板引擎layout你直得拥有</p>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:本地测试邮件发送Nächster Artikel:一句正则不懂