当菜单项链接到特定记录时,我在应用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;
}
任何想法???
由于
答案 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>',
....
),