0
A
回答
3
空白区域是Yii CTabView
使用的默认CSS的结果。具体而言,该CSS从web/js/source/jquery.yiitab.js
在Yii的来源:
.yiiTab div.view
{
border-left: 1px solid #4F81BD;
border-right: 1px solid #4F81BD;
border-bottom: 1px solid #4F81BD;
padding: 8px;
margin: 0;
}
你可以看到自己这一点,如果你不包含任何CSS可言,在这种情况下,标签将没有任何样式显示:
$this->widget('CTabView', array('tabs'=> $tabs, 'cssFile' => false));
最好的解决办法是从CTabView
派生自己的小部件CustomTabView
,并覆盖renderBody
方法是这样的:
protected function renderBody()
{
foreach($this->tabs as $id=>$tab)
{
$inactive=$id!==$this->activeTab?' style="display:none"' : '';
$empty = $this->isEmptyTab($tab) ? ' empty' : '';
echo "<div class=\"view{$empty}\" id=\"{$id}\"{$inactive}>\n";
if(isset($tab['content']))
echo $tab['content'];
else if(isset($tab['view']))
{
if(isset($tab['data']))
{
if(is_array($this->viewData))
$data=array_merge($this->viewData, $tab['data']);
else
$data=$tab['data'];
}
else
$data=$this->viewData;
$this->getController()->renderPartial($tab['view'], $data);
}
echo "</div><!-- {$id} -->\n";
}
}
然后你需要一个isEmptyTab
方法。这一个将适用于由你手动设置内容的标签。如果这还不够好,扩展它,你需要:
private function isTabEmpty($tab)
{
if(isset($tab['content']) && $tab['content'] == '')
{
return true;
}
return false;
}
最后,你需要一些CSS来使你的空卡出现不同的,例如:
.yiiTab div.view.empty
{
border: none;
padding: 0;
margin: 0;
}
相关问题
- 1. 警告:您的内容是空白的
- 2. 其中警予
- 3. 默认警予
- 4. 警予:在
- 5. urlManager在警予
- 6. CClientScript在警予
- 7. 留在警予
- 8. 我想在警予
- 9. PHP HREF不警予
- 10. 行为与警予
- 11. 警予:与框架
- 12. 为警予xupload extensition
- 13. NSRegularExpression给予警告
- 14. MediaWiki给予警告
- 15. 推divs内容的警报
- 16. yiitrace和登录警予
- 17. 警予CFormModel动态特性
- 18. 警予资产管理
- 19. 如何给在警予
- 20. 警予文本字段validtaion
- 21. 链接到路线警予
- 22. 网址经理警予
- 23. 如何在ClinkPaget警予
- 24. 路线在警予1
- 25. 警予网址经理
- 26. 如何使用警予
- 27. 错误而在警予
- 28. 警予的形式问题
- 29. 警予CDbCriteria联接列
- 30. 验证码不对警予