Zend:如何在子页面<head>标记

时间:2017-06-01 09:30:28

标签: php optimization zend-framework zend-view

我有一个非常大的网站可供使用,其中很多子页面都有内嵌的独特CSS样式。

&#xA;&#xA;

每个页面的结构都使用不同的 .phtml 部分来创建一个html页面 - 特定部分使用的样式是从 .phtml 文件中调用,得到如下页面:

&#xA;&#xA;
 &lt;!DOCTYPE html&gt;&#xA; &LT; HTML&GT;&#XA;&LT; HEAD&GT;&#XA; ...&#XA;&LT; /头&GT;&#XA;&LT;身体GT;&#XA;&#XA; &LT; DIV&GT;&#XA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA; &lt; div class =“someStyle”&gt;&#xA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA; &lt; style type =“text / css”&gt;&#xA; .someStyle {&#XA;颜色:红色;&#XA; }&#XA; .someOtherStyle {&#XA;背景:蓝色;&#xA; }&#XA; &LT; /风格&GT;&#XA;&#XA; &lt; div class =“someOtherStyle”&gt;&#xA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA;&#XA;&LT; / BODY&GT;&#XA;&LT; / HTML&GT;&#XA;  
&#XA;&#XA ;

是否有一种不错的方法可以将此&lt; style&gt; 标记(甚至作为字符串)附加到页面的&lt; head&gt; 标记中,尽管写在页? (作为一个函数可能吗?)

&#xA;&#xA;

以下Zend文档:&#xA; https://framework.zend.com/manual/2.3/en/modules/zend.view.helpers.head-style。 html

&#xA;&#xA;

似乎有一个链接 .css 文件的解决方案,而不是短&lt; style&gt; 标签。

&#xA;&#xA;
    &#xA;
  • 我不想创建文件并将其链接到&lt; head&gt; 标记。
  • &#xA;
  • 我想把它作为一个简短的&lt; style&gt; 标签。
  • &#xA;
&#xA;& #xA;

通缉结果: https://jsfiddle.net/k0c8cssj/ < / a>

&#xA;&#xA;

(我无法在此处粘贴某些内容无法正常使用代码标记。)

&#xA;&#xA;

编辑:好吧它是:

&#xA;&#xA;
 &lt;!DOCTYPE html&gt;&#xA;&lt; html&gt;&#xA;&lt; head&gt; &#XA; &lt; style type =“text / css”&gt;&#xA; .someStyle {color:red; }&#XA; .someOtherStyle {background:blue;}&#xA; &LT; /风格&GT;&#XA;&LT; /头&GT;&#XA;&LT;身体GT;&#XA;&#XA; &LT; DIV&GT;&#XA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA; &lt; div class =“someStyle”&gt;&#xA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA; 〜在.phtml视图文件中 -  CSS函数/字符串/命令在那里&#xA;&#xA; &lt; div class =“someOtherStyle”&gt;&#xA; ...&#XA; &LT; / DIV&GT;&#XA;&#XA;&#XA;&LT; / BODY&GT;&#XA;&LT; / HTML&GT;&#XA;  
&#XA;&#XA ;

使用类似的东西:

&#xA;&#xA;
  $ styles ='。testingClass {color:red;}';&#xA; $ this-&gt; view-&gt; headStyle() - &gt; appendStyle($ styles);&#xA;  
&#xA;&#xA;

仅在控制器内工作而不是从一个角度来看。

&#XA;

1 个答案:

答案 0 :(得分:0)

您仍然可以在部分中使用headStyle viewhelper:

<?php $this->headStyle()->captureStart() ?>
.someStyle{
    color:red;
}
.someOtherStyle{
    background: blue;
}
<?php $this->headStyle()->captureEnd() ?>

https://docs.zendframework.com/zend-view/helpers/head-style/#capturing-style-declarations

<?= $this->headStyle() ?>添加到您的布局标题中。

我建议使用.css文件减少重复代码,您可以将.css文件附加或添加到部分内容中:

// place at a particular offset:
$this->headStyle()->offsetSetStyle(100, $this->basePath('css/style.css'));

// place at end:
$this->headStyle()->appendStyle('//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css');

// place at beginning:
$this->headStyle()->prependStyle($this->basePath('css/style.css'));

同样来自文档。