解决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 相关文章推荐
用JavaScript和注册表脚本实现右键收藏Web页选中文本
Jan 28 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
Nov 24 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
Dec 02 Javascript
jquery不常用方法汇总
Jul 26 Javascript
JavaScript 最佳实践:帮你提升代码质量
Dec 03 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
浅谈Angular 的变化检测的方法
Mar 01 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
vue 路由守卫(导航守卫)及其具体使用
Feb 25 Javascript
Vue使用screenfull实现全屏效果
Sep 17 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 JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
js canvas实现写字动画效果
2018/11/30 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
Python中random模块生成随机数详解
2016/03/10 Python
python文件选择对话框的操作方法
2019/06/27 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
如何清空python的变量
2020/07/05 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
Lookfantastic德国官网:英国知名美妆购物网站
2017/06/11 全球购物
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
优秀小学生家长评语
2014/01/30 职场文书
决心书范文
2014/03/11 职场文书
2014年电工工作总结
2014/11/20 职场文书
教师业务学习材料
2014/12/16 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
MySQL分区表实现按月份归类
2021/11/01 MySQL
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python