Yii CMenu& CSS

时间:2011-09-22 09:36:28

标签: css yii

当菜单项链接到特定记录时,我在应用CSS时遇到问题。

按照下面的简单菜单,菜单中定义的CSS适用于“帐户”,但是当我点击“我的帐户”时却没有。

<div id="Menu">
    <?php $this->widget('zii.widgets.CMenu',array(
        'items'=>array(
        array('label'=>'Account', 'url'=>array('/account/view'),  
                // CSS works fine
        array('label'=>'My Account', 'url'=>array('/account/view/id/'.Yii::app()->user->id), 
                // CSS applied to active link does not work
            ),
        )); 
    ?>
</div>

CSS

#Menu ul li.active a {
    color: #CCC;
    text-decoration:none;
}

任何想法???

由于

1 个答案:

答案 0 :(得分:1)

<div id="Menu">
    <?php $this->widget('zii.widgets.CMenu',array(
        'items'=>array(
        array('label'=>'Account', 'url'=>array('/account/view'),  
                // CSS works fine
        array(
            'label'=>'My Account',
            'url'=>array('/account/view/id/'.Yii::app()->user->id), 
            'active'=>($this->getId() == 'account' && $this->getAction()->getId() == 'view' && isset($_GET['id'])))
                // you have to set manually the rule for "active"
            ),
        )); 
    ?>
</div>

此外,您应该更正您的Url规则,以便您可以像这样正确创建网址:

'url'=>array('account/view', 'id'=>Yii::app()->user->id)

要从中获取正确的URL,您应该在配置文件中创建URL规则,如下所示:

'rules'=>array(
    ....
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    ....
),