2018-11-19 关于海通社区项目的部分总结

两周没写日报了,因为上上周突然出差,然后忙了半个月,现在前端工作页面和交互已经完成,而且经过与后端和测试的联调,基本是把BUG调完了,就剩下一些修修补补的工作了。难得的空闲之际,赶紧来总结一下项目中遇到的问题和解决方案,避免下次再被同样的BUG浪费时间。

1.项目中经常有写的全局样式,而我们需要复用一部分,并自己进行改造,这就涉及到了样式的覆盖问题:

.buttons-row-box {
    background: #fff;
    padding: 0.32rem;
    font-size: 0.4rem;
    color: #999999;
    position: absolute;
    top: 1.18rem;
    width: 94%;
    z-index: 999;

比如上述明显就是个全局样式,我们考虑要用CSS优先级的问题来进行覆盖。值得注意的是,只有冲突的,和没有的样式会应用。已经有的默认继承

优先级,当多个选择器选中同一个标签时,并且给同一个标签设置相同的属性时,如何层叠就由优先级来决定
    判断条件:
    1,是否是直接选中,就是直接第一次选中的就是要设置的标签,例如
        p{}
        #identity{}
        .para
    2,间接选中,就是继承,谁离目标标签近就会继承谁的属性,例如
        ul{}
        li{}
    3,相同的选择器,如果都是直接选中,并且都是同类型的选择器,谁在后边就听谁的,例如
        p{ }
        p{}
    4,不同选择器,如果都是直接选中,并且不是同类型的选择器,那么就会按照选择器的优先级来层叠,例如
        id>类>标签>通配符>继承>浏览器

(1)所以我常用的办法是使用多个层级类来覆盖只有一个类的全局样式,当需要进一步改造时,再用id来覆盖多个层级类。
(2)方法2,给元素加上多个类名,覆盖原则参考
一个DOM元素同时拥有多个类名时的样式产生冲突时 属性取决于css样式表中后读取到的属性

2.这次项目主要是H5端的,考虑兼容的问题也出现了很多。比如以前没写H5的时候,总觉得安卓的适配是个大问题,可能会有很多BUG。现在调了之后才发现,ios可能问题比安卓多很多。比如,ios下fixed布局失效的问题
这是只有ios才会出现的问题,在本项目里显示的就是如图的上面两个tab一开始采用Fixed布局,结果在ios滑动过程中 tab会各处抖动,无法固定,体验非常差。解决办法是,采用absolute定位,且让该元素父元素为body。具体到f7框架的话,就是让上面两个tab与Page-content同级。

在这里插入图片描述

3.在项目中有用到clipboard.min.js 这个复制插件,正常情况实现的是如下效果,同理,如果是ios里fixed布局会有BUG,所以还是统一使用absoulte布局。ios里还会有一个BUG,参考
在你点击的元素上加一个空点击事件:onclick=""。因为ios不单纯支持on

在这里插入图片描述

4.项目中有需要滚动,又希望隐藏滚动条的tab栏,如下图,考虑先定个宽度,然后使用overflow:auto,实现滚动。然后使用::-webkit-scrollbar{display: none;}样式,能够隐藏滚动条。再有点击右边的tab标签时,实现自动定位滚动的效果。可以考虑使用jquery里的scrollLeft()方法,同理js也是可以实现的

在这里插入图片描述

5.js里,关于if(params),当params为0,null,undefined的时候,会类型转换为false。templat7里的js_compare和js_if 也是这个逻辑。

6.编译的时候bash可能会出现乱码,是因为编码问题。转为UTF-8即可。

7.关于git上多分支合并的问题,
为什么要先commit,然后pull,最后再push?而不是commit然后直接push?

8.jquery的hasClass()方法很实用。

9.font-weight这个样式有三个值,分别为lighternormalbold。本项目客户端字体影响,Lighter会显示非常淡,尽量少用。

猜你喜欢

转载自blog.csdn.net/qq_36620428/article/details/84253495