解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题


Posted in Javascript onJanuary 11, 2013

Extjs的Panel和Window等组件在默认情况下是带边框的,通常情况下,单独使用没有什么关系,但是将Panel作为Window组件的子组件时就会出现双重边框的现象,如果Window组件中含有两个或者两个以上的Panel,那么Panel和Panel组件之间的边框会重复累加,也就是说会变成双重边框。实际上双重边框并不是很影响外观,但多少看上去会有些不太令人满意,因此我们就得想办法将两重边框去掉,变成单边框。下面是前后两张对比图,大家仔细观察一下两个window的边框部分,可以发现前者较粗,后者较细。

解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题

图一

解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题

图二

下面我们就要想解决的办法了。

首先想到的是我们可以让Window的边框为0,即设置Window组件的属性border:false,此时,可以发现Window四周的边框编程单边框了,但是Window里面上面的GridPanel和下面的Panel之间还是会有双重边框,显得不协调,而且底部的工具条的四周没有了边框(因为“保存”按钮所在的工具条是属于Window,Window的边框没有了之后,当然会影响到底部工具条的边框)。于是这种方案不可行。弃之!

第二种方案是保留Window组件的边框,想办法去掉Panel的边框,通过查ExtJS的帮助文档,发现可以通过定义bodyStyle来控制Panel的样式。于是给上面的Panel分别设置bodyStyle属性,GridPanel:bodyStyle: 'border-width:1px 0 1px 0;',下方的Panel:bodyStyle: 'border-width:1px 0 0 0; background:transparent',之后在刷新重新看效果,发现边框确实编程但边框了,但是还有一部分边框是双重的,即时上面那个GridPanel的表头的两侧,以及下面按个Panel的Header的两侧。开来这种办法还是比较靠谱的。我们在精心修改一下就好了。下一步要做的就是,为每一个Panel定义一个cls属性,然后对通过自己写样式来限制表头以及header的样式,即覆盖ExtJS默认的样式(只是修改border的样式)。通过Chrome的“审查元素”发现:表头默认的一个CSS样式类是x-grid-header-ct,Panel默认的一个样式类是x-panel-header。下面要做的就是自己写样式来覆盖以前的样式了,比如我为两个Panel设置的cls为addr-panel,然后新加CSS样式类.addr-panel .x-grid-header-ct{border-width: 1px 0 0 0 !important;},.addr-panel .x-panel-header{border-width:0;}。保存之后刷新之后查看效果,就是图二的效果了,完成!

如果以后我们在遇到类似的问题都可以考虑用CSS样式来解决。(完)^_^

Javascript 相关文章推荐
IE 下的只读 innerHTML
Aug 21 Javascript
ExtJS下grid的一些属性说明
Dec 13 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
Apr 25 Javascript
一个挺有意思的Javascript小问题说明
Sep 26 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
面向对象的Javascript之二(接口实现介绍)
Jan 27 Javascript
jQuery DOM操作实例
Mar 05 Javascript
JS实现状态栏跑马灯文字效果代码
Oct 24 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
Sep 20 Javascript
js实现简单的轮播图效果
Dec 13 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 #Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
Jan 11 #Javascript
关于JavaScript的面向对象和继承有利新手学习
Jan 11 #Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
Jan 11 #Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
Jan 11 #Javascript
javascript将数组插入到另一个数组中的代码
Jan 10 #Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
Jan 10 #Javascript
You might like
PHP form 表单传参明细研究
2009/07/17 PHP
PHP 简单日历实现代码
2009/10/28 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
金融专业个人求职信范文
2013/11/28 职场文书
工作时间上网检讨书
2014/02/03 职场文书
学校教研活动总结
2014/07/02 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书