解决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正确获取元素样式详解
Aug 07 Javascript
jQuery lazyload 的重复加载错误以及修复方法
Nov 19 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
JavaScript中操作字符串小结
May 04 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
JavaScript语言精粹经典实例(整理篇)
Jun 07 Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 Javascript
如何正确理解javascript的模块化
Mar 02 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 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开发文档 会员收费1期
2012/08/14 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php绘制一条直线的方法
2015/01/24 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
2012/07/03 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
javascript读写json示例
2014/04/11 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
javascript时间差插件分享
2016/07/18 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
Python中列表与元组的乘法操作示例
2018/02/10 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
聚美优品励志广告词
2014/03/14 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
工作求职自荐信
2014/06/13 职场文书
银行进社区活动总结
2014/07/07 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
opencv检测动态物体的实现
2021/07/21 Python
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server
springboot入门 之profile设置方式
2022/04/04 Java/Android