解决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 相关文章推荐
JQuery 浮动导航栏实现代码
Aug 27 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
Mar 28 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
Dec 15 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 Javascript
Vue 中 a标签上href无法跳转的解决方式
Nov 12 Javascript
vue 翻页组件vue-flip-page效果
Feb 05 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
JS+Canvas实现五子棋游戏
Aug 26 Javascript
一篇文章带你从零快速上手Rollup
Sep 07 Javascript
vue实现可拖拽的dialog弹框
May 13 Vue.js
解决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 生成饼图 三维饼图
2009/09/28 PHP
ThinkPHP分页实例
2014/10/15 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
2017/08/02 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
vue 百度地图(vue-baidu-map)绘制方向箭头折线实例代码详解
2020/04/28 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
点球小游戏python脚本
2018/05/22 Python
基于树莓派的语音对话机器人
2019/06/17 Python
python支持多线程的爬虫实例
2019/12/21 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
Python类的继承super相关原理解析
2020/10/22 Python
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
C#面试问题
2016/07/29 面试题
介绍一下grep命令的使用
2015/06/12 面试题
幼儿园中秋节活动方案2013
2014/01/29 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
高校教师自荐信范文
2014/03/13 职场文书
质量保证书范本
2014/04/29 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
如何在C++中调用Python
2021/05/21 Python
80行代码写一个Webpack插件并发布到npm
2021/05/24 Javascript
Pandas数据结构之Series的使用
2022/03/31 Python