当前位置:Gxlcms > html代码 > chrome中完全一样属性的2个div,显示不一样_html/css_WEB-ITnose

chrome中完全一样属性的2个div,显示不一样_html/css_WEB-ITnose

时间:2021-07-01 10:21:17 帮助过:72人阅读

在chrome中,如图,表格的第3列,头部会被文字撑开,而下面内容部分就不会


两个div完全相同的属性,但是一个就是会被撑开而另一个不会, 源码我上传了,几个js和html
http://115.com/file/c2kpg3hs#test.rar

请大家帮忙看看
谢谢。


回复讨论(解决方案)

没办法打开rar文件。。帮补上忙。。

都设定一样的宽度

哦rar 请从这下载
http://115.com/file/c2kpg3hs

都设定一样的宽度
上下两个td 都给了同样的高度, style 里width 都是 99px, 但一个会被撑开,一个不会

问题出在table.js里的第501行,table.el.css('width', '100%');

你的table设为100% 但里面表格却又用像素来设置

我下载下来,看了有一会儿,为什么会出现这样的情况,我想不出来,但是第一个表格只有一行数据,而第二个表格有多条数据,并且我大概看了下代码,第一列和第二列是fixed:true,也就是自适应的。。

会不会跟这些原因有关。。

但其实我觉得楼主提出这个问题,无非是想让2个DIV保持一致的效果,去用JS控制自适应,我建议你不要用2人table,就用一个table就好了,第一行是表头。。因为我看你的JS代码里面写着header。。

使用一个表格,就不会出现这种上下不一致的情况。。可以让页面有更好的体现,所以,修改下插件吧。

问题出在table.js里的第501行,table.el.css('width', '100%');

你的table设为100% 但里面表格却又用像素来设置

我觉得这个也有可能,对于100%的理解,每个浏览器不尽相同,但楼主也提到了,以第一列为例,2个表格的第一列都是99象素,内容也都是一样的,凭啥第二个表格就能撑开呢?我觉得还是跟第二个表格的数据不同有关。。

引用 5 楼 dd0607 的回复:
问题出在table.js里的第501行,table.el.css('width', '100%');

你的table设为100% 但里面表格却又用像素来设置


我觉得这个也有可能,对于100%的理解,每个浏览器不尽相同,但楼主也提到了,以第一列为例,2个表格的第一列都是99象素,内容也都是一样的,凭啥第二个表格就能撑开呢?我觉得还是跟第二个表……

你运行后就知道了 他是用2个TABLE组成 一种颜色各一个

用chrome运行时 按F12 看elements里面的代码

不是为了做2个table,是为了封装一个grid控件,上面部分是grid header, 下面是每行数据,所以用了2个 table。不使用一个table的原因是,需求上垂直滚动条要包含在表格内部,而一个table的话滚动条是在外部
但可以用 F12看到,属性都是一样的,都给了相同的 width
在ie和firefox下都是正常的,只有chrome不对

问题出在table.js里的第501行,table.el.css('width', '100%');

你的table设为100% 但里面表格却又用像素来设置
这里的table是指最外层的grid,是为了适应父容器宽度,而不是指内部的2个table元素,内部的2个table元素都是固定宽度的

引用 5 楼 dd0607 的回复:

问题出在table.js里的第501行,table.el.css('width', '100%');

你的table设为100% 但里面表格却又用像素来设置

这里的table是指最外层的grid,是为了适应父容器宽度,而不是指内部的2个table元素,内部的2个table元素都是固定宽度的

你看下运行后的代码就知道了,或者你把那行屏蔽了 再试试

懒得下载了。建议楼主以后直接把代码发到这里

table.js里的第501行,table.el.css('width', '100%');

把这行注释掉,然后如果把第三列宽度改成 10, 问题照旧出现
改第三列宽度是在 test.js 第10行, width:50 //改成10

汗 我好像知道你的意思 我再看看

fit.fit();

fit给table赋值 这块检查看看

赋完值之后,上下2个table状态都是一样的

原因找到,拖动时候动态修改宽度时候的问题, body 部分是先修改父元素,再修改子元素, head部分正好相反,chrome下就会有问题,顺序换了下就ok了:
syncHeaderWidth: function () {
var w = this.getTotalWidth();
this.head.parent().width(w);
this.head.parent().parent().parent().width(this.el.width());
},

原因找到,拖动时候动态修改宽度时候的问题, body 部分是先修改父元素,再修改子元素, head部分正好相反,chrome下就会有问题,顺序换了下就ok了:
syncHeaderWidth: function () {
var w = this.getTotalWidth();
this.head.parent().width(w);
this.head.parent().……

其实。为什么都是你写的代码,2块类似的功能,实现的步骤却不同,这个你得自己检讨一下,呵呵。一般思维都会写成类似的,就不会出现这种情况了。

人气教程排行