光绪队长 阅读(16) 评论(0)

​ 一直以为我的css知识够用,知道遇到这样一个需求:表格头部和最后合计固定,左侧固定;本来也是很常见的需求,我最开始的方法是监听scroll事件,把向左滑动的距离赋值给最左侧列,但是由于移动端滑动有延迟(根据touchestart和toucheend来判断滑动距离),导致左侧在手指滑动时晃动。因此我把布局改成左右布局,在滑动时让表头和最后的合计动。原生表格固定头部

表格的单元格是用div模拟的,因此一行显示就用了flex布局,于是问题出现了:子元素设置的宽度比父元素大,但是并没有产生滚动条,原来flex布局会自动压缩子元素宽度,让其完全显示。明显我是需要滚动条的,网上一查发现需要这个属性flex-shrink: 0;flex-shirnk设置为0表示子元素不缩小宽度。另外flex-grow,flex-basis看这篇文章flex-grow、flex-shrink、flex-basis详解

表格设置了斑马色,但是发现有这个效果:超出父元素的部分没有背景色!

正确的应该是:

​ 我在控制器改变父元素是width属性时发现min-content居然可以,于是就查了这个属性,真是不看不知道,原来是css3新增的,简单来说,就是沾满可用的最小宽度。具体可以查看:[CSS3四个自适应关键字——fill-available、max-content、min-content、fit-content](https://www.cnblogs.com/xiaohuochai/p/7210540.html)

至此,我意识到,影响我代码速度的,css也占了很大一部分因素,有时间还是需要系统的学习一下,自己在实践中摸索,还是挺慢的。