0

我正在使用 ZF 1.11,我对样式表的顺序有一个愚蠢的问题:

在我的layoyut.phtml我想设置全局样式表:

<!-- layout.phtml --> 
<head>
     <?php
        $this->headLink()
                ->appendStylesheet('/css/a.css')
                ->appendStylesheet('/css/b.css')
                ->appendStylesheet('/css/c.css');
     ?>
     <?php echo $this->headLink(); ?>
</head>

在我看来,我添加了特定的样式集:

<!-- view.phtml --> 
<?php
        $this->headLink()
                ->appendStylesheet('/css/d.css')
                ->appendStylesheet('/css/e.css');
?>

我希望按以下顺序查看它们:

  • a.css
  • b.css
  • c.css
  • d.css
  • e.css

但相反,我将它们视为这样(在全局文件之前查看 css 文件):

  • d.css
  • e.css
  • a.css
  • b.css
  • c.css

我究竟做错了什么?

4

2 回答 2

1

顺序对于 CSS 来说非常重要;

由于级联的顺序,您可能需要确保以特定顺序加载声明;使用各种append, prepend,offsetSet指令来帮助完成此任务:

// Putting styles in order

// place at a particular offset:
$this->headStyle()->offsetSetStyle(100, $customStyles);

// place at end:
$this->headStyle()->appendStyle($finalStyles);

// place at beginning
$this->headStyle()->prependStyle($firstStyles);
When you're finally ready to output all style declarations in your layout script, simply echo the helper:

<?php echo $this->headStyle() ?>

有关样式附加的更多信息,您可以抛出这个

官方 zend Docuemtnation所以你可能有更好的主意。

希望这对你有帮助

于 2013-11-01T10:08:18.477 回答
0

视图在布局之前呈现,这就是为什么你首先得到 d 和 e 的原因。一种选择是将布局调用更改为 prepend:

$this->headLink()
     ->prependStylesheet('/css/c.css')
     ->prependStylesheet('/css/b.css')
     ->prependStylesheet('/css/a.css');
于 2013-11-01T10:50:15.683 回答