我想在head标签中附加css样式表,但会附加到body标签。 这是我做的: 我有一个控制''国家'与行动'索引',我的观点是index.phtml
index.phtml包含:
<?php
$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css')
->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css');
echo $this->headLink();
这会将样式表附加到body标记内。 我只希望将这些样式表附加到此操作。我不想在layout.phtml中包含这个样式表 我该怎么办?
答案 0 :(得分:3)
你所做的是正确的,但是在添加样式表之后,你在视图中回显了headLink(),这是在错误的地方输出链接。更改您的代码,以便:
在index.phtml中:
$this->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css')
->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojox/grid/resources/claroGrid.css');
然后在layout.phtml中(在<head>
部分中您希望显示样式表链接):
echo $this->headLink();
答案 1 :(得分:2)
你在不正确的地方添加了这个
如果您从.phtml内部以这种方式添加样式表,则您在文档的正文中。
要将样式表添加到单个页面的头部,请在控制器内的操作代码中添加样式表:
public function someAction() {
$this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');
}
或者,如果要为控制器的所有操作添加样式表,可以在控制器的init()方法中使用相同的代码:
public function init() {
$this->view->headLink()->appendStylesheet($this->baseUrl().'/js/dojo-1.7/dojo/resources/dojo.css');
}
如果需要覆盖当前样式表,可以使用setStylesheet(),也可以使用prependStylesheet()或appendStylesheet()。
祝你好运......