Heim > Web-Frontend > HTML-Tutorial > chrome中完全一样属性的2个div,显示不一样_html/css_WEB-ITnose

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

WBOY
Freigeben: 2016-06-24 12:08:49
Original
1382 Leute haben es durchsucht

在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块类似的功能,实现的步骤却不同,这个你得自己检讨一下,呵呵。一般思维都会写成类似的,就不会出现这种情况了。

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage