解决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 相关文章推荐
js程序中美元符号$是什么
Jun 05 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
Feb 23 Javascript
Javascript 八进制转义字符(8进制)
Apr 08 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
Jul 17 Javascript
jquery删除指定子元素代码实例
Jan 13 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 Javascript
微信开发 使用picker封装省市区三级联动模板
Oct 28 Javascript
微信小程序  audio音频播放详解及实例
Nov 02 Javascript
Vue cli+mui 区域滚动的实例代码
Jan 25 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 Javascript
element-ui 弹窗组件封装的步骤
Jan 22 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堆排序实现原理与应用方法
2015/01/03 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
php探针不显示内存解决方法
2019/09/17 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
JavaScript面象对象设计
2008/04/28 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
window.onload使用指南
2015/09/13 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
python的pytest框架之命令行参数详解(下)
2019/06/27 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python实现播放和录制声音的功能
2020/08/12 Python
Python之多进程与多线程的使用
2021/02/23 Python
村干部群众路线教育活动对照检查材料
2014/10/01 职场文书
婚内房产协议书范本
2014/10/02 职场文书
开展党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2014年检验员工作总结
2014/11/19 职场文书
工作检讨书怎么写
2015/01/23 职场文书
三八妇女节致辞
2015/07/31 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书