作者:手机用户2502853201 | 来源:互联网 | 2024-11-10 10:03
近日,我在处理一个复杂的前端问题时遇到了极大困扰。具体来说,我之前开发了一个功能丰富的纯jQuery代码的前端GridView控件,实现了多种功能和视觉效果,并在多个项目中表现良好。然而,最近在尝试应用`border-box`布局模式时,却遇到了意想不到的兼容性和性能问题。这提醒我们在条件尚未完全成熟的情况下,应谨慎使用`border-box`布局模式,以免引入不必要的复杂性和潜在的bug。
这几天,我被一个js问题困扰到癫狂了!
事情是这样的,我之前写了个功能非常复杂的纯jquery代码的前端gridview控件,实现了大量的功能和效果,在一些项目里也用得很好。
最近有个项目,样式做了调整,把浏览器默认的box-sizing属性改成了border-box,然后界面和控件出了很多问题。
于是我开始着手解决这些问题。正当我以为都解决得差不多的时候,发现了一个诡异的现象,就是当我用鼠标拖动grid边框,做放大缩小的调整时,
发现无论我是放大还缩小操作,grid都是执行的缩小操作,但当我调试时,一步一步的操作,又没有问题!
好吧,我们都知道,计算机是不会主动出错的,问题肯定出在代码上。。。。
于是我试图从各个角度解释。。。各种调试,各种重算。。。。然并卵。。。都没发现问题!!!
直到今天上午,终于找到根源了:
那就是,在box-sizing:border-box情况下,jquery的$().css({width: xxx, height:yyy})这种方式不行!!!会造成事实上的尺寸减少!!!
应该改成$().width(xxx). height(yyy)!!!
具体jquery的css实现方法以及深层次的原因,这里我们就不探讨了,我只想告诉大家,
在我们的应用开发环境还没准备好的时候,大家不要轻易使用box-sizing:border-box了,虽然这是个很好的渲染模式,能带来各种便利,
但是,没办法,我们不得不受限于历史和现状!!