解决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 相关文章推荐
JSQL  一个 web DB 的封装
May 05 Javascript
Bootstrap每天必学之媒体对象
Nov 30 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
纯js模仿windows系统日历
Feb 04 Javascript
js Dom实现换肤效果
Oct 21 Javascript
原生JS写Ajax的请求函数功能
Dec 22 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
vue2.0获取鼠标位置的方法
Sep 13 Javascript
JavaScript的词法结构精华篇
Oct 17 Javascript
在vue中使用setInterval的方法示例
Apr 16 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
JavaScript ES6 Class类实现原理详解
May 08 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实现的zip文件内容比较类
2014/09/24 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
js计数器代码
2006/11/04 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
python使用socket连接远程服务器的方法
2015/04/29 Python
python中lambda与def用法对比实例分析
2015/04/30 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
python paramiko模块学习分享
2017/08/23 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
itchat接口使用示例
2017/10/23 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
python 使用shutil复制图片的例子
2019/12/13 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
如何在Python对Excel进行读取
2020/06/04 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
银行求职信
2014/05/31 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2014年卫生工作总结
2014/11/27 职场文书
升学宴家长致辞
2015/07/27 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang