解决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最常用与实用的创建类的代码
Aug 12 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
简单谈谈JS中的正则表达式
Sep 11 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
Apr 13 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
vue+webpack 更换主题N种方案优劣分析
Oct 28 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
ES6字符串的扩展实例
Dec 21 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
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
Python实现的弹球小游戏示例
2017/08/01 Python
python3.4爬虫demo
2019/01/22 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
Python实现ATM系统
2020/02/17 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Python __slots__的使用方法
2020/11/15 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
历史学专业毕业生求职信
2013/09/27 职场文书
医学生实习自我鉴定
2013/09/27 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
舞出我人生观后感
2015/06/16 职场文书