今天我在使用一些jquery 布局插件和 jquery ui 的时候
在使用resizeable 和 布局的时候 由于涉及到计算大小高度,结果就发现插件的计算总数出现偏差,
这里面采用的bootstrap是3.*版本,对了一段时间发现是bootstrap修改了盒子模型
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
导致了计算是不一致的
关于CSS盒子模型
原因采用的布局方案是 jquery layout ,layout.sizes(计算问题)(比较老,盒子模型不一致,并非 jquery ui 问题)
content-box | 这是由 CSS2.1 规定的宽度高度行为。 宽度和高度分别应用到元素的内容框。 在宽度和高度之外绘制元素的内边距和边框。 |
border-box | 为元素设定的宽度和高度决定了元素的边框盒。 就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。 通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 |
inherit | 规定应从父元素继承 box-sizing 属性的值。 |
目前我不可能去修改插件,直接修改bootstrap的盒子模型也难以预料并发的BUG,还好在resize 和布局对象 大多是绝对定位的,目前先不要在这些对象上面设置margin,border等信息
记录 ,调试很累。
解决问题方案: 布局对象(west,east,north,south)上面不要设置border,margin padding 属性, 避免盒子模型问题
来源:oschina
链接:https://my.oschina.net/u/1156053/blog/498745