我想在head标记中附加css样式表,但被附加到body标记中。这是我所做的:我有一个控制器'countries‘,带有action 'index’,我的视图是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中包含这个样式表,我该怎么做呢?
发布于 2012-06-29 15:48:54
您所做的是正确的,但是您在添加样式表之后就在视图中回显了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();发布于 2012-06-29 15:31:02
您将此代码添加到了错误的位置。
如果您以这种方式从.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()。
祝你好运。
https://stackoverflow.com/questions/11257626
复制相似问题